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]
Date:	Mon, 28 Jan 2013 09:59:15 +0100
From:	Daniel Vetter <daniel.vetter@...ll.ch>
To:	Miles Lane <miles.lane@...il.com>
Cc:	LKML <linux-kernel@...r.kernel.org>
Subject: Re: Linus GIT 3.8.0-rc5: INFO: possible circular locking dependency
 detected -- ((fb_notifier_list).rwsem){.+.+.+}, at: [<ffffffff81052611>] __blocking_notifier_call_chain+0x49/0x80

Hi Miles,

Dave Airlie has some patches in the works which should fix this all, see

http://cgit.freedesktop.org/~airlied/linux/log/?h=fbcon-locking-fixes

Patches hopefully land in 3.9, they're too risky (meaning, they've
caused deadlocks) for 3.8.

Cheers, Daniel

On Mon, Jan 28, 2013 at 7:38 AM, Miles Lane <miles.lane@...il.com> wrote:
> Hi Daniel,
> At the bottom of this message you will find dmesg output showing this
> problem from the current Linus GIT tree.
> Here is the test of the message you wrote about this
> (http://marc.info/?l=dri-devel&m=135905755124554&w=2):
> --------------------------
> Patches for the know issues around console_lock vs fbdev_notifier are in -mm:
>
> http://ozlabs.org/~akpm/mmots/broken-out/fb-rework-locking-to-fix-lock-ordering-on-takeover.patch
> http://ozlabs.org/~akpm/mmots/broken-out/fb-yet-another-band-aid-for-fixing-lockdep-mess.patch
>
> Unfortunately the patches seem to be stuck there for now despite quite
> a few reports about this (including seemingly relevant background
> noise about hangs in distro bugzillas).
> -Daniel
> ----------------------------------
>
> [  489.832113] [ INFO: possible circular locking dependency detected ]
> [  489.832115] 3.8.0-rc5 #99 Not tainted
> [  489.832116] -------------------------------------------------------
> [  489.832117] 99video/4306 is trying to acquire lock:
> [  489.832129]  ((fb_notifier_list).rwsem){.+.+.+}, at:
> [<ffffffff81052611>] __blocking_notifier_call_chain+0x49/0x80
> [  489.832130]
> [  489.832130] but task is already holding lock:
> [  489.832136]  (console_lock){+.+.+.}, at: [<ffffffff8125d25e>]
> store_fbstate+0x43/0x71
> [  489.832137]
> [  489.832137] which lock already depends on the new lock.
> [  489.832137]
> [  489.832138]
> [  489.832138] the existing dependency chain (in reverse order) is:
> [  489.832141]
> [  489.832141] -> #1 (console_lock){+.+.+.}:
> [  489.832146]        [<ffffffff81079aa8>] lock_acquire+0xfe/0x14d
> [  489.832150]        [<ffffffff8102f680>] console_lock+0x64/0x66
> [  489.832154]        [<ffffffff812b06ef>] register_con_driver+0x33/0x123
> [  489.832158]        [<ffffffff812b0f13>] take_over_console+0x21/0x266
> [  489.832161]        [<ffffffff812617e0>] fbcon_takeover+0x56/0x98
> [  489.832165]        [<ffffffff812652f4>] fbcon_event_notify+0x3b6/0x6e4
> [  489.832169]        [<ffffffff8147584a>] notifier_call_chain+0x8c/0xc0
> [  489.832173]        [<ffffffff81052627>]
> __blocking_notifier_call_chain+0x5f/0x80
> [  489.832176]        [<ffffffff81052657>] blocking_notifier_call_chain+0xf/0x11
> [  489.832181]        [<ffffffff812582f2>] fb_notifier_call_chain+0x16/0x18
> [  489.832184]        [<ffffffff812595de>] register_framebuffer+0x216/0x27a
> [  489.832189]        [<ffffffff81ac6e48>] vesafb_probe+0x6df/0x75f
> [  489.832193]        [<ffffffff81333d70>] platform_drv_probe+0x34/0x5e
> [  489.832196]        [<ffffffff8133254b>] driver_probe_device+0x90/0x19b
> [  489.832199]        [<ffffffff813326a4>] __driver_attach+0x4e/0x6f
> [  489.832202]        [<ffffffff81330d02>] bus_for_each_dev+0x52/0x85
> [  489.832205]        [<ffffffff8133208a>] driver_attach+0x19/0x1b
> [  489.832208]        [<ffffffff81331d49>] bus_add_driver+0xf7/0x21a
> [  489.832211]        [<ffffffff81332bf3>] driver_register+0x8c/0x110
> [  489.832214]        [<ffffffff81333805>] platform_driver_register+0x41/0x43
> [  489.832217]        [<ffffffff8133381f>] platform_driver_probe+0x18/0x8a
> [  489.832220]        [<ffffffff81ac6726>] vesafb_init+0x215/0x258
> [  489.832224]        [<ffffffff81000232>] do_one_initcall+0x7a/0x130
> [  489.832228]        [<ffffffff81aa4bfb>] kernel_init_freeable+0x109/0x191
> [  489.832233]        [<ffffffff8145d421>] kernel_init+0x9/0xd1
> [  489.832236]        [<ffffffff814786ec>] ret_from_fork+0x7c/0xb0
> [  489.832240]
> [  489.832240] -> #0 ((fb_notifier_list).rwsem){.+.+.+}:
> [  489.832242]        [<ffffffff8107925d>] __lock_acquire+0xacc/0xe0c
> [  489.832245]        [<ffffffff81079aa8>] lock_acquire+0xfe/0x14d
> [  489.832249]        [<ffffffff81470d7a>] down_read+0x3f/0x4b
> [  489.832253]        [<ffffffff81052611>]
> __blocking_notifier_call_chain+0x49/0x80
> [  489.832257]        [<ffffffff81052657>] blocking_notifier_call_chain+0xf/0x11
> [  489.832260]        [<ffffffff812582f2>] fb_notifier_call_chain+0x16/0x18
> [  489.832263]        [<ffffffff812586d9>] fb_set_suspend+0x22/0x4b
> [  489.832266]        [<ffffffff8125d269>] store_fbstate+0x4e/0x71
> [  489.832270]        [<ffffffff8132e98f>] dev_attr_store+0x13/0x1f
> [  489.832274]        [<ffffffff81163064>] sysfs_write_file+0xe9/0x121
> [  489.832278]        [<ffffffff81106546>] vfs_write+0x91/0xd0
> [  489.832281]        [<ffffffff81106738>] sys_write+0x5a/0x8b
> [  489.832284]        [<ffffffff81478792>] system_call_fastpath+0x16/0x1b
> [  489.832285]
> [  489.832285] other info that might help us debug this:
> [  489.832285]
> [  489.832286]  Possible unsafe locking scenario:
> [  489.832286]
> [  489.832287]        CPU0                    CPU1
> [  489.832288]        ----                    ----
> [  489.832290]   lock(console_lock);
> [  489.832292]                                lock((fb_notifier_list).rwsem);
> [  489.832294]                                lock(console_lock);
> [  489.832296]   lock((fb_notifier_list).rwsem);
> [  489.832297]
> [  489.832297]  *** DEADLOCK ***
> [  489.832297]
> [  489.832298] 4 locks held by 99video/4306:
> [  489.832304]  #0:  (&buffer->mutex){+.+.+.}, at:
> [<ffffffff81162fb2>] sysfs_write_file+0x37/0x121
> [  489.832310]  #1:  (s_active#204){.+.+.+}, at: [<ffffffff8116304c>]
> sysfs_write_file+0xd1/0x121
> [  489.832315]  #2:  (&fb_info->lock){+.+.+.}, at:
> [<ffffffff81258698>] lock_fb_info+0x18/0x37
> [  489.832321]  #3:  (console_lock){+.+.+.}, at: [<ffffffff8125d25e>]
> store_fbstate+0x43/0x71
> [  489.832321]
> [  489.832321] stack backtrace:
> [  489.832324] Pid: 4306, comm: 99video Not tainted 3.8.0-rc5 #99
> [  489.832325] Call Trace:
> [  489.832330]  [<ffffffff8146aca7>] print_circular_bug+0x1f6/0x204
> [  489.832333]  [<ffffffff8107925d>] __lock_acquire+0xacc/0xe0c
> [  489.832337]  [<ffffffff81079aa8>] lock_acquire+0xfe/0x14d
> [  489.832341]  [<ffffffff81052611>] ? __blocking_notifier_call_chain+0x49/0x80
> [  489.832345]  [<ffffffff81470d7a>] down_read+0x3f/0x4b
> [  489.832348]  [<ffffffff81052611>] ? __blocking_notifier_call_chain+0x49/0x80
> [  489.832352]  [<ffffffff81052611>] __blocking_notifier_call_chain+0x49/0x80
> [  489.832356]  [<ffffffff81052657>] blocking_notifier_call_chain+0xf/0x11
> [  489.832359]  [<ffffffff812582f2>] fb_notifier_call_chain+0x16/0x18
> [  489.832362]  [<ffffffff812586d9>] fb_set_suspend+0x22/0x4b
> [  489.832365]  [<ffffffff8102f680>] ? console_lock+0x64/0x66
> [  489.832368]  [<ffffffff8125d269>] store_fbstate+0x4e/0x71
> [  489.832372]  [<ffffffff8132e98f>] dev_attr_store+0x13/0x1f
> [  489.832375]  [<ffffffff81163064>] sysfs_write_file+0xe9/0x121
> [  489.832378]  [<ffffffff81106546>] vfs_write+0x91/0xd0
> [  489.832381]  [<ffffffff81106738>] sys_write+0x5a/0x8b
> [  489.832385]  [<ffffffff81478792>] system_call_fastpath+0x16/0x1b
> [  490.115770] PM: Syncing filesystems ... done.



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