Subject: Re: map user memory in kernel
To: Gordon Waidhofer <gww@traakan.com>
From: Eric Haszlakiewicz <erh@nimenees.com>
List: tech-kern
Date: 11/06/2005 21:23:43
On Sun, Nov 06, 2005 at 02:58:05PM -0800, Gordon Waidhofer wrote:
> If they are as light at tsleep()/wakeup(), then,
> as somebody already pointed out:
>
> int futex_event;
> futex_sleep () { sleep (&futex_event); }
> futex_wakeup () { wakeup (&futex_event); }
>
> will work. Everything else is an improvement.
> Is this a case of trying to hard? It really depends
> on the guarantees made by futex() and whether the
> kernel need to manipulate any variables visible in
> userland. Is that the case? What is the case?
I don't think that's going to cut it. I read that even
waking up too many processes on a single futex can cause things
to go 20x slower. Creating a thundering herd of all users of
futex on a system would probably make it unusable.
eric