Messages in this thread |  | | Date | Sun, 19 Dec 2021 10:48:12 +0100 | From | Sebastian Andrzej Siewior <> | Subject | Re: [PATCH 5/5] random: Defer processing of randomness on PREEMPT_RT. |
| |
On 2021-12-18 14:24:09 [+1100], Herbert Xu wrote: > On Fri, Dec 17, 2021 at 10:00:52AM +0100, Sebastian Andrzej Siewior wrote: > > > > I'm sorry, I can't connect the dots here. I was trying to explain that > > for the lock in question it is not possible to spin-wait without > > disabling interrupts first. > > That's precisely the problem the socket lock was designed to > solve. … > Take a look at lock_sock/release_sock and bh_lock_sock/bh_unlock_sock > in net/core/sock.c.
That one. I find the semantic difficult to understand. Some BH-user check sock_owned_by_user(), some don't. However, a semaphore should work. The atomic user would do down_trylock() while preemptible caller would invoke down() and sleep until the lock is available. Let me check if that works here…
> Cheers,
Sebastian
|  |