imx_ldb: lockdep warning on 5.14.x

Fabio Estevam festevam at gmail.com
Sun Oct 10 15:39:45 UTC 2021


Hi,

I am getting the lockdep warning below on a imx6q-sabred running 5.14.9.

Haven't debugged this yet, but just wanted to report in case someone
has any suggestions.

Thanks,

Fabio Estevam

[    4.913294] imx-drm display-subsystem: bound imx-ipuv3-crtc.2 (ops
ipu_crtc_ops)
[    4.921640] imx-drm display-subsystem: bound imx-ipuv3-crtc.3 (ops
ipu_crtc_ops)
[    4.929798] imx-drm display-subsystem: bound imx-ipuv3-crtc.6 (ops
ipu_crtc_ops)
[    4.937977] imx-drm display-subsystem: bound imx-ipuv3-crtc.7 (ops
ipu_crtc_ops)
[    4.946850] imx-drm display-subsystem: bound 120000.hdmi (ops
dw_hdmi_imx_ops)
[    4.954685] imx-drm display-subsystem: bound ldb (ops imx_ldb_ops)
[    4.966943] [drm] Initialized imx-drm 1.0.0 20120507 for
display-subsystem on minor 0
[    5.001801]
[    5.001811] ======================================================
[    5.001817] WARNING: possible circular locking dependency detected
[    5.001824] 5.14.9-01225-g45da36cc6fcc-dirty #1 Tainted: G        W
[    5.001833] ------------------------------------------------------
[    5.001838] kworker/u8:0/7 is trying to acquire lock:
[    5.001848] c1752080 (regulator_list_mutex){+.+.}-{3:3}, at:
regulator_lock_dependent+0x40/0x294
[    5.001903]
[    5.001903] but task is already holding lock:
[    5.001909] c176df78 (dma_fence_map){++++}-{0:0}, at:
imx_drm_atomic_commit_tail+0x10/0x160
[    5.001957]
[    5.001957] which lock already depends on the new lock.
[    5.001957]
[    5.001963]
[    5.001963] the existing dependency chain (in reverse order) is:
[    5.001968]
[    5.001968] -> #3 (dma_fence_map){++++}-{0:0}:
[    5.001993]        dma_resv_lockdep+0x1c4/0x2b8
[    5.002010]        do_one_initcall+0x84/0x3b8
[    5.002026]        kernel_init_freeable+0x198/0x22c
[    5.002040]        kernel_init+0x10/0x128
[    5.002061]        ret_from_fork+0x14/0x38
[    5.002072]        0x0
[    5.002081]
[    5.002081] -> #2 (fs_reclaim){+.+.}-{0:0}:
[    5.002105]        kmem_cache_alloc+0x28/0x38c
[    5.002125]        __d_alloc+0x20/0x224
[    5.002141]        d_alloc+0x10/0x60
[    5.002152]        d_alloc_parallel+0x48/0xa60
[    5.002165]        __lookup_slow+0x8c/0x178
[    5.002184]        lookup_one_len+0x98/0xd8
[    5.002196]        start_creating+0x94/0x14c
[    5.002216]        debugfs_create_dir+0x10/0x100
[    5.002231]        pinctrl_init+0x1c/0xd4
[    5.002247]        do_one_initcall+0x84/0x3b8
[    5.002259]        kernel_init_freeable+0x198/0x22c
[    5.002271]        kernel_init+0x10/0x128
[    5.002286]        ret_from_fork+0x14/0x38
[    5.002296]        0x0
[    5.002303]
[    5.002303] -> #1 (&sb->s_type->i_mutex_key#2){+.+.}-{3:3}:
[    5.002335]        simple_recursive_removal+0x54/0x33c
[    5.002350]        debugfs_remove+0x30/0x4c
[    5.002364]        _regulator_put.part.0+0x30/0x1d8
[    5.002383]        regulator_put+0x2c/0x3c
[    5.002395]        release_nodes+0x50/0x190
[    5.002415]        devres_release_all+0x80/0xd4
[    5.002426]        really_probe+0xd4/0x314
[    5.002438]        __driver_probe_device+0x80/0xe4
[    5.002449]        driver_probe_device+0x30/0xd4
[    5.002459]        __driver_attach_async_helper+0x20/0x38
[    5.002470]        async_run_entry_fn+0x20/0xb4
[    5.002483]        process_one_work+0x2a0/0x7c0
[    5.002500]        worker_thread+0x30/0x510
[    5.002512]        kthread+0x154/0x17c
[    5.002526]        ret_from_fork+0x14/0x38
[    5.002537]        0x0
[    5.002546]
[    5.002546] -> #0 (regulator_list_mutex){+.+.}-{3:3}:
[    5.002569]        lock_acquire+0x13c/0x418
[    5.002581]        __mutex_lock+0x94/0x97c
[    5.002595]        mutex_lock_nested+0x1c/0x24
[    5.002605]        regulator_lock_dependent+0x40/0x294
[    5.002622]        regulator_enable+0x2c/0xec
[    5.002632]        panel_simple_resume+0x38/0x1f4
[    5.002648]        __rpm_callback+0x3c/0x108
[    5.002661]        rpm_callback+0x68/0x70
[    5.002671]        rpm_resume+0x604/0x7f4
[    5.002681]        __pm_runtime_resume+0x64/0x90
[    5.002692]        panel_simple_prepare+0x2c/0x50
[    5.002703]        imx_ldb_encoder_enable+0x58/0x2b0
[    5.002715]        drm_atomic_helper_commit_modeset_enables+0x230/0x26c
[    5.002734]        imx_drm_atomic_commit_tail+0x3c/0x160
[    5.002753]        commit_tail+0x9c/0x18c
[    5.002766]        drm_atomic_helper_commit+0x158/0x18c
[    5.002778]        drm_client_modeset_commit_atomic+0x23c/0x288
[    5.002795]        drm_client_modeset_commit_locked+0x60/0x1d0
[    5.002806]        drm_client_modeset_commit+0x24/0x40
[    5.002819]        __drm_fb_helper_restore_fbdev_mode_unlocked+0x9c/0xc8
[    5.002835]        drm_fb_helper_set_par+0x38/0x68
[    5.002845]        fbcon_init+0x2bc/0x550
[    5.002862]        visual_init+0xbc/0x104
[    5.002881]        do_bind_con_driver+0x1c8/0x3b0
[    5.002896]        do_take_over_console+0x134/0x1f0
[    5.002910]        do_fbcon_takeover+0x60/0xc0
[    5.002924]        register_framebuffer+0x1c8/0x2e8
[    5.002936]        __drm_fb_helper_initial_config_and_unlock+0x3c8/0x614
[    5.002950]        drm_fbdev_client_hotplug+0xf8/0x194
[    5.002961]        drm_fbdev_generic_setup+0x9c/0x194
[    5.002971]        imx_drm_bind+0xe0/0x124
[    5.002985]        try_to_bring_up_master+0x15c/0x1a8
[    5.003002]        __component_add+0x94/0x140
[    5.003013]        imx_ldb_probe+0x32c/0x4e8
[    5.003025]        platform_probe+0x58/0xb8
[    5.003040]        really_probe+0x14c/0x314
[    5.003050]        __driver_probe_device+0x80/0xe4
[    5.003060]        driver_probe_device+0x30/0xd4
[    5.003070]        __device_attach_driver+0x8c/0xb4
[    5.003081]        bus_for_each_drv+0x80/0xd0
[    5.003093]        __device_attach+0xec/0x160
[    5.003105]        bus_probe_device+0x88/0x90
[    5.003116]        deferred_probe_work_func+0x7c/0xac
[    5.003127]        process_one_work+0x2a0/0x7c0
[    5.003143]        worker_thread+0x30/0x510
[    5.003154]        kthread+0x154/0x17c
[    5.003164]        ret_from_fork+0x14/0x38
[    5.003174]        0x0
[    5.003182]
[    5.003182] other info that might help us debug this:
[    5.003182]
[    5.003188] Chain exists of:
[    5.003188]   regulator_list_mutex --> fs_reclaim --> dma_fence_map
[    5.003188]
[    5.003218]  Possible unsafe locking scenario:
[    5.003218]
[    5.003222]        CPU0                    CPU1
[    5.003227]        ----                    ----
[    5.003232]   lock(dma_fence_map);
[    5.003244]                                lock(fs_reclaim);
[    5.003257]                                lock(dma_fence_map);
[    5.003269]   lock(regulator_list_mutex);
[    5.003280]
[    5.003280]  *** DEADLOCK ***
[    5.003280]
[    5.003284] 13 locks held by kworker/u8:0/7:
[    5.003292]  #0: c2006ca8
((wq_completion)events_unbound){+.+.}-{0:0}, at:
process_one_work+0x1ec/0x7c0
[    5.003331]  #1: c20c9f28 (deferred_probe_work){+.+.}-{0:0}, at:
process_one_work+0x1ec/0x7c0
[    5.003367]  #2: c21448d8 (&dev->mutex){....}-{3:3}, at:
__device_attach+0x30/0x160
[    5.003404]  #3: c1769c90 (component_mutex){+.+.}-{3:3}, at:
__component_add+0x44/0x140
[    5.003440]  #4: c174c8f4 (registration_lock){+.+.}-{3:3}, at:
register_framebuffer+0x28/0x2e8
[    5.003475]  #5: c1618454 (console_lock){+.+.}-{0:0}, at:
register_framebuffer+0x248/0x2e8
[    5.003508]  #6: c263dc48 (&fb_info->lock){+.+.}-{3:3}, at:
register_framebuffer+0x1c0/0x2e8
[    5.003543]  #7: c2b8fb6c (&helper->lock){+.+.}-{3:3}, at:
__drm_fb_helper_restore_fbdev_mode_unlocked+0x4c/0xc8
[    5.003578]  #8: c2be90e8 (&dev->master_mutex){+.+.}-{3:3}, at:
drm_master_internal_acquire+0x18/0x3c
[    5.003614]  #9: c2b8fa50 (&client->modeset_mutex){+.+.}-{3:3}, at:
drm_client_modeset_commit_locked+0x20/0x1d0
[    5.003653]  #10: c20c9ae0 (crtc_ww_class_acquire){+.+.}-{0:0}, at:
drm_client_modeset_commit_atomic+0x34/0x288
[    5.003691]  #11: c263c488 (crtc_ww_class_mutex){+.+.}-{3:3}, at:
drm_modeset_backoff+0x90/0x228
[    5.003734]  #12: c176df78 (dma_fence_map){++++}-{0:0}, at:
imx_drm_atomic_commit_tail+0x10/0x160
[    5.003775]
[    5.003775] stack backtrace:
[    5.003783] CPU: 0 PID: 7 Comm: kworker/u8:0 Tainted: G        W
     5.14.9-01225-g45da36cc6fcc-dirty #1
