[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <edfd0eb8-192e-60be-f0ca-2a72a26caa07@redhat.com>
Date: Tue, 8 Dec 2020 10:34:27 -0500
From: Waiman Long <longman@...hat.com>
To: David Laight <David.Laight@...LAB.COM>,
Peter Zijlstra <peterz@...radead.org>
Cc: "Eric W. Biederman" <ebiederm@...ssion.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Ingo Molnar <mingo@...hat.com>, Will Deacon <will@...nel.org>,
Jann Horn <jannh@...gle.com>,
Vasiliy Kulikov <segoon@...nwall.com>,
Al Viro <viro@...iv.linux.org.uk>,
Bernd Edlinger <bernd.edlinger@...mail.de>,
Oleg Nesterov <oleg@...hat.com>,
Christopher Yeoh <cyeoh@....ibm.com>,
Cyrill Gorcunov <gorcunov@...il.com>,
Sargun Dhillon <sargun@...gun.me>,
Christian Brauner <christian.brauner@...ntu.com>,
Arnd Bergmann <arnd@...db.de>,
Arnaldo Carvalho de Melo <acme@...nel.org>
Subject: Re: [PATCH 2/3] rwsem: Implement down_read_interruptible
On 12/8/20 4:12 AM, David Laight wrote:
> From: Waiman Long
>> Sent: 07 December 2020 19:02
> ...
>>> How much more difficult would it be to also add a timeout option?
>>> I looked at adding one to the mutex code - and fell into a big pile
>>> of replicated code.
>>>
>>> ISTM that one the initial locked exchange (and spin) fails a few
>>> extra instructions when heading for the sleep don't really matter
>>>
>> Actually, I had tried that before. See
>>
>> https://lore.kernel.org/lkml/20190911150537.19527-1-longman@redhat.com/
>>
>> That is for rwsem, but the same can be done for mutex. However, Peter
>> didn't seem to like the idea of a timeout parameter. Anyway, it is
>> certainly doable if there is a good use case for it.
> 'Unfortunately' my use-case if for an out-of-tree driver.
>
> The problem I was solving is a status call blocking because
> some other code is 'stuck' (probably an oops) with a mutex held.
>
> The code used to use down_timeout() (it was written for 2.4).
> When I changed to mutex_(to get optimistic spinning) I lost
> the ability to do the timeouts.
The primary reason for sending out that patchset was to work around some
circular locking problem in existing code even though these circular
locking scenarios are not likely to happen. Your case is certainly
another potential circular locking problem as well.
Cheers,
Longman
Powered by blists - more mailing lists