From owner-freebsd-hackers Tue Mar 31 05:08:39 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id FAA09611 for freebsd-hackers-outgoing; Tue, 31 Mar 1998 05:08:39 -0800 (PST) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from enst.enst.fr (enst.enst.fr [137.194.2.16]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id FAA09588 for ; Tue, 31 Mar 1998 05:08:15 -0800 (PST) (envelope-from fenyo@email.enst.fr) Received: from email.enst.fr (email.enst.fr [137.194.168.17]) by enst.enst.fr (8.8.8/8.8.8) with ESMTP id PAA09389; Tue, 31 Mar 1998 15:07:22 +0200 (MET DST) Received: from hydre.enst.fr (hydre.enst.fr [137.194.168.41]) by email.enst.fr (8.8.8/8.8.8) with ESMTP id PAA12979; Tue, 31 Mar 1998 15:06:52 +0200 (MET DST) Received: (from fenyo@localhost) by hydre.enst.fr (8.8.8/8.8.8) id PAA14994; Tue, 31 Mar 1998 15:06:49 +0200 (MET DST) To: "Ron G. Minnich" Cc: freebsd-hackers@FreeBSD.ORG X-WWW: http://home.eowyn.fr.eu.org/~fenyo/documents/axel.html X-PGP-Key: finger alex@eowyn.fr.eu.org X-NIC-Handle: AF713 X-Whois: whois -h whois.internic.net fenyo X-Pager: 06-04-30-75-94 (for emergency only) Organization: Ecole Nationale Superieure des Telecommunications de Paris Subject: Re: Virtual Interface Architecture References: From: fenyo@email.enst.fr (Alex Fenyo (eowyn)) Date: 31 Mar 1998 15:06:41 +0200 In-Reply-To: "Ron G. Minnich"'s message of Mon, 30 Mar 1998 14:22:51 -0500 (EST) Message-ID: Lines: 30 X-Mailer: Red Gnus v0.50/XEmacs 19.14 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG "Ron G. Minnich" writes: > btw, a question for hackers: how hard would it be to get 10 microseconds > latency on the tcp stack as it stands? Yes, i know: "impossible". how > impossible? One answer could be like this : To have a low software overhead, you need to have a zero-copy communication stack (even if you keep TCP/IP). For this purpose, the hardware need to directly access the process memory. Then the data area the user wants to send/receive must be wired. Only verifying that an area is already wired costs about 6 microsec on my P200. Wiring a short area with the standard MACH interface takes more than 100 microsec (this is mainly due to the lists of vm_entries/vm_objects the kernel has to follow). You can wire data at first use and decide not to wire it later, but you need to verify at each send/receive time that data are wired -> 6 microsec... Maybe you can go faster if you bypass the MACH interface, but you will have to write a lot of code to do this. You may also wire every memory area the process uses, at allocation time, but it will cost a lot of memory and affect performances for other processes. Moreover, I think keeping TCP/IP is not the best way to have performances with dedicated boards like Myrinet or others; people usually write a new stack and implement Berkeley sockets on it. For instance, they did it in the NOW project : fast sockets on top of active messages. People want sockets, not TCP/IP, I think... Alexandre Fenyo To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message