[    5.003797] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[    5.003808] Workqueue: events_unbound deferred_probe_work_func
[    5.003831] [<c01119b0>] (unwind_backtrace) from [<c010c020>]
(show_stack+0x10/0x14)
[    5.003860] [<c010c020>] (show_stack) from [<c0e76ab0>]
(dump_stack_lvl+0x58/0x70)
[    5.003887] [<c0e76ab0>] (dump_stack_lvl) from [<c0188dd4>]
(check_noncircular+0xf4/0x168)
[    5.003917] [<c0188dd4>] (check_noncircular) from [<c018cc78>]
(__lock_acquire+0x1698/0x3208)
[    5.003938] [<c018cc78>] (__lock_acquire) from [<c018f274>]
(lock_acquire+0x13c/0x418)
[    5.003955] [<c018f274>] (lock_acquire) from [<c0e88c18>]
(__mutex_lock+0x94/0x97c)
[    5.003974] [<c0e88c18>] (__mutex_lock) from [<c0e8951c>]
(mutex_lock_nested+0x1c/0x24)
[    5.003991] [<c0e8951c>] (mutex_lock_nested) from [<c06aecdc>]
(regulator_lock_dependent+0x40/0x294)
[    5.004019] [<c06aecdc>] (regulator_lock_dependent) from
[<c06b26cc>] (regulator_enable+0x2c/0xec)
[    5.004039] [<c06b26cc>] (regulator_enable) from [<c07ce850>]
(panel_simple_resume+0x38/0x1f4)
[    5.004062] [<c07ce850>] (panel_simple_resume) from [<c080698c>]
(__rpm_callback+0x3c/0x108)
[    5.004082] [<c080698c>] (__rpm_callback) from [<c0806ac0>]
(rpm_callback+0x68/0x70)
[    5.004098] [<c0806ac0>] (rpm_callback) from [<c08065e4>]
(rpm_resume+0x604/0x7f4)
[    5.004114] [<c08065e4>] (rpm_resume) from [<c0806838>]
(__pm_runtime_resume+0x64/0x90)
[    5.004131] [<c0806838>] (__pm_runtime_resume) from [<c07ce69c>]
(panel_simple_prepare+0x2c/0x50)
[    5.004149] [<c07ce69c>] (panel_simple_prepare) from [<c07ccfa0>]
(imx_ldb_encoder_enable+0x58/0x2b0)
[    5.004169] [<c07ccfa0>] (imx_ldb_encoder_enable) from [<c07043f8>]
(drm_atomic_helper_commit_modeset_enables+0x230/0x26c)
[    5.004194] [<c07043f8>] (drm_atomic_helper_commit_modeset_enables)
from [<c07c8bf8>] (imx_drm_atomic_commit_tail+0x3c/0x160)
[    5.004222] [<c07c8bf8>] (imx_drm_atomic_commit_tail) from
[<c07060a0>] (commit_tail+0x9c/0x18c)
[    5.004244] [<c07060a0>] (commit_tail) from [<c07062f0>]
(drm_atomic_helper_commit+0x158/0x18c)
[    5.004266] [<c07062f0>] (drm_atomic_helper_commit) from
[<c073b678>] (drm_client_modeset_commit_atomic+0x23c/0x288)
[    5.004290] [<c073b678>] (drm_client_modeset_commit_atomic) from
[<c073b794>] (drm_client_modeset_commit_locked+0x60/0x1d0)
[    5.004311] [<c073b794>] (drm_client_modeset_commit_locked) from
[<c073b928>] (drm_client_modeset_commit+0x24/0x40)
[    5.004330] [<c073b928>] (drm_client_modeset_commit) from
[<c070c474>] (__drm_fb_helper_restore_fbdev_mode_unlocked+0x9c/0xc8)
[    5.004353] [<c070c474>]
(__drm_fb_helper_restore_fbdev_mode_unlocked) from [<c070c508>]
(drm_fb_helper_set_par+0x38/0x68)
[    5.004373] [<c070c508>] (drm_fb_helper_set_par) from [<c0677938>]
(fbcon_init+0x2bc/0x550)
[    5.004395] [<c0677938>] (fbcon_init) from [<c06d7144>]
(visual_init+0xbc/0x104)
[    5.004419] [<c06d7144>] (visual_init) from [<c06d8574>]
(do_bind_con_driver+0x1c8/0x3b0)
[    5.004440] [<c06d8574>] (do_bind_con_driver) from [<c06d8ab8>]
(do_take_over_console+0x134/0x1f0)
[    5.004462] [<c06d8ab8>] (do_take_over_console) from [<c067557c>]
(do_fbcon_takeover+0x60/0xc0)
[    5.004484] [<c067557c>] (do_fbcon_takeover) from [<c066da40>]
(register_framebuffer+0x1c8/0x2e8)
[    5.004503] [<c066da40>] (register_framebuffer) from [<c070be0c>]
(__drm_fb_helper_initial_config_and_unlock+0x3c8/0x614)
[    5.004522] [<c070be0c>]
(__drm_fb_helper_initial_config_and_unlock) from [<c070c744>]
(drm_fbdev_client_hotplug+0xf8/0x194)
[    5.004541] [<c070c744>] (drm_fbdev_client_hotplug) from
[<c070c87c>] (drm_fbdev_generic_setup+0x9c/0x194)
[    5.004559] [<c070c87c>] (drm_fbdev_generic_setup) from
[<c07c8b78>] (imx_drm_bind+0xe0/0x124)
[    5.004583] [<c07c8b78>] (imx_drm_bind) from [<c07f0ce4>]
(try_to_bring_up_master+0x15c/0x1a8)
[    5.004608] [<c07f0ce4>] (try_to_bring_up_master) from [<c07f0dc4>]
(__component_add+0x94/0x140)
[    5.004628] [<c07f0dc4>] (__component_add) from [<c07cc9dc>]
(imx_ldb_probe+0x32c/0x4e8)
[    5.004647] [<c07cc9dc>] (imx_ldb_probe) from [<c07fae98>]
(platform_probe+0x58/0xb8)
[    5.004670] [<c07fae98>] (platform_probe) from [<c07f8748>]
(really_probe+0x14c/0x314)
[    5.004690] [<c07f8748>] (really_probe) from [<c07f8990>]
(__driver_probe_device+0x80/0xe4)
[    5.004709] [<c07f8990>] (__driver_probe_device) from [<c07f8a24>]
(driver_probe_device+0x30/0xd4)
[    5.004728] [<c07f8a24>] (driver_probe_device) from [<c07f8d40>]
(__device_attach_driver+0x8c/0xb4)
[    5.004748] [<c07f8d40>] (__device_attach_driver) from [<c07f6b0c>]
(bus_for_each_drv+0x80/0xd0)
[    5.004767] [<c07f6b0c>] (bus_for_each_drv) from [<c07f8580>]
(__device_attach+0xec/0x160)
[    5.004785] [<c07f8580>] (__device_attach) from [<c07f77e0>]
(bus_probe_device+0x88/0x90)
[    5.004803] [<c07f77e0>] (bus_probe_device) from [<c07f7c9c>]
(deferred_probe_work_func+0x7c/0xac)
[    5.004820] [<c07f7c9c>] (deferred_probe_work_func) from
[<c0147cc0>] (process_one_work+0x2a0/0x7c0)
[    5.004845] [<c0147cc0>] (process_one_work) from [<c0148210>]
(worker_thread+0x30/0x510)
[    5.004865] [<c0148210>] (worker_thread) from [<c0151088>]
(kthread+0x154/0x17c)
[    5.004885] [<c0151088>] (kthread) from [<c010013c>]
(ret_from_fork+0x14/0x38)
[    5.004904] Exception stack(0xc20c9fb0 to 0xc20c9ff8)
[    5.004916] 9fa0:                                     00000000
00000000 00000000 00000000
[    5.004929] 9fc0: 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000
[    5.004940] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    5.054205] Console: switching to colour frame buffer device 128x48
[    6.236262] imx-drm display-subsystem: [drm] fb0: imx-drm frame buffer device
[    6.251485] etnaviv etnaviv: bound 130000.gpu (ops gpu_ops)
[    6.257459] etnaviv etnaviv: bound 134000.gpu (ops gpu_ops)
[    6.263513] etnaviv etnaviv: bound 2204000.gpu (ops gpu_ops)
[    6.269228] etnaviv-gpu 130000.gpu: model: GC2000, revision: 5108
[    6.275723] etnaviv-gpu 134000.gpu: model: GC320, revision: 5007
[    6.281932] etnaviv-gpu 2204000.gpu: model: GC355, revision: 1215
[    6.288047] etnaviv-gpu 2204000.gpu: Ignoring GPU with VG and FE2.0
[    6.295155] [drm] Initialized etnaviv 1.3.0 20151214 for etnaviv on minor 1


More information about the dri-devel mailing list