lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3ed7b88b-6bb2-463c-8057-809be486eb18@kzalloc.com>
Date: Mon, 23 Jun 2025 21:22:42 +0900
From: Yunseong Kim <ysk@...lloc.com>
To: Byungchul Park <byungchul@...com>, Qu Wenruo <quwenruo.btrfs@....com>
Cc: linux-kernel@...r.kernel.org, clm@...com, josef@...icpanda.com,
 dsterba@...e.com, linux-btrfs@...r.kernel.org, kernel_team@...ynix.com,
 torvalds@...ux-foundation.org, akpm@...ux-foundation.org,
 yeoreum.yun@....com, yunseong.kim@...csson.com, gwan-gyeong.mun@...el.com,
 harry.yoo@...cle.com
Subject: Re: [RFC] DEPT report on around btrfs, unlink, and truncate

Hi,

The version we're currently looking at is DEPT v16, which can be checked
out from my Github. 
Link: https://github.com/kzall0c/linux-dept/tree/6.15-rc6-dept-16

I've attached the kernel config file used to build this kernel.

On 6/23/25 6:52 오후, Byungchul Park wrote:

> I should also rely on the following stacktrace in the dept report.  I
> asked Yunseong who reported this issue, for the decoded stacktrace, so
> that I can interpret that better.  I will get back once I figure out
> where the wait on PG_locked comes from.

