Re: [RFC,PATCH] use rcu for fasync_lock

Jamie Lokier
2003-12-21T15:08:29Z

Manfred Spraul wrote:
> The wakeup happens at irq time. The band info is necessary for
> send_sigio(). Calling f_poll at irq time is not an option - it will
> definitively cause breakage.

Agree * 3.

> schedule_work() for every call is IMHO not an option.

Agree, the latency would suck and it wouldn't even work for RT processes.

> And even that is not reliable: fasync users might expect seperate
> POLL_OUT and POLL_IN signals.

They might, although they probably shouldn't (band is a bitmask for a
reason).

Anyway, you can handle all these problems by computing the band at
signal delivery time. Yes it sounds like it would complicate the
signal delivery code, but sigio should really be handled specially
anyway, so that a signal queue entry for every fd is guaranteed and
queue overflow is not possible. Somebody already has a patch for
that, it might be worth working from.

-- Jamie