Date: Tue, 31 Mar 1998 11:20:14 -0600 From: Chris Csanady <ccsanady@friley585.res.iastate.edu> To: fenyo@email.enst.fr (Alex Fenyo (eowyn)) Cc: "Ron G. Minnich" <rminnich@Sarnoff.COM>, freebsd-hackers@FreeBSD.ORG Subject: Re: Virtual Interface Architecture Message-ID: <199803311720.LAA07492@friley585.res.iastate.edu> In-Reply-To: Your message of "31 Mar 1998 15:06:41 %2B0200." <d06ogynypp8.fsf@hydre.enst.fr>
next in thread | previous in thread | raw e-mail | index | archive | help
>"Ron G. Minnich" <rminnich@Sarnoff.COM> 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... This really has nothing to do with TCP though. The socket interface is just too limited with respect to memory management. There is no reason why you could not pre-wire a chunk of memory, and still use TCP. This approach has the potential of being very fast. Perhaps an interesting thing to try would be to layer a VIA interface above TCP, or something similar. [more vm related stuff deleted] >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... As someone else mentioned, Van Jacobson has gotten the fast path case down to ~30 instructions for TCP processing on the receive side. If we could get around all the complex memory management using something like above, it should perform fairly well. Chris Csanady 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?199803311720.LAA07492>