From: Waiman Long
Sent: 07 December 2020 19:02...
'Unfortunately' my use-case if for an out-of-tree driver.How much more difficult would it be to also add a timeout option?Actually, I had tried that before. See
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
https://lore.kernel.org/lkml/20190911150537.19527-1-longman@xxxxxxxxxx/
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.
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.