Re: Wound/wait tests ==> lockdep_assert_held() warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Tue, Jan 17, 2017 at 03:56:54PM +0100, Peter Zijlstra wrote:
> > On Tue, Jan 17, 2017 at 03:55:32PM +0100, Peter Zijlstra wrote:
> > > On Sun, Jan 15, 2017 at 06:24:08AM +0100, Mike Galbraith wrote:
> > > >  git blames locking/ww_mutex: Optimize ww-mutexes by waking at most one waiter for backoff when acquiring the lock
> > > 
> > > > [    0.000000] ------------[ cut here ]------------
> > > > [    0.000000] WARNING: CPU: 0 PID: 0 at kernel/locking/mutex.c:305 __ww_mutex_wakeup_for_backoff+0x8d/0xb0
> > > 
> > > > [    0.000000] Hardware name: MEDION MS-7848/MS-7848, BIOS M7848W08.20C 09/23/2013
> > > > [    0.000000] Call Trace:
> > > > [    0.000000]  warn_slowpath_null+0x1d/0x20
> > > > [    0.000000]  __ww_mutex_wakeup_for_backoff+0x8d/0xb0
> > > > [    0.000000]  __ww_mutex_lock.constprop.10+0x3ae/0x13d0
> > > > [    0.000000]  ww_mutex_lock+0x42/0x70
> > > > [    0.000000]  ww_test_edeadlk_normal+0x1e9/0x220
> > > 
> > > OK, I can reproduce. This looks like the lockdep_assert_held() I added
> > > to replace a comment... Just not quite sure how we can get here without
> > > actually holding that lock.
> > > 
> > > /me goes poke at it.
> > 
> > Oh duh, MUTEX_DEBUG uses arch_spin_lock() for wait_lock... *groan*.
> 
> Ingo, how about something like so? Lockdep should be able to tell us
> about the interrupt cruft real quick, I don't see why we should
> hand-craft this anymore.

Sounds good to me!

Thanks,

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Stable Commits]     [Linux Stable Kernel]     [Linux Kernel]     [Linux USB Devel]     [Linux Video &Media]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux