From owner-freebsd-hackers Tue Sep 14 13:40:52 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from mailer.syr.edu (mailer.syr.edu [128.230.18.29]) by hub.freebsd.org (Postfix) with ESMTP id C689815337 for ; Tue, 14 Sep 1999 13:40:38 -0700 (PDT) (envelope-from cmsedore@mailbox.syr.edu) Received: from rodan.syr.edu by mailer.syr.edu (LSMTP for Windows NT v1.1a) with SMTP id <0.E1CCBFD0@mailer.syr.edu>; Tue, 14 Sep 1999 16:40:41 -0400 Received: from localhost (cmsedore@localhost) by rodan.syr.edu (8.8.7/8.8.7) with ESMTP id QAA00135; Tue, 14 Sep 1999 16:40:37 -0400 (EDT) X-Authentication-Warning: rodan.syr.edu: cmsedore owned process doing -bs Date: Tue, 14 Sep 1999 16:40:37 -0400 (EDT) From: Christopher Sedore X-Sender: cmsedore@rodan.syr.edu To: Jayson Nordwick Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: aio_* In-Reply-To: <19990914050240.40381.qmail@scam.xcf.berkeley.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Mon, 13 Sep 1999, Jayson Nordwick wrote: > 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. Any read()/write()'able descriptor should work. > 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 aio_* stuff (I use a custom patched version in 4.x) offers performance advantages over select() with large numbers of descriptors. In terms of efficiency, I don't have any trouble saturating full-duplex 100mbit link with aio routines on a reasonably fast box (PII-400 512MB). As more work gets done to the aio stuff, there are some potential early advantages available to multiprocessor machines (since the program 'driving' the aio could run concurrently with the kernel code moving network or disk data). -Chris To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message