[PATCH 00/25] DEPT DMA-FENCE test run for i915
Gwan-gyeong Mun
gwan-gyeong.mun at intel.com
Thu Nov 3 12:27:11 UTC 2022
This is a series to test the detection of deadlock that can occur in i915
by applying DEPT implementation [1] for Linux 6.1 RC3.
This includes a dept draft implementation for dma-fence. [2]
Added dept tracking for "dma fence's default wait and wakeup".
Since the dept for dma-fence is an early version, it may be necessary to
add more dept tracking api in a scenario using dma-fence based on the
deadlock case that you have experienced.
To detectect more details, it tries to aggressive detection for dma fence
compare to previous run [3]
Reduce this warning[4][5] by increasing the DEPT_MAX_ECXT_HELD.
And Increase dept object size
[1] https://github.com/lgebyungchulpark/linux-dept/commits/dept1.23_on_v6.1-rc3
[2] https://github.com/lgebyungchulpark/linux-dept/commit/7417008153066ee2a6de5868eef9c8c0ad9da520
[3] https://patchwork.freedesktop.org/series/110402/
[4] DEPT_WARN_ON_ONCE: dt->ecxt_held_pos >= DEPT_MAX_ECXT_HELD
[5] https://intel-gfx-ci.01.org/tree/drm-tip/Trybot_110402v1/fi-ivb-3770/igt@i915_selftest@live@gem_contexts.html#dmesg-warnings276
Byungchul Park (22):
llist: Move llist_{head,node} definition to types.h
dept: Implement Dept(Dependency Tracker)
dept: Apply Dept to spinlock
dept: Apply Dept to mutex families
dept: Apply Dept to rwlock
dept: Apply Dept to wait_for_completion()/complete()
dept: Apply Dept to seqcount APIs
dept: Apply Dept to rwsem
dept: Add proc knobs to show stats and dependency graph
dept: Introduce split map concept and new APIs for them
dept: Apply Dept to wait/event of PG_{locked,writeback}
dept: Apply SDT to swait
dept: Apply SDT to wait(waitqueue)
locking/lockdep, cpu/hotplus: Use a weaker annotation in AP thread
dept: Distinguish each syscall context from another
dept: Distinguish each work from another
dept: Disable Dept within the wait_bit layer by default
dept: Disable Dept on struct crypto_larval's completion for now
dept: Differentiate onstack maps from others of different tasks in
class
dept: Distinguish between sleep wait and non-sleep wait
dept: Unstage wait when tagging a normal sleep wait
dept: Apply Dept to dma fence's default wait and wakeup
Gwan-gyeong Mun (3):
HAX: dept: Enable Dept by default
HAX: dept: Increase DEPT_MAX_WAIT_HIST / DEPT_MAX_ECXT_HELD to track
more
HAX: dept: Increase dept object size
arch/arm64/kernel/syscall.c | 2 +
arch/x86/entry/common.c | 4 +
crypto/api.c | 7 +-
drivers/dma-buf/dma-fence.c | 4 +
include/linux/completion.h | 44 +-
include/linux/dept.h | 604 ++++++
include/linux/dept_page.h | 94 +
include/linux/dept_sdt.h | 67 +
include/linux/dma-fence.h | 2 +
include/linux/hardirq.h | 3 +
include/linux/irqflags.h | 71 +-
include/linux/llist.h | 8 -
include/linux/lockdep.h | 159 +-
include/linux/lockdep_types.h | 3 +
include/linux/mutex.h | 22 +
include/linux/page-flags.h | 45 +-
include/linux/pagemap.h | 7 +-
include/linux/percpu-rwsem.h | 4 +-
include/linux/rtmutex.h | 1 +
include/linux/rwlock.h | 42 +
include/linux/rwlock_api_smp.h | 8 +-
include/linux/rwlock_types.h | 1 +
include/linux/rwsem.h | 22 +
include/linux/sched.h | 7 +
include/linux/seqlock.h | 16 +
include/linux/spinlock.h | 21 +
include/linux/spinlock_types_raw.h | 3 +
include/linux/swait.h | 4 +
include/linux/types.h | 8 +
include/linux/wait.h | 6 +-
init/init_task.c | 2 +
init/main.c | 4 +
kernel/Makefile | 1 +
kernel/cpu.c | 2 +-
kernel/dependency/Makefile | 4 +
kernel/dependency/dept.c | 2978 ++++++++++++++++++++++++++++
kernel/dependency/dept_hash.h | 10 +
kernel/dependency/dept_internal.h | 26 +
kernel/dependency/dept_object.h | 13 +
kernel/dependency/dept_proc.c | 92 +
kernel/exit.c | 7 +
kernel/fork.c | 2 +
kernel/locking/lockdep.c | 28 +-
kernel/locking/spinlock_rt.c | 24 +-
kernel/module/main.c | 2 +
kernel/sched/completion.c | 12 +-
kernel/sched/core.c | 10 +
kernel/sched/swait.c | 10 +
kernel/sched/wait.c | 16 +
kernel/sched/wait_bit.c | 5 +-
kernel/workqueue.c | 3 +
lib/Kconfig.debug | 28 +
lib/locking-selftest.c | 2 +
mm/filemap.c | 86 +
mm/page_ext.c | 5 +
55 files changed, 4579 insertions(+), 82 deletions(-)
create mode 100644 include/linux/dept.h
create mode 100644 include/linux/dept_page.h
create mode 100644 include/linux/dept_sdt.h
create mode 100644 kernel/dependency/Makefile
create mode 100644 kernel/dependency/dept.c
create mode 100644 kernel/dependency/dept_hash.h
create mode 100644 kernel/dependency/dept_internal.h
create mode 100644 kernel/dependency/dept_object.h
create mode 100644 kernel/dependency/dept_proc.c
--
2.37.1
More information about the Intel-gfx-trybot
mailing list