Skip site navigation (1)Skip section navigation (2)
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>