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>