Manfred Spraul <manfreds@colorfullife.com> wrote:
>fasync_helper() uses cli() for the synchronization, and I have some
>doubts that this is really SMP safe:
>* it seems that the keyboard drivers use tasklets, and cli() doesn't
>stop tasklets.
>* someone might call kill_fasync() from process context, then cli() is
>not enough.
>
>fasync outside net should be fairly rare, I guess one global rwlock is
>sufficient.
from drivers/char/rtc.c, a case that I rely on a *great* deal:
static int rtc_fasync (int fd, struct file *filp, int on)
{
return fasync_helper (fd, filp, on, &rtc_async_queue);
}
since it lets SCHED_FIFO tasks have better timing performance than the
kernel provides by itself.
--p
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sun Apr 30 2000 - 21:00:10 EST