Hi,

when trying the new bcachefs in the mainline kernel, I see the
attached ODEBUG and lockdep splats.

This is simply mounting an empty bcachefs file system and
copying some files into it.

Guenter

---
...
[   11.653586] bcachefs (nvme0n1p2): fix_reflink_p... done
[   11.656803] ODEBUG: object ffff80008164bb80 is on stack ffff800081648000, 
but NOT annotated.
[   11.657192]
[   11.657202] ======================================================
[   11.657209] WARNING: possible circular locking dependency detected
[   11.657271] 6.6.0-03474-gcd063c8b9e1e #1 Tainted: G                 N
[   11.657281] ------------------------------------------------------
[   11.657288] bch-copygc/nvme/790 is trying to acquire lock:
[   11.657323] ffffac9250236a70 (console_owner){....}-{0:0}, at: 
console_flush_all+0x1b0/0x510
[   11.657507]
[   11.657507] but task is already holding lock:
[   11.657514] ffffac9251375218 (&obj_hash[i].lock){-.-.}-{2:2}, at: 
__debug_object_init+0xac/0x20c
[   11.657543]
[   11.657543] which lock already depends on the new lock.
[   11.657543]
[   11.657548]
[   11.657548] the existing dependency chain (in reverse order) is:
[   11.657568]
[   11.657568] -> #4 (&obj_hash[i].lock){-.-.}-{2:2}:
[   11.657628]        _raw_spin_lock_irqsave+0x60/0x88
[   11.657675]        debug_object_activate+0x108/0x290
[   11.657684]        insert_work+0x38/0xb0
[   11.657694]        __queue_work+0x1c4/0x674
[   11.657701]        queue_work_on+0xa8/0xe4
[   11.657708]        start_poll_synchronize_rcu_expedited+0x108/0x10c
[   11.657717]        rcu_init+0xb08/0xd3c
[   11.657728]        start_kernel+0x250/0x684
[   11.657735]        __primary_switched+0xbc/0xc4
[   11.657779]
[   11.657779] -> #3 (&pool->lock){-.-.}-{2:2}:
[   11.657802]        _raw_spin_lock+0x48/0x60
[   11.657821]        __queue_work+0x240/0x674
[   11.657828]        queue_work_on+0xa8/0xe4
[   11.657835]        rpm_suspend+0x4f0/0x644
[   11.657844]        rpm_idle+0x11c/0x2d4
[   11.657851]        __pm_runtime_idle+0x40/0xac
[   11.657858]        __device_attach+0xdc/0x1b0
[   11.657866]        device_initial_probe+0x14/0x20
[   11.657874]        bus_probe_device+0xb0/0xb4
[   11.657881]        device_add+0x5c8/0x784
[   11.657890]        serial_base_port_add+0x118/0x198
[   11.657899]        serial_core_register_port+0x74/0x5d4
[   11.657907]        serial_ctrl_register_port+0x10/0x1c
[   11.657915]        uart_add_one_port+0x10/0x1c
[   11.657923]        pl011_register_port+0x70/0x12c
[   11.657930]        pl011_probe+0x1ac/0x1e0
[   11.657937]        amba_probe+0x110/0x1c4
[   11.657947]        really_probe+0x148/0x2ac
[   11.657954]        __driver_probe_device+0x78/0x12c
[   11.657962]        driver_probe_device+0x3c/0x10c
[   11.657969]        __device_attach_driver+0xb8/0xf8
[   11.657977]        bus_for_each_drv+0x80/0xdc
[   11.657984]        __device_attach+0xa8/0x1b0
[   11.657991]        device_initial_probe+0x14/0x20
[   11.657998]        bus_probe_device+0xb0/0xb4
[   11.658005]        device_add+0x5c8/0x784
[   11.658015]        amba_device_add+0x40/0xac
[   11.658024]        of_platform_bus_create+0x2b4/0x378
[   11.658033]        of_platform_populate+0x50/0xfc
[   11.658039]        of_platform_default_populate_init+0xd0/0xf0
[   11.658049]        do_one_initcall+0x74/0x2f0
[   11.658056]        kernel_init_freeable+0x2a0/0x4f8
[   11.658064]        kernel_init+0x24/0x1e0
[   11.658072]        ret_from_fork+0x10/0x20
[   11.658087]
[   11.658087] -> #2 (&dev->power.lock){-...}-{2:2}:
[   11.658103]        _raw_spin_lock_irqsave+0x60/0x88
[   11.658112]        __pm_runtime_resume+0x48/0xb8
[   11.658119]        __uart_start+0x4c/0xf4
[   11.658127]        uart_write+0xec/0x2bc
[   11.658134]        n_tty_write+0x1cc/0x49c
[   11.658143]        file_tty_write.constprop.0+0x128/0x2b4
[   11.658150]        redirected_tty_write+0xbc/0xdc
[   11.658157]        vfs_write+0x220/0x2c4
[   11.658166]        ksys_write+0x68/0xf4
[   11.658173]        __arm64_sys_write+0x1c/0x28
[   11.658181]        invoke_syscall+0x48/0x114
[   11.658191]        el0_svc_common.constprop.0+0x40/0xe8
[   11.658200]        do_el0_svc+0x20/0x2c
[   11.658208]        el0_svc+0x58/0x120
[   11.658216]        el0t_64_sync_handler+0x13c/0x158
[   11.658224]        el0t_64_sync+0x190/0x194
[   11.658231]
[   11.658231] -> #1 (&port_lock_key){....}-{2:2}:
[   11.658246]        _raw_spin_lock+0x48/0x60
[   11.658254]        pl011_console_write+0x150/0x1c4
[   11.658261]        console_flush_all+0x20c/0x510
[   11.658269]        console_unlock+0x6c/0x144
[   11.658277]        vprintk_emit+0x22c/0x3bc
[   11.658285]        vprintk_default+0x38/0x44
[   11.658294]        vprintk+0xa4/0xc0
[   11.658302]        _printk+0x5c/0x84
[   11.658309]        register_console+0x1f4/0x420
[   11.658316]        serial_core_register_port+0x5a0/0x5d4
[   11.658325]        serial_ctrl_register_port+0x10/0x1c
[   11.658333]        uart_add_one_port+0x10/0x1c
[   11.658341]        pl011_register_port+0x70/0x12c
[   11.658348]        pl011_probe+0x1ac/0x1e0
[   11.658355]        amba_probe+0x110/0x1c4
[   11.658363]        really_probe+0x148/0x2ac
[   11.658370]        __driver_probe_device+0x78/0x12c
[   11.658377]        driver_probe_device+0x3c/0x10c
[   11.658385]        __device_attach_driver+0xb8/0xf8
[   11.658392]        bus_for_each_drv+0x80/0xdc
[   11.658399]        __device_attach+0xa8/0x1b0
[   11.658406]        device_initial_probe+0x14/0x20
[   11.658413]        bus_probe_device+0xb0/0xb4
[   11.658420]        device_add+0x5c8/0x784
[   11.658429]        amba_device_add+0x40/0xac
[   11.658437]        of_platform_bus_create+0x2b4/0x378
[   11.658444]        of_platform_populate+0x50/0xfc
[   11.658450]        of_platform_default_populate_init+0xd0/0xf0
[   11.658459]        do_one_initcall+0x74/0x2f0
[   11.658466]        kernel_init_freeable+0x2a0/0x4f8
[   11.658473]        kernel_init+0x24/0x1e0
[   11.658482]        ret_from_fork+0x10/0x20
[   11.658489]
[   11.658489] -> #0 (console_owner){....}-{0:0}:
[   11.658504]        __lock_acquire+0x1510/0x1ff0
[   11.658512]        lock_acquire+0x1f0/0x330
[   11.658519]        console_flush_all+0x1f8/0x510
[   11.658527]        console_unlock+0x6c/0x144
[   11.658535]        vprintk_emit+0x22c/0x3bc
[   11.658542]        vprintk_default+0x38/0x44
[   11.658550]        vprintk+0xa4/0xc0
[   11.658558]        _printk+0x5c/0x84
[   11.658565]        lookup_object_or_alloc.part.0+0x150/0x2a8
[   11.658574]        __debug_object_init+0x108/0x20c
[   11.658582]        debug_object_init+0x24/0x30
[   11.658591]        __init_work+0x34/0x40
[   11.658599]        rhashtable_init+0x10c/0x2a8
[   11.658608]        bch2_copygc_thread+0x50/0x474
[   11.658617]        kthread+0x124/0x128
[   11.658625]        ret_from_fork+0x10/0x20
[   11.658636]
[   11.658636] other info that might help us debug this:
[   11.658636]
[   11.658671] Chain exists of:
[   11.658671]   console_owner --> &pool->lock --> &obj_hash[i].lock
[   11.658671]
[   11.658709]  Possible unsafe locking scenario:
[   11.658709]
[   11.658714]        CPU0                    CPU1
[   11.658719]        ----                    ----
[   11.658727]   lock(&obj_hash[i].lock);
[   11.658743]                                lock(&pool->lock);
[   11.658759]                                lock(&obj_hash[i].lock);
[   11.658780]   lock(console_owner);
[   11.658798]
[   11.658798]  *** DEADLOCK ***
[   11.658798]
[   11.658821] 3 locks held by bch-copygc/nvme/790:
[   11.658843]  #0: ffffac9251375218 (&obj_hash[i].lock){-.-.}-{2:2}, at: 
__debug_object_init+0xac/0x20c
[   11.658880]  #1: ffffac9250236870 (console_lock){+.+.}-{0:0}, at: 
vprintk_emit+0x11c/0x3bc
[   11.658923]  #2: ffffac9250236908 (console_srcu){....}-{0:0}, at: 
console_flush_all+0x7c/0x510
[   11.658958]
[   11.658958] stack backtrace:
[   11.659058] CPU: 3 PID: 790 Comm: bch-copygc/nvme Tainted: G                 
N 6.6.0-03474-gcd063c8b9e1e #1
[   11.659081] Hardware name: linux,dummy-virt (DT)
[   11.659202] Call trace:
[   11.659214]  dump_backtrace+0x94/0xec
[   11.659241]  show_stack+0x18/0x24
[   11.659248]  dump_stack_lvl+0x74/0xd4
[   11.659257]  dump_stack+0x18/0x24
[   11.659265]  print_circular_bug+0x290/0x370
[   11.659273]  check_noncircular+0x184/0x198
[   11.659281]  __lock_acquire+0x1510/0x1ff0
[   11.659288]  lock_acquire+0x1f0/0x330
[   11.659296]  console_flush_all+0x1f8/0x510
[   11.659304]  console_unlock+0x6c/0x144
[   11.659312]  vprintk_emit+0x22c/0x3bc
[   11.659320]  vprintk_default+0x38/0x44
[   11.659328]  vprintk+0xa4/0xc0
[   11.659336]  _printk+0x5c/0x84
[   11.659344]  lookup_object_or_alloc.part.0+0x150/0x2a8
[   11.659353]  __debug_object_init+0x108/0x20c
[   11.659362]  debug_object_init+0x24/0x30
[   11.659370]  __init_work+0x34/0x40
[   11.659379]  rhashtable_init+0x10c/0x2a8
[   11.659387]  bch2_copygc_thread+0x50/0x474
[   11.659394]  kthread+0x124/0x128
[   11.659402]  ret_from_fork+0x10/0x20
[   11.668336] ------------[ cut here ]------------
[   11.668466] WARNING: CPU: 3 PID: 790 at lib/debugobjects.c:557 
lookup_object_or_alloc.part.0+0x100/0x2a8
[   11.668592] Modules linked in:
[   11.668708] CPU: 3 PID: 790 Comm: bch-copygc/nvme Tainted: G                 
N 6.6.0-03474-gcd063c8b9e1e #1
[   11.668802] Hardware name: linux,dummy-virt (DT)
[   11.668890] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   11.668979] pc : lookup_object_or_alloc.part.0+0x100/0x2a8
[   11.669045] lr : lookup_object_or_alloc.part.0+0x150/0x2a8
[   11.669113] sp : ffff80008164b950
[   11.669176] x29: ffff80008164b950 x28: ffffac9250213ea8 x27: 0000000000000000
[   11.669304] x26: 0000000000000000 x25: ffff80008164bb80 x24: ffffac92513751f8
[   11.669393] x23: ffffac925131f0b0 x22: 0000000000000000 x21: ffffac924e97c620
[   11.669478] x20: ffff0f04c6942248 x19: ffff0f04dfcd17b0 x18: ffffffffffffffff
[   11.669575] x17: 2020202020202020 x16: 2020202020202020 x15: ffff80010164b577
[   11.669686] x14: 0000000000000000 x13: ffffac9250236af8 x12: 0000000000000ed9
[   11.669777] x11: 00000000000004f3 x10: ffffac925028eaf8 x9 : ffffac9250236af8
[   11.669885] x8 : 00000000ffffefff x7 : ffffac925028eaf8 x6 : 0000000000000000
[   11.669969] x5 : ffff0f04dfcc1f88 x4 : 0000000000000000 x3 : 0000000000000000
[   11.670054] x2 : 0000000000000000 x1 : ffff0f04c6f38040 x0 : 0000000000000050
[   11.670159] Call trace:
[   11.670206]  lookup_object_or_alloc.part.0+0x100/0x2a8
[   11.670265]  __debug_object_init+0x108/0x20c
[   11.670315]  debug_object_init+0x24/0x30
[   11.670362]  __init_work+0x34/0x40
[   11.670406]  rhashtable_init+0x10c/0x2a8
[   11.670452]  bch2_copygc_thread+0x50/0x474
[   11.670499]  kthread+0x124/0x128
[   11.670560]  ret_from_fork+0x10/0x20
[   11.670659] irq event stamp: 20
[   11.670705] hardirqs last  enabled at (19): [<ffffac924e046454>] 
get_random_u32+0x1e0/0x220
[   11.670795] hardirqs last disabled at (20): [<ffffac924e94a130>] 
_raw_spin_lock_irqsave+0x84/0x88
[   11.670897] softirqs last  enabled at (0): [<ffffac924d29b324>] 
copy_process+0x670/0x19d8
[   11.670989] softirqs last disabled at (0): [<0000000000000000>] 0x0
[   11.671258] ---[ end trace 0000000000000000 ]---

Reply via email to