Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Jan 2006 10:39:58 +0100
From:      des@des.no (=?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?=)
To:        David Xu <davidxu@freebsd.org>
Cc:        arch@freebsd.org
Subject:   Re: vfs_aio.c is still not safe
Message-ID:  <86k6coodch.fsf@xps.des.no>
In-Reply-To: <43D6C3A5.4060100@freebsd.org> (David Xu's message of "Wed, 25 Jan 2006 08:17:41 %2B0800")
References:  <43D6C3A5.4060100@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
David Xu <davidxu@freebsd.org> writes:

> Even with recently change to vfs_aio.c, the kernel AIO code is
> still not safe to be used. The problem is a AIO daemon thread
> may be blocked on sockets, pipe, and fifo if peer does not
> transfer any data, the problem can be accumulated and all
> daemon threads will be blocked if such user process increases.
> [...]
> So possible solution could be:
> 1) disable AIO support for none disk file.
> 2) someone implement callbacks for pipe, fifo, and add
>    non-blocking feature to fo_read/fo_write.

3) Rewrite the aio code to use kthreads attached to each process, so
   problems with one process's aio does not propagate to other
   processes.

> The former is simple, the later needs some effort, however
> with superio kqueue, the AIO support for socket and pipe is
> less important, I prefer 1) to make the AIO code usable.

DES
--=20
Dag-Erling Sm=F8rgrav - des@des.no



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86k6coodch.fsf>