[  304.343395][ T7488] ===================================================
[  304.343446][ T7488] DEPT: Circular dependency has been detected.
[  304.343462][ T7488] 6.15.0-rc6-00043-ga83a69ec7f9f #5 Not tainted
[  304.343477][ T7488] ---------------------------------------------------
[  304.343488][ T7488] summary
[  304.343498][ T7488] ---------------------------------------------------
[  304.343509][ T7488] *** DEADLOCK ***
[  304.343509][ T7488]
[  304.343520][ T7488] context A
[  304.343531][ T7488]    [S] lock(btrfs-tree-00:0)
[  304.343545][ T7488]    [W] dept_page_wait_on_bit(pg_locked_map:0)
[  304.343559][ T7488]    [E] unlock(btrfs-tree-00:0)
[  304.343572][ T7488]
[  304.343581][ T7488] context B
[  304.343591][ T7488]    [S] (unknown)(pg_locked_map:0)
[  304.343603][ T7488]    [W] lock(btrfs-tree-00:0)
[  304.343616][ T7488]    [E] dept_page_clear_bit(pg_locked_map:0)
[  304.343629][ T7488]
[  304.343637][ T7488] [S]: start of the event context
[  304.343647][ T7488] [W]: the wait blocked
[  304.343656][ T7488] [E]: the event not reachable
[  304.343666][ T7488] ---------------------------------------------------
[  304.343676][ T7488] context A's detail
[  304.343686][ T7488] ---------------------------------------------------
[  304.343696][ T7488] context A
[  304.343706][ T7488]    [S] lock(btrfs-tree-00:0)
[  304.343718][ T7488]    [W] dept_page_wait_on_bit(pg_locked_map:0)
[  304.343731][ T7488]    [E] unlock(btrfs-tree-00:0)
[  304.343744][ T7488]
[  304.343753][ T7488] [S] lock(btrfs-tree-00:0):
[ 304.343764][ T7488] btrfs_tree_lock_nested (./arch/arm64/include/asm/jump_label.h:36 ./include/trace/events/btrfs.h:2305 fs/btrfs/locking.c:190)
[  304.343796][ T7488] stacktrace:
[ 304.343805][ T7488] down_write_nested (kernel/locking/rwsem.c:1693 (discriminator 1))
[ 304.343826][ T7488] btrfs_tree_lock_nested (./arch/arm64/include/asm/jump_label.h:36 ./include/trace/events/btrfs.h:2305 fs/btrfs/locking.c:190)
[ 304.343865][ T7488] push_leaf_right (fs/btrfs/ctree.c:3260)
[ 304.343896][ T7488] btrfs_del_items (fs/btrfs/ctree.c:4556)
[ 304.343916][ T7488] btrfs_truncate_inode_items (fs/btrfs/inode-item.c:734)
[ 304.343938][ T7488] btrfs_evict_inode (fs/btrfs/inode.c:5410)
[ 304.343968][ T7488] evict (fs/inode.c:815)
[ 304.343993][ T7488] iput (fs/inode.c:1898 fs/inode.c:1924 fs/inode.c:1910)
[ 304.344011][ T7488] do_unlinkat (fs/namei.c:4650)
[ 304.344038][ T7488] __arm64_sys_unlinkat (fs/namei.c:4684 (discriminator 2) fs/namei.c:4677 (discriminator 2) fs/namei.c:4677 (discriminator 2))
[ 304.344057][ T7488] invoke_syscall (arch/arm64/kernel/syscall.c:36 arch/arm64/kernel/syscall.c:50)
[ 304.344084][ T7488] el0_svc_common.constprop.0 (./include/linux/thread_info.h:135 (discriminator 2) arch/arm64/kernel/syscall.c:147 (discriminator 2))
[ 304.344104][ T7488] do_el0_svc (arch/arm64/kernel/syscall.c:159)
[ 304.344123][ T7488] el0_svc (./arch/arm64/include/asm/irqflags.h:82 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:123 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:136 (discriminator 1) arch/arm64/kernel/entry-common.c:165 (discriminator 1) arch/arm64/kernel/entry-common.c:178 (discriminator 1) arch/arm64/kernel/entry-common.c:745 (discriminator 1))
[ 304.344151][ T7488] el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:763)
[ 304.344172][ T7488] el0t_64_sync (arch/arm64/kernel/entry.S:600)
[  304.344189][ T7488]
[  304.344198][ T7488] [W] dept_page_wait_on_bit(pg_locked_map:0):
[ 304.344211][ T7488] __push_leaf_right (fs/btrfs/ctree.c:3194)
[  304.344232][ T7488] stacktrace:
[ 304.344241][ T7488] __push_leaf_right (fs/btrfs/ctree.c:3194)
[ 304.344260][ T7488] push_leaf_right (fs/btrfs/ctree.c:3293)
[ 304.344278][ T7488] btrfs_del_items (fs/btrfs/ctree.c:4556)
[ 304.344297][ T7488] btrfs_truncate_inode_items (fs/btrfs/inode-item.c:734)
[ 304.344314][ T7488] btrfs_evict_inode (fs/btrfs/inode.c:5410)
[ 304.344335][ T7488] evict (fs/inode.c:815)
[ 304.344352][ T7488] iput (fs/inode.c:1898 fs/inode.c:1924 fs/inode.c:1910)
[ 304.344369][ T7488] do_unlinkat (fs/namei.c:4650)
[ 304.344388][ T7488] __arm64_sys_unlinkat (fs/namei.c:4684 (discriminator 2) fs/namei.c:4677 (discriminator 2) fs/namei.c:4677 (discriminator 2))
[ 304.344407][ T7488] invoke_syscall (arch/arm64/kernel/syscall.c:36 arch/arm64/kernel/syscall.c:50)
[ 304.344425][ T7488] el0_svc_common.constprop.0 (./include/linux/thread_info.h:135 (discriminator 2) arch/arm64/kernel/syscall.c:147 (discriminator 2))
[ 304.344445][ T7488] do_el0_svc (arch/arm64/kernel/syscall.c:159)
[ 304.344463][ T7488] el0_svc (./arch/arm64/include/asm/irqflags.h:82 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:123 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:136 (discriminator 1) arch/arm64/kernel/entry-common.c:165 (discriminator 1) arch/arm64/kernel/entry-common.c:178 (discriminator 1) arch/arm64/kernel/entry-common.c:745 (discriminator 1))
[ 304.344482][ T7488] el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:763)
[ 304.344503][ T7488] el0t_64_sync (arch/arm64/kernel/entry.S:600)
[  304.344518][ T7488]
[  304.344527][ T7488] [E] unlock(btrfs-tree-00:0):
[  304.344539][ T7488] (N/A)
[  304.344549][ T7488] ---------------------------------------------------
[  304.344559][ T7488] context B's detail
[  304.344568][ T7488] ---------------------------------------------------
[  304.344578][ T7488] context B
[  304.344588][ T7488]    [S] (unknown)(pg_locked_map:0)
[  304.344600][ T7488]    [W] lock(btrfs-tree-00:0)
[  304.344613][ T7488]    [E] dept_page_clear_bit(pg_locked_map:0)
[  304.344625][ T7488]
[  304.344634][ T7488] [S] (unknown)(pg_locked_map:0):
[  304.344646][ T7488] (N/A)
[  304.344655][ T7488]
[  304.344663][ T7488] [W] lock(btrfs-tree-00:0):
[ 304.344675][ T7488] btrfs_tree_read_lock_nested (./arch/arm64/include/asm/jump_label.h:36 ./include/trace/events/btrfs.h:2299 fs/btrfs/locking.c:146)
[  304.344694][ T7488] stacktrace:
[ 304.344703][ T7488] down_read_nested (kernel/locking/rwsem.c:1649 (discriminator 3))
[ 304.344720][ T7488] btrfs_tree_read_lock_nested (./arch/arm64/include/asm/jump_label.h:36 ./include/trace/events/btrfs.h:2299 fs/btrfs/locking.c:146)
[ 304.344737][ T7488] btrfs_search_slot (fs/btrfs/ctree.c:2198)
[ 304.344756][ T7488] btrfs_lookup_file_extent (fs/btrfs/file-item.c:256)
[ 304.344773][ T7488] btrfs_get_extent (fs/btrfs/inode.c:6938)
[ 304.344789][ T7488] btrfs_do_readpage (fs/btrfs/extent_io.c:916 fs/btrfs/extent_io.c:977)
[ 304.344810][ T7488] btrfs_read_folio (fs/btrfs/extent_io.c:1257)
[ 304.344828][ T7488] btrfs_truncate_block (./include/linux/pagemap.h:1140 fs/btrfs/inode.c:4854)
[ 304.344854][ T7488] btrfs_cont_expand (fs/btrfs/inode.c:5013)
[ 304.344870][ T7488] btrfs_setattr (fs/btrfs/inode.c:5114 fs/btrfs/inode.c:5191)
[ 304.344885][ T7488] notify_change (fs/attr.c:552)
[ 304.344906][ T7488] do_truncate (fs/open.c:65)
[ 304.344937][ T7488] vfs_truncate (fs/open.c:115)
[ 304.344957][ T7488] __arm64_sys_truncate (fs/open.c:138 fs/open.c:150 fs/open.c:148 fs/open.c:148)
[ 304.344978][ T7488] invoke_syscall (arch/arm64/kernel/syscall.c:36 arch/arm64/kernel/syscall.c:50)
[ 304.344997][ T7488] el0_svc_common.constprop.0 (./include/linux/thread_info.h:135 (discriminator 2) arch/arm64/kernel/syscall.c:147 (discriminator 2))
[  304.345017][ T7488]
[  304.345025][ T7488] [E] dept_page_clear_bit(pg_locked_map:0):
[ 304.345037][ T7488] end_folio_read (fs/btrfs/extent_io.c:439)
[  304.345056][ T7488] stacktrace:
[ 304.345065][ T7488] folio_unlock (./include/linux/page-flags.h:887 mm/filemap.c:1525)
[ 304.345099][ T7488] end_folio_read (fs/btrfs/extent_io.c:439)
[ 304.345116][ T7488] btrfs_do_readpage (fs/btrfs/extent_io.c:960 (discriminator 2))
[ 304.345132][ T7488] btrfs_read_folio (fs/btrfs/extent_io.c:1257)
[ 304.345149][ T7488] btrfs_truncate_block (./include/linux/pagemap.h:1140 fs/btrfs/inode.c:4854)
[ 304.345164][ T7488] btrfs_cont_expand (fs/btrfs/inode.c:5013)
[ 304.345179][ T7488] btrfs_setattr (fs/btrfs/inode.c:5114 fs/btrfs/inode.c:5191)
[ 304.345194][ T7488] notify_change (fs/attr.c:552)
[ 304.345213][ T7488] do_truncate (fs/open.c:65)
[ 304.345232][ T7488] vfs_truncate (fs/open.c:115)
[ 304.345252][ T7488] __arm64_sys_truncate (fs/open.c:138 fs/open.c:150 fs/open.c:148 fs/open.c:148)
[ 304.345272][ T7488] invoke_syscall (arch/arm64/kernel/syscall.c:36 arch/arm64/kernel/syscall.c:50)
[ 304.345291][ T7488] el0_svc_common.constprop.0 (./include/linux/thread_info.h:135 (discriminator 2) arch/arm64/kernel/syscall.c:147 (discriminator 2))
[ 304.345310][ T7488] do_el0_svc (arch/arm64/kernel/syscall.c:159)
[ 304.345328][ T7488] el0_svc (./arch/arm64/include/asm/irqflags.h:82 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:123 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:136 (discriminator 1) arch/arm64/kernel/entry-common.c:165 (discriminator 1) arch/arm64/kernel/entry-common.c:178 (discriminator 1) arch/arm64/kernel/entry-common.c:745 (discriminator 1))
[ 304.345347][ T7488] el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:763)
[  304.345369][ T7488] ---------------------------------------------------
[  304.345379][ T7488] information that might be helpful
[  304.345388][ T7488] ---------------------------------------------------
[  304.345402][ T7488] CPU: 1 UID: 0 PID: 7488 Comm: syz-executor Not tainted 6.15.0-rc6-00043-ga83a69ec7f9f #5 PREEMPT
[  304.345416][ T7488] Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025
[  304.345422][ T7488] Call trace:
[ 304.345426][ T7488] show_stack (arch/arm64/kernel/stacktrace.c:468) (C)
[ 304.345452][ T7488] dump_stack_lvl (lib/dump_stack.c:122)
[ 304.345476][ T7488] dump_stack (lib/dump_stack.c:130)
[ 304.345490][ T7488] cb_check_dl (./include/linux/dept_unit_test.h:30 kernel/dependency/dept.c:932 kernel/dependency/dept.c:1362 kernel/dependency/dept.c:1356)
[ 304.345504][ T7488] bfs (kernel/dependency/dept.c:980)
[ 304.345514][ T7488] add_dep (kernel/dependency/dept.c:1712 (discriminator 1))
[ 304.345526][ T7488] __dept_wait (kernel/dependency/dept.c:1812 (discriminator 2) kernel/dependency/dept.c:2585 (discriminator 2))
[ 304.345537][ T7488] dept_wait (kernel/dependency/dept.c:2668 kernel/dependency/dept.c:2640)
[ 304.345548][ T7488] btrfs_clear_buffer_dirty (./include/linux/pagemap.h:1100 ./include/linux/pagemap.h:1150 fs/btrfs/extent_io.c:3552)
[ 304.345561][ T7488] __push_leaf_right (fs/btrfs/ctree.c:3194)
[ 304.345575][ T7488] push_leaf_right (fs/btrfs/ctree.c:3293)
[ 304.345589][ T7488] btrfs_del_items (fs/btrfs/ctree.c:4556)
[ 304.345603][ T7488] btrfs_truncate_inode_items (fs/btrfs/inode-item.c:734)
[ 304.345616][ T7488] btrfs_evict_inode (fs/btrfs/inode.c:5410)
[ 304.345632][ T7488] evict (fs/inode.c:815)
[ 304.345644][ T7488] iput (fs/inode.c:1898 fs/inode.c:1924 fs/inode.c:1910)
[ 304.345657][ T7488] do_unlinkat (fs/namei.c:4650)
[ 304.345671][ T7488] __arm64_sys_unlinkat (fs/namei.c:4684 (discriminator 2) fs/namei.c:4677 (discriminator 2) fs/namei.c:4677 (discriminator 2))
[ 304.345685][ T7488] invoke_syscall (arch/arm64/kernel/syscall.c:36 arch/arm64/kernel/syscall.c:50)
[ 304.345698][ T7488] el0_svc_common.constprop.0 (./include/linux/thread_info.h:135 (discriminator 2) arch/arm64/kernel/syscall.c:147 (discriminator 2))
[ 304.345713][ T7488] do_el0_svc (arch/arm64/kernel/syscall.c:159)
[ 304.345726][ T7488] el0_svc (./arch/arm64/include/asm/irqflags.h:82 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:123 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:136 (discriminator 1) arch/arm64/kernel/entry-common.c:165 (discriminator 1) arch/arm64/kernel/entry-common.c:178 (discriminator 1) arch/arm64/kernel/entry-common.c:745 (discriminator 1))
[ 304.345741][ T7488] el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:763)
[ 304.345756][ T7488] el0t_64_sync (arch/arm64/kernel/entry.S:600)
[  304.345857][ T7488] ===================================================
[  304.345995][ T7488] DEPT: Circular dependency has been detected.
[  304.346006][ T7488] 6.15.0-rc6-00043-ga83a69ec7f9f #5 Not tainted
[  304.346019][ T7488] ---------------------------------------------------
[  304.346029][ T7488] summary
[  304.346038][ T7488] ---------------------------------------------------
[  304.346049][ T7488] *** DEADLOCK ***
[  304.346049][ T7488]
[  304.346058][ T7488] context A
[  304.346069][ T7488]    [S] lock(btrfs-tree-01:0)
[  304.346082][ T7488]    [W] dept_page_wait_on_bit(pg_locked_map:0)
[  304.346095][ T7488]    [E] unlock(btrfs-tree-01:0)
[  304.346108][ T7488]
[  304.346117][ T7488] context B
[  304.346126][ T7488]    [S] (unknown)(pg_locked_map:0)
[  304.346139][ T7488]    [W] lock(btrfs-tree-01:0)
[  304.346151][ T7488]    [E] dept_page_clear_bit(pg_locked_map:0)
[  304.346164][ T7488]
[  304.346173][ T7488] [S]: start of the event context
[  304.346183][ T7488] [W]: the wait blocked
[  304.346192][ T7488] [E]: the event not reachable
[  304.346201][ T7488] ---------------------------------------------------
[  304.346211][ T7488] context A's detail
[  304.346221][ T7488] ---------------------------------------------------
[  304.346231][ T7488] context A
[  304.346240][ T7488]    [S] lock(btrfs-tree-01:0)
[  304.346253][ T7488]    [W] dept_page_wait_on_bit(pg_locked_map:0)
[  304.346266][ T7488]    [E] unlock(btrfs-tree-01:0)
[  304.346278][ T7488]
[  304.346287][ T7488] [S] lock(btrfs-tree-01:0):
[ 304.346299][ T7488] btrfs_tree_lock_nested (./arch/arm64/include/asm/jump_label.h:36 ./include/trace/events/btrfs.h:2305 fs/btrfs/locking.c:190)
[  304.346321][ T7488] stacktrace:
[ 304.346330][ T7488] down_write_nested (kernel/locking/rwsem.c:1693 (discriminator 1))
[ 304.346347][ T7488] btrfs_tree_lock_nested (./arch/arm64/include/asm/jump_label.h:36 ./include/trace/events/btrfs.h:2305 fs/btrfs/locking.c:190)
[ 304.346363][ T7488] btrfs_lock_root_node (fs/btrfs/locking.c:244)
[ 304.346379][ T7488] btrfs_search_slot (fs/btrfs/ctree.c:1733 fs/btrfs/ctree.c:2048)
[ 304.346399][ T7488] btrfs_truncate_inode_items (fs/btrfs/inode-item.c:511)
[ 304.346417][ T7488] btrfs_evict_inode (fs/btrfs/inode.c:5410)
[ 304.346438][ T7488] evict (fs/inode.c:815)
[ 304.346456][ T7488] iput (fs/inode.c:1898 fs/inode.c:1924 fs/inode.c:1910)
[ 304.346473][ T7488] do_unlinkat (fs/namei.c:4650)
[ 304.346492][ T7488] __arm64_sys_unlinkat (fs/namei.c:4684 (discriminator 2) fs/namei.c:4677 (discriminator 2) fs/namei.c:4677 (discriminator 2))
[ 304.346511][ T7488] invoke_syscall (arch/arm64/kernel/syscall.c:36 arch/arm64/kernel/syscall.c:50)
[ 304.346530][ T7488] el0_svc_common.constprop.0 (./include/linux/thread_info.h:135 (discriminator 2) arch/arm64/kernel/syscall.c:147 (discriminator 2))
[ 304.346550][ T7488] do_el0_svc (arch/arm64/kernel/syscall.c:159)
[ 304.346568][ T7488] el0_svc (./arch/arm64/include/asm/irqflags.h:82 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:123 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:136 (discriminator 1) arch/arm64/kernel/entry-common.c:165 (discriminator 1) arch/arm64/kernel/entry-common.c:178 (discriminator 1) arch/arm64/kernel/entry-common.c:745 (discriminator 1))
[ 304.346588][ T7488] el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:763)
[ 304.346608][ T7488] el0t_64_sync (arch/arm64/kernel/entry.S:600)
[  304.346623][ T7488]
[  304.346632][ T7488] [W] dept_page_wait_on_bit(pg_locked_map:0):
[ 304.346644][ T7488] __push_leaf_right (fs/btrfs/ctree.c:3194)
[  304.346665][ T7488] stacktrace:
[ 304.346674][ T7488] __push_leaf_right (fs/btrfs/ctree.c:3194)
[ 304.346692][ T7488] push_leaf_right (fs/btrfs/ctree.c:3293)
[ 304.346711][ T7488] btrfs_del_items (fs/btrfs/ctree.c:4556)
[ 304.346729][ T7488] btrfs_truncate_inode_items (fs/btrfs/inode-item.c:734)
[ 304.346747][ T7488] btrfs_evict_inode (fs/btrfs/inode.c:5410)
[ 304.346767][ T7488] evict (fs/inode.c:815)
[ 304.346785][ T7488] iput (fs/inode.c:1898 fs/inode.c:1924 fs/inode.c:1910)
[ 304.346802][ T7488] do_unlinkat (fs/namei.c:4650)
[ 304.346820][ T7488] __arm64_sys_unlinkat (fs/namei.c:4684 (discriminator 2) fs/namei.c:4677 (discriminator 2) fs/namei.c:4677 (discriminator 2))
[ 304.346850][ T7488] invoke_syscall (arch/arm64/kernel/syscall.c:36 arch/arm64/kernel/syscall.c:50)
[ 304.346871][ T7488] el0_svc_common.constprop.0 (./include/linux/thread_info.h:135 (discriminator 2) arch/arm64/kernel/syscall.c:147 (discriminator 2))
[ 304.346891][ T7488] do_el0_svc (arch/arm64/kernel/syscall.c:159)
[ 304.346909][ T7488] el0_svc (./arch/arm64/include/asm/irqflags.h:82 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:123 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:136 (discriminator 1) arch/arm64/kernel/entry-common.c:165 (discriminator 1) arch/arm64/kernel/entry-common.c:178 (discriminator 1) arch/arm64/kernel/entry-common.c:745 (discriminator 1))
[ 304.346928][ T7488] el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:763)
[ 304.346949][ T7488] el0t_64_sync (arch/arm64/kernel/entry.S:600)
[  304.346963][ T7488]
[  304.346972][ T7488] [E] unlock(btrfs-tree-01:0):
[  304.346984][ T7488] (N/A)
[  304.346994][ T7488] ---------------------------------------------------
[  304.347004][ T7488] context B's detail
[  304.347013][ T7488] ---------------------------------------------------
[  304.347023][ T7488] context B
[  304.347033][ T7488]    [S] (unknown)(pg_locked_map:0)
[  304.347046][ T7488]    [W] lock(btrfs-tree-01:0)
[  304.347058][ T7488]    [E] dept_page_clear_bit(pg_locked_map:0)
[  304.347071][ T7488]
[  304.347080][ T7488] [S] (unknown)(pg_locked_map:0):
[  304.347092][ T7488] (N/A)
[  304.347101][ T7488]
[  304.347109][ T7488] [W] lock(btrfs-tree-01:0):
[ 304.347121][ T7488] btrfs_tree_read_lock_nested (./arch/arm64/include/asm/jump_label.h:36 ./include/trace/events/btrfs.h:2299 fs/btrfs/locking.c:146)
[  304.347140][ T7488] stacktrace:
[ 304.347149][ T7488] down_read_nested (kernel/locking/rwsem.c:1649 (discriminator 3))
[ 304.347165][ T7488] btrfs_tree_read_lock_nested (./arch/arm64/include/asm/jump_label.h:36 ./include/trace/events/btrfs.h:2299 fs/btrfs/locking.c:146)
[ 304.347181][ T7488] btrfs_read_lock_root_node (fs/btrfs/locking.c:267)
[ 304.347198][ T7488] btrfs_search_slot (fs/btrfs/ctree.c:1722 fs/btrfs/ctree.c:2048)
[ 304.347217][ T7488] btrfs_lookup_file_extent (fs/btrfs/file-item.c:256)
[ 304.347233][ T7488] btrfs_get_extent (fs/btrfs/inode.c:6938)
[ 304.347248][ T7488] btrfs_do_readpage (fs/btrfs/extent_io.c:916 fs/btrfs/extent_io.c:977)
[ 304.347270][ T7488] btrfs_read_folio (fs/btrfs/extent_io.c:1257)
[ 304.347287][ T7488] btrfs_truncate_block (./include/linux/pagemap.h:1140 fs/btrfs/inode.c:4854)
[ 304.347302][ T7488] btrfs_cont_expand (fs/btrfs/inode.c:5013)
[ 304.347317][ T7488] btrfs_setattr (fs/btrfs/inode.c:5114 fs/btrfs/inode.c:5191)
[ 304.347332][ T7488] notify_change (fs/attr.c:552)
[ 304.347352][ T7488] do_truncate (fs/open.c:65)
[ 304.347374][ T7488] vfs_truncate (fs/open.c:115)
[ 304.347394][ T7488] __arm64_sys_truncate (fs/open.c:138 fs/open.c:150 fs/open.c:148 fs/open.c:148)
[ 304.347414][ T7488] invoke_syscall (arch/arm64/kernel/syscall.c:36 arch/arm64/kernel/syscall.c:50)
[  304.347433][ T7488]
[  304.347441][ T7488] [E] dept_page_clear_bit(pg_locked_map:0):
[ 304.347453][ T7488] end_folio_read (fs/btrfs/extent_io.c:439)
[  304.347471][ T7488] stacktrace:
[ 304.347480][ T7488] folio_unlock (./include/linux/page-flags.h:887 mm/filemap.c:1525)
[ 304.347504][ T7488] end_folio_read (fs/btrfs/extent_io.c:439)
[ 304.347520][ T7488] btrfs_do_readpage (fs/btrfs/extent_io.c:960 (discriminator 2))
[ 304.347536][ T7488] btrfs_read_folio (fs/btrfs/extent_io.c:1257)
[ 304.347553][ T7488] btrfs_truncate_block (./include/linux/pagemap.h:1140 fs/btrfs/inode.c:4854)
[ 304.347568][ T7488] btrfs_cont_expand (fs/btrfs/inode.c:5013)
[ 304.347583][ T7488] btrfs_setattr (fs/btrfs/inode.c:5114 fs/btrfs/inode.c:5191)
[ 304.347598][ T7488] notify_change (fs/attr.c:552)
[ 304.347617][ T7488] do_truncate (fs/open.c:65)
[ 304.347636][ T7488] vfs_truncate (fs/open.c:115)
[ 304.347656][ T7488] __arm64_sys_truncate (fs/open.c:138 fs/open.c:150 fs/open.c:148 fs/open.c:148)
[ 304.347676][ T7488] invoke_syscall (arch/arm64/kernel/syscall.c:36 arch/arm64/kernel/syscall.c:50)
[ 304.347695][ T7488] el0_svc_common.constprop.0 (./include/linux/thread_info.h:135 (discriminator 2) arch/arm64/kernel/syscall.c:147 (discriminator 2))
[ 304.347714][ T7488] do_el0_svc (arch/arm64/kernel/syscall.c:159)
[ 304.347732][ T7488] el0_svc (./arch/arm64/include/asm/irqflags.h:82 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:123 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:136 (discriminator 1) arch/arm64/kernel/entry-common.c:165 (discriminator 1) arch/arm64/kernel/entry-common.c:178 (discriminator 1) arch/arm64/kernel/entry-common.c:745 (discriminator 1))
[ 304.347751][ T7488] el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:763)
[  304.347772][ T7488] ---------------------------------------------------
[  304.347782][ T7488] information that might be helpful
[  304.347791][ T7488] ---------------------------------------------------
[  304.347803][ T7488] CPU: 1 UID: 0 PID: 7488 Comm: syz-executor Not tainted 6.15.0-rc6-00043-ga83a69ec7f9f #5 PREEMPT
[  304.347815][ T7488] Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025
[  304.347821][ T7488] Call trace:
[ 304.347825][ T7488] show_stack (arch/arm64/kernel/stacktrace.c:468) (C)
[ 304.347852][ T7488] dump_stack_lvl (lib/dump_stack.c:122)
[ 304.347870][ T7488] dump_stack (lib/dump_stack.c:130)
[ 304.347884][ T7488] cb_check_dl (./include/linux/dept_unit_test.h:30 kernel/dependency/dept.c:932 kernel/dependency/dept.c:1362 kernel/dependency/dept.c:1356)
[ 304.347897][ T7488] bfs (kernel/dependency/dept.c:980)
[ 304.347906][ T7488] add_dep (kernel/dependency/dept.c:1712 (discriminator 1))
[ 304.347917][ T7488] __dept_wait (kernel/dependency/dept.c:1812 (discriminator 2) kernel/dependency/dept.c:2585 (discriminator 2))
[ 304.347928][ T7488] dept_wait (kernel/dependency/dept.c:2668 kernel/dependency/dept.c:2640)
[ 304.347940][ T7488] btrfs_clear_buffer_dirty (./include/linux/pagemap.h:1100 ./include/linux/pagemap.h:1150 fs/btrfs/extent_io.c:3552)
[ 304.347952][ T7488] __push_leaf_right (fs/btrfs/ctree.c:3194)
[ 304.347967][ T7488] push_leaf_right (fs/btrfs/ctree.c:3293)
[ 304.347980][ T7488] btrfs_del_items (fs/btrfs/ctree.c:4556)
[ 304.347994][ T7488] btrfs_truncate_inode_items (fs/btrfs/inode-item.c:734)
[ 304.348007][ T7488] btrfs_evict_inode (fs/btrfs/inode.c:5410)
[ 304.348023][ T7488] evict (fs/inode.c:815)
[ 304.348036][ T7488] iput (fs/inode.c:1898 fs/inode.c:1924 fs/inode.c:1910)
[ 304.348048][ T7488] do_unlinkat (fs/namei.c:4650)
[ 304.348062][ T7488] __arm64_sys_unlinkat (fs/namei.c:4684 (discriminator 2) fs/namei.c:4677 (discriminator 2) fs/namei.c:4677 (discriminator 2))
[ 304.348076][ T7488] invoke_syscall (arch/arm64/kernel/syscall.c:36 arch/arm64/kernel/syscall.c:50)
[ 304.348090][ T7488] el0_svc_common.constprop.0 (./include/linux/thread_info.h:135 (discriminator 2) arch/arm64/kernel/syscall.c:147 (discriminator 2))
[ 304.348105][ T7488] do_el0_svc (arch/arm64/kernel/syscall.c:159)
[ 304.348118][ T7488] el0_svc (./arch/arm64/include/asm/irqflags.h:82 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:123 (discriminator 1) ./arch/arm64/include/asm/irqflags.h:136 (discriminator 1) arch/arm64/kernel/entry-common.c:165 (discriminator 1) arch/arm64/kernel/entry-common.c:178 (discriminator 1) arch/arm64/kernel/entry-common.c:745 (discriminator 1))
[ 304.348132][ T7488] el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:763)
[ 304.348148][ T7488] el0t_64_sync (arch/arm64/kernel/entry.S:600)

Best regards,
Yunseong Kim

View attachment "6.15-rc6-dept-16-config" of type "text/plain" (341248 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