Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Jun 2001 18:53:29 -0700 (PDT)
From:      Richard Hodges <rh@matriplex.com>
To:        Josh Osborne <stripes@mac.com>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: question: aio / nbio / kqueue
Message-ID:  <Pine.BSF.4.10.10106221838150.65610-100000@mail.matriplex.com>
In-Reply-To: <200106230044.RAA18157@smtpout.mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 22 Jun 2001, Josh Osborne wrote:

> [...]
> >> AIO is good when you are not receiving much data (or not receiving
> >> it very frequently), and presumably want very low latency.
> >
> > What if you want good performance with "moderate" disk IO, say ten
> > to twenty megabytes per second continuously?
 
> > I tried AIO some months ago (4.1R or 4.2R), but had some trouble
> > with AIO, mainly that it seemed to lose track of half my files.
> > Not any particular files, it seemed that at any moment it would
> > just pick ten or so (out of maybe 20-25 files) to ignore at any
> > given time.
 
> I try to avoid anything that makes me write signal handlers (AIO
> is done with signals, right?), and doing a ton of data block after
> block doesn't sound like AIO's bag anyway.  Maybe you missed the
> AIO signals by failing to properly do some mystical signal ritual.

That could be, but I do *try* to be aware of these things :-)  My
main goal is to keep a decent read backlog on the drives at all times.
Or looking at a differnt way, I want to minimize the time that each
drive is idle.

> > Is there any better solution than just forking off a process for
> > each file and letting the kernel handle the details?
 
> Depends, is kernel hacking strictly off limits?

Not at all.  As a matter of fact, I have been writing (and rewriting)
quite a bit of kernel networking code.  Most is reserved for a product
for sale, but I can share a few bits, like the ForeLE/IDT ATM driver.

> If you do have to fork child processes, using sendfile (unportable)
> may well have pretty low overhead.  It is documented as zero copy.
> I would give that a shot.

Sendfile is TCP, isn't it?  I thought so.  I am sending UDP, and the
timing needs to be *perfect*.  Well, within a couple milliseconds, 
anyway.

Thanks for the info,

-Richard

-------------------------------------------
   Richard Hodges   | Matriplex, inc.
   Product Manager  | 769 Basque Way
  rh@matriplex.com  | Carson City, NV 89706
    775-886-6477    | www.matriplex.com 


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.BSF.4.10.10106221838150.65610-100000>