From owner-freebsd-hackers Tue May 27 13:27:50 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id NAA02388 for hackers-outgoing; Tue, 27 May 1997 13:27:50 -0700 (PDT) Received: from mailer.syr.edu (mailer.syr.edu [128.230.20.20]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id NAA02383 for ; Tue, 27 May 1997 13:27:47 -0700 (PDT) Received: from rodan.syr.edu by mailer.syr.edu (LSMTP for Windows NT v1.1a) with SMTP id <0.EC86A680@mailer.syr.edu>; Tue, 27 May 1997 16:27:52 -0400 Received: from localhost (cmsedore@localhost) by rodan.syr.edu (8.8.5/8.8.5) with SMTP id QAA14149; Tue, 27 May 1997 16:27:44 -0400 (EDT) X-Authentication-Warning: rodan.syr.edu: cmsedore owned process doing -bs Date: Tue, 27 May 1997 16:27:44 -0400 (EDT) From: Christopher Sedore X-Sender: cmsedore@rodan.syr.edu Reply-To: Christopher Sedore To: Ben Black cc: Ruslan Shevchenko , FreeBSD-Hackers@FreeBSD.ORG Subject: Re: async socket stuff In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk On Tue, 27 May 1997, Ben Black wrote: > > > > It sure could, but you end up with many more system calls, and it is not > > async. The real advantage to a call like TransmitFile() is that you can > > send an entire file (or a range of a file) with a single system call, and > > you can do it async. This means that you can more efficiently implement > > things like FTP servers, Web servers, pop servers, etc. > > > > i think we have a terminology problem here. i would honestly be amazed > if NT implemented TransmitFile() in the kernel (making it a syscall). i > think it more likely that it is a library routine that is built on top of > async IO. Well, you might better arrange to be amazed :) It is an NT system call. It's exact purpose is to avoid a read(file,buf)/write(sock,buf) loop with the associated user/system switch for each call. Async doesn't buy you anything here except the ability to do it in the background. > btw, NT is probably the WORST place to look for inspiration. just look > at their TCP sequence generation algorithm. I figure that I'll borrow good ideas from where ever they come...Nobody does everything "right" by universal or any given individual's standards. I'd just like to see FreeBSD add some enhancements to make it easier/more efficient for high load network applications (since I'm now breaking NT's IP stack under load). Threads (true threads, mind you) would be nice, but kernel based async IO and a few other goodies would make a big difference. -Chris