vfs_aio.c is still not safe

Dag-Erling Smørgrav des at des.no
Wed Jan 25 01:40:04 PST 2006


David Xu <davidxu at 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
-- 
Dag-Erling Smørgrav - des at des.no


More information about the freebsd-arch mailing list