Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning

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

 



On 2016-09-19 10:14, Peter Zijlstra wrote:
> On Mon, Sep 19, 2016 at 10:01:49AM +0200, Peter Rosin wrote:
>> Or, do what the i2c-mux code is doing and use an rt_mutex instead
>> of an ordinary mutex. That way you are very sure to not get any
>> lockdep splat ... at all. Ok, sorry, that was not a serious
>> suggestion, but it would be a tad bit simpler to implement...
> 
> So I find it weird that people use rt_mutex as a locking primitive,
> since its only that one lock that then does PI and all the other locks
> that are related still create inversions.

So, someone took the bait :-)

Yes, I too find it weird, and would like to get rid of it. It's just
odd. It's been some years since the start though, waaay before me
entering kernel space.

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=194684e596af4b


But it's hard to argue with the numbers given in the discussion:

http://linux-i2c.vger.kernel.narkive.com/nokldJcc/patch-1-1-i2c-prevent-priority-inversion-on-top-of-bus-lock

Has anything happened to the regular mutex implementation that might
have changed the picture? *crosses fingers*


> In any case, since people have started doing this, adding lockdep
> support for rt_mutex is on the todo _somewhere_, so don't expect that to
> avoid splats forever.

I was actually looking quite hard to find out how I should declare the
lockdep class for the rt_mutex in order to prevent future splats, before
I realized that it wasn't even possible...

Cheers,
Peter

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



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux