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]
Message-ID: <5342AA3E.50100@oracle.com>
Date:	Mon, 07 Apr 2014 09:38:06 -0400
From:	Sasha Levin <sasha.levin@...cle.com>
To:	Jan Kara <jack@...e.cz>
CC:	Tejun Heo <tj@...nel.org>, LKML <linux-kernel@...r.kernel.org>,
	Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: bdi: lockdep warning in bdi_queue_work

On 04/07/2014 06:21 AM, Jan Kara wrote:
>   Hello,
> 
> On Fri 04-04-14 18:06:37, Sasha Levin wrote:
>> While fuzzing with trinity inside a KVM tools guest running the latest -next
>> kernel I've stumbled on the following:
>>
>> [  323.192041] INFO: trying to register non-static key.
>> [  323.193083] the code is fine but needs lockdep annotation.
>> [  323.193949] turning off the locking correctness validator.
>> [  323.194687] CPU: 15 PID: 21793 Comm: trinity-c94 Not tainted 3.14.0-next-20140403-sasha-00019-g7474aa9-dirty #376
>> [  323.196300]  0000000000000000 ffff8804d9067cf8 ffffffff954bfb2f 0000000000000000
>> [  323.197522]  ffffffff99378b10 ffff8804d9067df8 ffffffff921c3912 ffff88082bddaeb0
>> [  323.198879]  ffff880800000000 ffff880400000001 ffffffff00000000 ffff8804d9067d48
>> [  323.200063] Call Trace:
>> [  323.200487] dump_stack (lib/dump_stack.c:52)
>> [  323.200581] __lock_acquire (kernel/locking/lockdep.c:743 kernel/locking/lockdep.c:3078)
>> [  323.200581] ? __slab_alloc (mm/slub.c:2385 (discriminator 2))
>> [  323.200581] ? __lock_acquire (kernel/locking/lockdep.c:3189)
>> [  323.200581] ? kvm_clock_read (arch/x86/include/asm/preempt.h:90 arch/x86/kernel/kvmclock.c:86)
>> [  323.200581] lock_acquire (arch/x86/include/asm/current.h:14 kernel/locking/lockdep.c:3602)
>> [  323.200581] ? bdi_queue_work (arch/x86/include/asm/bitops.h:313 fs/fs-writeback.c:108)
>> [  323.200581] _raw_spin_lock_bh (include/linux/spinlock_api_smp.h:136 kernel/locking/spinlock.c:175)
>> [  323.200581] ? bdi_queue_work (arch/x86/include/asm/bitops.h:313 fs/fs-writeback.c:108)
>> [  323.200581] bdi_queue_work (arch/x86/include/asm/bitops.h:313 fs/fs-writeback.c:108)
>> [  323.200581] __bdi_start_writeback (fs/fs-writeback.c:141)
>> [  323.200581] wakeup_flusher_threads (fs/fs-writeback.c:1077)
>> [  323.200581] ? wakeup_flusher_threads (include/linux/rcupdate.h:800 fs/fs-writeback.c:1076)
>> [  323.200581] ? syscall_trace_enter (include/linux/context_tracking.h:27 arch/x86/kernel/ptrace.c:1461)
>> [  323.200581] sys_sync (fs/sync.c:107)
>> [  323.200581] tracesys (arch/x86/kernel/entry_64.S:749)
>   Thanks for report. This is really strange. The complaint is apparently
> about bdi->wb_lock. But that is properly initialized with spin_lock_init()
> when bdi is created so I don't see how we could see a non-static key there.
> Can you reproduce this? Can you tell what the non-static key was?
> 
> I presume something bad could happen if someone was freeing the bdi while
> we are looking at it. And given bdi should be RCU freed, that could happen
> if someone forgot to free the bdi structure using RCU. So to identify that
> better, can you dump 'bdi->name' for the bdi which triggers this?

I've added some code to do that, but since I only saw that error once so far
I suspect it'll be a while before I could come back with a result.


Thanks,
Sasha

--
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