From owner-freebsd-hackers Mon Dec 1 18:11:38 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id SAA14766 for hackers-outgoing; Mon, 1 Dec 1997 18:11:38 -0800 (PST) (envelope-from owner-freebsd-hackers) Received: from dyson.iquest.net (dyson.iquest.net [198.70.144.127]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id SAA14759 for ; Mon, 1 Dec 1997 18:11:30 -0800 (PST) (envelope-from toor@dyson.iquest.net) Received: (from root@localhost) by dyson.iquest.net (8.8.7/8.8.8) id VAA08364; Mon, 1 Dec 1997 21:00:27 -0500 (EST) (envelope-from toor) From: "John S. Dyson" Message-Id: <199712020200.VAA08364@dyson.iquest.net> Subject: Re: ftp server on ftp.cdrom.com In-Reply-To: <199712020102.SAA26394@usr07.primenet.com> from Terry Lambert at "Dec 2, 97 01:02:15 am" To: tlambert@primenet.com (Terry Lambert) Date: Mon, 1 Dec 1997 21:00:27 -0500 (EST) Cc: cmott@srv.net, hasty@netcom.com, hackers@freebsd.org X-Mailer: ELM [version 2.4ME+ PL31 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Terry Lambert said: > > Initially, I was thinking that port 20 data transfers (as opposed to port > > 21 control traffic) had to be either separate processes or threads, but > > now I think you are right -- everything could be done by a synchronous > > state machine in a single user process, but this might be inefficient. > > Unless you used aioread/aiowrite/aiowait/aiocancel from John Dyson's > /sys/kern/vfs_aio.c in -current. Then you could overlap I/O. > > The distinction to be made here is that async I/O and call-conversion > threading mechanisms do not scale on SMP (ie: adding more processors > does not make the work get done any more swiftly). The main drawback > to user space threading mechanisms (like pthreads and user context > management with aio and/or "sigsched", etc.) is SMP and/or cluser > scalability. > > This should, however, work as well as "ddd" or "team". > Actually, I have been thinking about carrying the code into a clean abstraction. Right now, I have a "shortcut" for VCHR files (physio type I/O), and it could also be extended to sockets, pipes, etc. At that point, it seems that a switch-type capability would be neat. I know that I could do sockets and pipes pretty quickly. Our AIO physio mechanism is actually about as efficient as it can be (plus/minus some LL optimizations.) -- John dyson@freebsd.org jdyson@nc.com