Date: Fri, 7 May 1999 20:28:53 -0400 (EDT) From: Christopher Sedore <cmsedore@mailbox.syr.edu> To: hackers@freebsd.org Subject: aio patches available Message-ID: <Pine.SOL.3.95.990507201734.11306A-100000@rodan.syr.edu>
next in thread | raw e-mail | index | archive | help
I've bundled up my patches and made them available at http://tfeed.maxwell.syr.edu/aio_diffs.tgz These patches are against -current of just a few minutes ago. They can be applied to 3.x easily, but I don't recommend you undertake any projects with AIO on 3.x as it seems to have other problems with the AIO code related to vfs locking. In any case, these patches add a new system call aio_waitcomplete() which has the process suspend until an operation completes, then passes you back the pointer the the userland aiocb (which you've probably "grown"). The other, more important, addition is a separate queueing mechanism for sockets. This allows you to queue operations for sockets without blocking an aiod process. It should be possible to service quite a number of sockets efficiently. It becomes faster than select() at about 37 sockets, and becomes progressively faster each socket you add. Note that I no longer do reads outside of an aiod because I could not make it work reliably (this made it faster than select in all cases, but when it doesn't work its not so useful :). I've been beating this code pretty hard (pushing 2-3MB/sec through sockets to disk, all async) and believe it to be reasonably stable. I've had no problems with this version. I'd like to see this committed, and would be more than willing to work with someone to have that happen. -Chris To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SOL.3.95.990507201734.11306A-100000>