Re: user-space concurrent pipe buffer scheduler interactions

From: Michael Clark
Date: Wed Apr 03 2024 - 23:00:38 EST


On 4/4/24 09:57, Linus Torvalds wrote:
On Wed, 3 Apr 2024 at 13:52, Michael Clark <michael@xxxxxxxxxxxxxxxx> wrote:

On 4/4/24 05:56, Linus Torvalds wrote:
On Tue, 2 Apr 2024 at 13:54, Michael Clark <michael@xxxxxxxxxxxxxxxx> wrote:

I am working on a low latency cross-platform concurrent pipe buffer
using C11 threads and atomics.

You will never get good performance doing spinlocks in user space
unless you actually tell the scheduler about the spinlocks, and have
some way to actually sleep on contention.

Which I don't see you as having.

We can work on this.

It's been tried.

Nobody ever found a use-case that is sufficiently convincing, but see
the write-up at

https://lwn.net/Articles/944895/

It's certainly interesting!

I wouldn't throw in the towel so soon until folks tried a bit harder. Even if we can't make it faster it would be neat to have an Austin Group meeting to give us user-space devels a waitlist_t so we don't hit that brain damaged deadlocky cond_wait foot-gun and realize its totally broken and that we must use cond_timedwait with some stupid delay until we can recheck the condition again in user-space in our "portable code".

Michael.