On Wed, Dec 26, 2012 at 10:34:39AM +0800, Shawn Guo wrote: > It seems that I'm running into the same locking issue. My setup is: > > - i.MX28 (ARM) > - v3.8-rc1 > - mxs_defconfig - The warning is seen when LCD is blanking >
The warning disappears after reverting patch daee779 (console: implement lockdep support for console_lock). Is it suggesting that the mxs frame buffer driver (drivers/video/mxsfb.c) is doing something bad? Shawn > > [ 602.229899] ====================================================== > [ 602.229905] [ INFO: possible circular locking dependency detected ] > [ 602.229926] 3.8.0-rc1-00003-gde4ae7f #767 Not tainted > [ 602.229933] ------------------------------------------------------- > [ 602.229951] kworker/0:1/21 is trying to acquire lock: > [ 602.230037] ((fb_notifier_list).rwsem){.+.+.+}, at: [<c0041f34>] > __blocking_notifier_call_chain+0x2c/0x60 > [ 602.230047] > [ 602.230047] but task is already holding lock: > [ 602.230090] (console_lock){+.+.+.}, at: [<c02a1d60>] > console_callback+0xc/0x12c > [ 602.230098] > [ 602.230098] which lock already depends on the new lock. > [ 602.230098] > [ 602.230104] > [ 602.230104] the existing dependency chain (in reverse order) is: > [ 602.230126] > [ 602.230126] -> #1 (console_lock){+.+.+.}: > [ 602.230174] [<c005cb20>] lock_acquire+0x9c/0x124 > [ 602.230205] [<c001dc78>] console_lock+0x58/0x6c > [ 602.230250] [<c029ea60>] register_con_driver+0x38/0x138 > [ 602.230284] [<c02a0018>] take_over_console+0x18/0x44 > [ 602.230314] [<c027bc80>] fbcon_takeover+0x64/0xc8 > [ 602.230352] [<c0041c94>] notifier_call_chain+0x44/0x80 > [ 602.230386] [<c0041f50>] __blocking_notifier_call_chain+0x48/0x60 > [ 602.230416] [<c0041f80>] blocking_notifier_call_chain+0x18/0x20 > [ 602.230459] [<c0275efc>] register_framebuffer+0x170/0x250 > [ 602.230492] [<c02837f4>] mxsfb_probe+0x574/0x738 > [ 602.230528] [<c02b276c>] platform_drv_probe+0x14/0x18 > [ 602.230556] [<c02b14cc>] driver_probe_device+0x78/0x20c > [ 602.230583] [<c02b16f4>] __driver_attach+0x94/0x98 > [ 602.230610] [<c02afdb4>] bus_for_each_dev+0x54/0x7c > [ 602.230636] [<c02b0d14>] bus_add_driver+0x180/0x250 > [ 602.230662] [<c02b1bb8>] driver_register+0x78/0x144 > [ 602.230690] [<c00087c8>] do_one_initcall+0x30/0x16c > [ 602.230721] [<c0428fcc>] kernel_init+0xf4/0x290 > [ 602.230756] [<c000e9c8>] ret_from_fork+0x14/0x2c > [ 602.230781] > [ 602.230781] -> #0 ((fb_notifier_list).rwsem){.+.+.+}: > [ 602.230825] [<c005bfa0>] __lock_acquire+0x1354/0x19b0 > [ 602.230854] [<c005cb20>] lock_acquire+0x9c/0x124 > [ 602.230895] [<c0430148>] down_read+0x3c/0x4c > [ 602.230933] [<c0041f34>] __blocking_notifier_call_chain+0x2c/0x60 > [ 602.230962] [<c0041f80>] blocking_notifier_call_chain+0x18/0x20 > [ 602.230997] [<c0274a78>] fb_blank+0x34/0x98 > [ 602.231024] [<c027c7b8>] fbcon_blank+0x1dc/0x27c > [ 602.231065] [<c029f194>] do_blank_screen+0x1b0/0x268 > [ 602.231093] [<c02a1dbc>] console_callback+0x68/0x12c > [ 602.231121] [<c00368c0>] process_one_work+0x1a8/0x560 > [ 602.231145] [<c0036fd8>] worker_thread+0x160/0x480 > [ 602.231180] [<c003c040>] kthread+0xa4/0xb0 > [ 602.231210] [<c000e9c8>] ret_from_fork+0x14/0x2c > [ 602.231218] > [ 602.231218] other info that might help us debug this: > [ 602.231218] > [ 602.231225] Possible unsafe locking scenario: > [ 602.231225] > [ 602.231230] CPU0 CPU1 > [ 602.231235] ---- ---- > [ 602.231249] lock(console_lock); > [ 602.231263] lock((fb_notifier_list).rwsem); > [ 602.231275] lock(console_lock); > [ 602.231287] lock((fb_notifier_list).rwsem); > [ 602.231292] > [ 602.231292] *** DEADLOCK *** > [ 602.231292] > [ 602.231305] 3 locks held by kworker/0:1/21: > [ 602.231345] #0: (events){.+.+.+}, at: [<c0036840>] > process_one_work+0x128/0x560 > [ 602.231388] #1: (console_work){+.+...}, at: [<c0036840>] > process_one_work+0x128/0x560 > [ 602.231430] #2: (console_lock){+.+.+.}, at: [<c02a1d60>] > console_callback+0xc/0x12c > [ 602.231437] > [ 602.231437] stack backtrace: > [ 602.231491] [<c0013e58>] (unwind_backtrace+0x0/0xf0) from [<c042b0e4>] > (print_circular_bug+0x254/0x2a0) > [ 602.231547] [<c042b0e4>] (print_circular_bug+0x254/0x2a0) from > [<c005bfa0>] (__lock_acquire+0x1354/0x19b0) > [ 602.231596] [<c005bfa0>] (__lock_acquire+0x1354/0x19b0) from [<c005cb20>] > (lock_acquire+0x9c/0x124) > [ 602.231640] [<c005cb20>] (lock_acquire+0x9c/0x124) from [<c0430148>] > (down_read+0x3c/0x4c) > [ 602.231694] [<c0430148>] (down_read+0x3c/0x4c) from [<c0041f34>] > (__blocking_notifier_call_chain+0x2c/0x60) > [ 602.231741] [<c0041f34>] (__blocking_notifier_call_chain+0x2c/0x60) from > [<c0041f80>] (blocking_notifier_call_chain+0x18/0x20) > [ 602.231791] [<c0041f80>] (blocking_notifier_call_chain+0x18/0x20) from > [<c0274a78>] (fb_blank+0x34/0x98) > [ 602.231836] [<c0274a78>] (fb_blank+0x34/0x98) from [<c027c7b8>] > (fbcon_blank+0x1dc/0x27c) > [ 602.231886] [<c027c7b8>] (fbcon_blank+0x1dc/0x27c) from [<c029f194>] > (do_blank_screen+0x1b0/0x268) > [ 602.231931] [<c029f194>] (do_blank_screen+0x1b0/0x268) from [<c02a1dbc>] > (console_callback+0x68/0x12c) > [ 602.231970] [<c02a1dbc>] (console_callback+0x68/0x12c) from [<c00368c0>] > (process_one_work+0x1a8/0x560) > [ 602.232010] [<c00368c0>] (process_one_work+0x1a8/0x560) from [<c0036fd8>] > (worker_thread+0x160/0x480) > [ 602.232054] [<c0036fd8>] (worker_thread+0x160/0x480) from [<c003c040>] > (kthread+0xa4/0xb0) > [ 602.232100] [<c003c040>] (kthread+0xa4/0xb0) from [<c000e9c8>] > (ret_from_fork+0x14/0x2c) > > > On Sat, Dec 22, 2012 at 04:28:26PM +0100, Maciej Rutecki wrote: > > Got during suspend to disk: > > > > [ 269.784867] [ INFO: possible circular locking dependency detected ] > > [ 269.784869] 3.8.0-rc1 #1 Not tainted > > [ 269.784870] ------------------------------------------------------- > > [ 269.784871] kworker/u:3/56 is trying to acquire lock: > > [ 269.784878] ((fb_notifier_list).rwsem){.+.+.+}, at: > > [<ffffffff81062a1d>] > > __blocking_notifier_call_chain+0x49/0x80 > > [ 269.784879] > > [ 269.784879] but task is already holding lock: > > [ 269.784884] (console_lock){+.+.+.}, at: [<ffffffff812ee4ce>] > > i915_drm_freeze+0x9e/0xbb > > [ 269.784884] > > [ 269.784884] which lock already depends on the new lock. > > [ 269.784884] > > [ 269.784885] > > [ 269.784885] the existing dependency chain (in reverse order) is: > > [ 269.784887] > > [ 269.784887] -> #1 (console_lock){+.+.+.}: > > [ 269.784890] [<ffffffff810890e4>] lock_acquire+0x95/0x105 > > [ 269.784893] [<ffffffff810405a1>] console_lock+0x59/0x5b > > [ 269.784897] [<ffffffff812ba125>] register_con_driver+0x36/0x128 > > [ 269.784899] [<ffffffff812bb27e>] take_over_console+0x1e/0x45 > > [ 269.784903] [<ffffffff81257a04>] fbcon_takeover+0x56/0x98 > > [ 269.784906] [<ffffffff8125b857>] fbcon_event_notify+0x2c1/0x5ea > > [ 269.784909] [<ffffffff8149a211>] notifier_call_chain+0x67/0x92 > > [ 269.784911] [<ffffffff81062a33>] > > __blocking_notifier_call_chain+0x5f/0x80 > > [ 269.784912] [<ffffffff81062a63>] > > blocking_notifier_call_chain+0xf/0x11 > > [ 269.784915] [<ffffffff8124e85e>] fb_notifier_call_chain+0x16/0x18 > > [ 269.784917] [<ffffffff812505d7>] register_framebuffer+0x20a/0x26e > > [ 269.784920] [<ffffffff812d3ca0>] > > drm_fb_helper_single_fb_probe+0x1ce/0x297 > > [ 269.784922] [<ffffffff812d3f40>] > > drm_fb_helper_initial_config+0x1d7/0x1ef > > [ 269.784924] [<ffffffff8132cee2>] intel_fbdev_init+0x6f/0x82 > > [ 269.784927] [<ffffffff812f22f6>] i915_driver_load+0xa9e/0xc78 > > [ 269.784929] [<ffffffff812e020c>] drm_get_pci_dev+0x165/0x26d > > [ 269.784931] [<ffffffff812ee8da>] i915_pci_probe+0x60/0x69 > > [ 269.784933] [<ffffffff8123fe8e>] local_pci_probe+0x39/0x61 > > [ 269.784935] [<ffffffff812400f5>] pci_device_probe+0xba/0xe0 > > [ 269.784938] [<ffffffff8133d3b6>] driver_probe_device+0x99/0x1c4 > > [ 269.784940] [<ffffffff8133d52f>] __driver_attach+0x4e/0x6f > > [ 269.784942] [<ffffffff8133bae1>] bus_for_each_dev+0x52/0x84 > > [ 269.784944] [<ffffffff8133cec6>] driver_attach+0x19/0x1b > > [ 269.784946] [<ffffffff8133cb65>] bus_add_driver+0xdf/0x203 > > [ 269.784948] [<ffffffff8133dad3>] driver_register+0x8e/0x114 > > [ 269.784952] [<ffffffff8123f581>] __pci_register_driver+0x5d/0x62 > > [ 269.784953] [<ffffffff812e0395>] drm_pci_init+0x81/0xe6 > > [ 269.784957] [<ffffffff81af7612>] i915_init+0x66/0x68 > > [ 269.784959] [<ffffffff810020b4>] do_one_initcall+0x7a/0x136 > > [ 269.784962] [<ffffffff8147ceaa>] kernel_init+0x141/0x296 > > [ 269.784964] [<ffffffff8149c7bc>] ret_from_fork+0x7c/0xb0 > > [ 269.784966] > > [ 269.784966] -> #0 ((fb_notifier_list).rwsem){.+.+.+}: > > [ 269.784967] [<ffffffff81088955>] __lock_acquire+0xa7e/0xddd > > [ 269.784969] [<ffffffff810890e4>] lock_acquire+0x95/0x105 > > [ 269.784971] [<ffffffff81495092>] down_read+0x34/0x43 > > [ 269.784973] [<ffffffff81062a1d>] > > __blocking_notifier_call_chain+0x49/0x80 > > [ 269.784975] [<ffffffff81062a63>] > > blocking_notifier_call_chain+0xf/0x11 > > [ 269.784977] [<ffffffff8124e85e>] fb_notifier_call_chain+0x16/0x18 > > [ 269.784979] [<ffffffff8124ec47>] fb_set_suspend+0x22/0x4d > > [ 269.784981] [<ffffffff8132cfe3>] intel_fbdev_set_suspend+0x20/0x22 > > [ 269.784983] [<ffffffff812ee4db>] i915_drm_freeze+0xab/0xbb > > [ 269.784985] [<ffffffff812eea82>] i915_pm_freeze+0x3d/0x41 > > [ 269.784987] [<ffffffff8123f759>] pci_pm_freeze+0x65/0x8d > > [ 269.784990] [<ffffffff81342f20>] dpm_run_callback.isra.3+0x27/0x56 > > [ 269.784993] [<ffffffff81343085>] __device_suspend+0x136/0x1b1 > > [ 269.784995] [<ffffffff8134311a>] async_suspend+0x1a/0x58 > > [ 269.784997] [<ffffffff81063a6b>] async_run_entry_fn+0xa4/0x17c > > [ 269.785000] [<ffffffff81058df2>] process_one_work+0x1cf/0x38e > > [ 269.785002] [<ffffffff81059290>] worker_thread+0x12e/0x1cc > > [ 269.785004] [<ffffffff8105d416>] kthread+0xac/0xb4 > > [ 269.785006] [<ffffffff8149c7bc>] ret_from_fork+0x7c/0xb0 > > [ 269.785006] > > [ 269.785006] other info that might help us debug this: > > [ 269.785006] > > [ 269.785007] Possible unsafe locking scenario: > > [ 269.785007] > > [ 269.785008] CPU0 CPU1 > > [ 269.785008] ---- ---- > > [ 269.785009] lock(console_lock); > > [ 269.785010] > > lock((fb_notifier_list).rwsem); > > [ 269.785012] lock(console_lock); > > [ 269.785013] lock((fb_notifier_list).rwsem); > > [ 269.785013] > > [ 269.785013] *** DEADLOCK *** > > [ 269.785013] > > [ 269.785014] 4 locks held by kworker/u:3/56: > > [ 269.785018] #0: (events_unbound){.+.+.+}, at: [<ffffffff81058d77>] > > process_one_work+0x154/0x38e > > [ 269.785021] #1: ((&entry->work)){+.+.+.}, at: [<ffffffff81058d77>] > > process_one_work+0x154/0x38e > > [ 269.785024] #2: (&__lockdep_no_validate__){......}, at: > > [<ffffffff81342d85>] > > device_lock+0xf/0x11 > > [ 269.785027] #3: (console_lock){+.+.+.}, at: [<ffffffff812ee4ce>] > > i915_drm_freeze+0x9e/0xbb > > [ 269.785028] > > [ 269.785028] stack backtrace: > > [ 269.785029] Pid: 56, comm: kworker/u:3 Not tainted 3.8.0-rc1 #1 > > [ 269.785030] Call Trace: > > [ 269.785035] [<ffffffff8148fcb5>] print_circular_bug+0x1f8/0x209 > > [ 269.785036] [<ffffffff81088955>] __lock_acquire+0xa7e/0xddd > > [ 269.785038] [<ffffffff810890e4>] lock_acquire+0x95/0x105 > > [ 269.785040] [<ffffffff81062a1d>] ? > > __blocking_notifier_call_chain+0x49/0x80 > > [ 269.785042] [<ffffffff81495092>] down_read+0x34/0x43 > > [ 269.785044] [<ffffffff81062a1d>] ? > > __blocking_notifier_call_chain+0x49/0x80 > > [ 269.785046] [<ffffffff81062a1d>] > > __blocking_notifier_call_chain+0x49/0x80 > > [ 269.785047] [<ffffffff81062a63>] blocking_notifier_call_chain+0xf/0x11 > > [ 269.785050] [<ffffffff8124e85e>] fb_notifier_call_chain+0x16/0x18 > > [ 269.785052] [<ffffffff8124ec47>] fb_set_suspend+0x22/0x4d > > [ 269.785054] [<ffffffff8132cfe3>] intel_fbdev_set_suspend+0x20/0x22 > > [ 269.785055] [<ffffffff812ee4db>] i915_drm_freeze+0xab/0xbb > > [ 269.785057] [<ffffffff812eea82>] i915_pm_freeze+0x3d/0x41 > > [ 269.785060] [<ffffffff8123f759>] pci_pm_freeze+0x65/0x8d > > [ 269.785062] [<ffffffff8123f6f4>] ? pci_pm_poweroff+0x9c/0x9c > > [ 269.785064] [<ffffffff81342f20>] dpm_run_callback.isra.3+0x27/0x56 > > [ 269.785066] [<ffffffff81343085>] __device_suspend+0x136/0x1b1 > > [ 269.785068] [<ffffffff81089563>] ? trace_hardirqs_on_caller+0x117/0x173 > > [ 269.785070] [<ffffffff8134311a>] async_suspend+0x1a/0x58 > > [ 269.785072] [<ffffffff81063a6b>] async_run_entry_fn+0xa4/0x17c > > [ 269.785074] [<ffffffff81058df2>] process_one_work+0x1cf/0x38e > > [ 269.785076] [<ffffffff81058d77>] ? process_one_work+0x154/0x38e > > [ 269.785078] [<ffffffff810639c7>] ? async_schedule+0x12/0x12 > > [ 269.785080] [<ffffffff8105679f>] ? spin_lock_irq+0x9/0xb > > [ 269.785082] [<ffffffff81059290>] worker_thread+0x12e/0x1cc > > [ 269.785084] [<ffffffff81059162>] ? rescuer_thread+0x187/0x187 > > [ 269.785085] [<ffffffff8105d416>] kthread+0xac/0xb4 > > [ 269.785088] [<ffffffff8105d36a>] ? __kthread_parkme+0x60/0x60 > > [ 269.785090] [<ffffffff8149c7bc>] ret_from_fork+0x7c/0xb0 > > [ 269.785091] [<ffffffff8105d36a>] ? __kthread_parkme+0x60/0x60 > > > > > > Config: > > http://mrutecki.pl/download/kernel/3.8.0-rc1/s2disk/config-3.8.0-rc1 > > > > dmesg: > > http://mrutecki.pl/download/kernel/3.8.0-rc1/s2disk/dmesg-3.8.0-rc1.txt > > > > > > Found similar report: > > http://marc.info/?l=linux-kernel&m=135546308908700&w=2 > > > > Regards > > > > -- > > Maciej Rutecki > > http://www.mrutecki.pl > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > > the body of a message to majord...@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/