Bug 1152876 - 3.18.rc0: possible recursive locking detected in drm/backlight code
Summary: 3.18.rc0: possible recursive locking detected in drm/backlight code
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-drv-nouveau
Version: 21
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ben Skeggs
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-10-15 06:38 UTC by Mikko Tiihonen
Modified: 2015-08-14 08:27 UTC (History)
10 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2015-08-14 08:27:01 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Mikko Tiihonen 2014-10-15 06:38:25 UTC
This happened immediately on boot (actually I cannot boot the kernel at all while rc0.git0.1 did boot).

[ INFO: possible recursive locking detected ]
3.18.0-0.rc0.git8.1.fc22.x86_64 #1 Not tainted
---------------------------------------------
systemd-udevd/299 is trying to acquire lock:
 (&(&backlight_notifier)->rwsem){++++..}, at: [<ffffffff810d5419>] __blocking_notifier_call_chain+0x39/0x70

but task is already holding lock:
 (&(&backlight_notifier)->rwsem){++++..}, at: [<ffffffff810d5419>] __blocking_notifier_call_chain+0x39/0x70

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&(&backlight_notifier)->rwsem);
  lock(&(&backlight_notifier)->rwsem);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

5 locks held by systemd-udevd/299:
 #0:  (&dev->mutex){......}, at: [<ffffffff8155bda3>] __driver_attach+0x53/0xb0
 #1:  (&dev->mutex){......}, at: [<ffffffff8155bdb1>] __driver_attach+0x61/0xb0
 #2:  (drm_global_mutex){+.+.+.}, at: [<ffffffffa0077f96>] drm_dev_register+0x26/0x110 [drm]
 #3:  (&(&backlight_notifier)->rwsem){++++..}, at: [<ffffffff810d5419>] __blocking_notifier_call_chain+0x39/0x70^C
 #4:  (&video->device_list_lock){+.+.+.}, at: [<ffffffffa00316ee>] acpi_video_bus_unregister_backlight+0x45/0x11f [video]

stack backtrace:
CPU: 2 PID: 299 Comm: systemd-udevd Not tainted 3.18.0-0.rc0.git8.1.fc22.x86_64 #1
Hardware name: LENOVO 42844DG/42844DG, BIOS 8BET57WW (1.37 ) 04/06/2012
 0000000000000000 00000000bcb79034 ffff880425717528 ffffffff8185845f
 0000000000000000 ffffffff82c000a0 ffff880425717608 ffffffff81109440
 0b71b00c6862a279 ffff880400000004 ffff880100000000 0b71b00c6862a274
Call Trace:
 [<ffffffff8185845f>] dump_stack+0x4e/0x68
 [<ffffffff81109440>] __lock_acquire+0x14a0/0x1d50
 [<ffffffff8110a5a1>] lock_acquire+0xd1/0x2b0
 [<ffffffff810d5419>] ? __blocking_notifier_call_chain+0x39/0x70^C
 [<ffffffff8185f9a1>] down_read+0x51/0xa0
 [<ffffffff810d5419>] ? __blocking_notifier_call_chain+0x39/0x70^C
 [<ffffffff81107b5d>] ? trace_hardirqs_on_caller+0x15d/0x200
 [<ffffffff810d5419>] __blocking_notifier_call_chain+0x39/0x70
 [<ffffffff810d5466>] blocking_notifier_call_chain+0x16/0x20
 [<ffffffff81496269>] backlight_device_unregister+0x59/0xa0
 [<ffffffffa0031715>] acpi_video_bus_unregister_backlight+0x6c/0x11f [video]
 [<ffffffffa0032747>] acpi_video_backlight_notify+0x49/0x59 [video]
 [<ffffffff810d5182>] notifier_call_chain+0x62/0x100
 [<ffffffff810d5431>] __blocking_notifier_call_chain+0x51/0x70
 [<ffffffff810d5466>] blocking_notifier_call_chain+0x16/0x20
 [<ffffffff81496623>] backlight_device_register+0x193/0x270
 [<ffffffffa0235668>] nouveau_backlight_init+0x138/0x2d0 [nouveau]
 [<ffffffffa0212645>] nouveau_display_create+0x455/0x640 [nouveau]
 [<ffffffffa01fe88d>] nouveau_drm_load+0x38d/0x5c0 [nouveau]
 [<ffffffff81107b5d>] ? trace_hardirqs_on_caller+0x15d/0x200
 [<ffffffffa0078025>] drm_dev_register+0xb5/0x110 [drm]
 [<ffffffffa007b2cd>] drm_get_pci_dev+0x8d/0x200 [drm]
 [<ffffffffa01fe1da>] nouveau_drm_probe+0x26a/0x2b0 [nouveau]
 [<ffffffff814684e5>] local_pci_probe+0x45/0xa0
 [<ffffffff81469885>] ? pci_match_device+0xe5/0x110
 [<ffffffff814699e9>] pci_device_probe+0xf9/0x150
 [<ffffffff8155b9b3>] driver_probe_device+0xa3/0x400
 [<ffffffff8155bdf3>] __driver_attach+0xa3/0xb0
 [<ffffffff8155bd50>] ? __device_attach+0x40/0x40
 [<ffffffff81559583>] bus_for_each_dev+0x73/0xc0^C
 [<ffffffff8155b3fe>] driver_attach+0x1e/0x20
 [<ffffffff8155afb8>] bus_add_driver+0x188/0x260^C
 [<ffffffff8155cc54>] driver_register+0x64/0xf0
 [<ffffffff81467d74>] __pci_register_driver+0x64/0x70
 [<ffffffffa007b53a>] drm_pci_init+0xfa/0x130 [drm]
 [<ffffffff81553f0c>] ? vga_switcheroo_register_handler+0x6c/0x90
 [<ffffffffa02c0000>] ? 0xffffffffa02c0000
 [<ffffffffa02c022b>] nouveau_drm_init+0x22b/0x1000 [nouveau]
 [<ffffffff81002148>] do_one_initcall+0xd8/0x210^C
 [<ffffffff81153b12>] load_module+0x20c2/0x2870
 [<ffffffff8114eb10>] ? store_uevent+0x70/0x70
 [<ffffffff8110ab46>] ? lock_release_non_nested+0x3c6/0x3d0
 [<ffffffff811543a7>] SyS_init_module+0xe7/0x140^C
 [<ffffffff81862669>] system_call_fastpath+0x12/0x17

Comment 1 Hans de Goede 2015-08-14 08:27:01 UTC
Hi all,

I've been analysing this issue yesterday as part of a bug report against some changes I made in 4.2-rc6, but this bug shows that this issue has been around for a lot longer then those changes.

I've posted a fix for this upstream:

http://www.spinics.net/lists/intel-gfx/msg73738.html

Other then the lockdep warning this issue is harmless, so I'm closing this bug with a resolution of upstream.

Regards,

Hans


Note You need to log in before you can comment on or make changes to this bug.