[EMAIL PROTECTED] (Jayson Nordwick) writes:

> While reading through (at least trying to... I wish there was some sort of
> kernel documentation available, the entry fee is very high) the aio_* calls,
> I had a few questions to clear up my understanding: 

> 1) Do they only work on files?  The only implementation I see is in 
> the VFS layer.

AIO is not in the VFS layer.  The source file containing the
implementation is improperly named.

It works on any file descriptor that you could do the equivalent
read(2)/write(2) calls on.

> 2) It is my understanding that it uses an aio daemon running as a kernel
> thread (the aio_daemon() call kind of give that one away).  It seems as
> if this can be almost entirely done in user space.  More important to what
> I am trying to do, it seems as if aio_* does not give peak latency     
> or throughput performace, since the aio_daemon has to compete for resources
> along with all other processes.

> Should aio_* be used for applications that have high performance
> requirements?  What does aio_* get you above having a seperate 
> thread pumping in/out data?

The implementation in FreeBSD probably isn't a particularly efficient
one.

It should be faster than threads, though.  You'll need fewer switches
between user and kernel mode and synchronization is simpler.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to