Date: Sun, 08 Mar 1998 13:54:22 -0600 From: Chris Csanady <ccsanady@friley585.res.iastate.edu> To: Marc Slemko <marcs@znep.com> Cc: Julian Elischer <julian@whistle.com>, hackers@FreeBSD.ORG Subject: Re: kernel wishlist for web server performance Message-ID: <199803081954.NAA03166@friley585.res.iastate.edu> In-Reply-To: Your message of "Sun, 08 Mar 1998 08:38:38 MST." <Pine.BSF.3.95.980308083137.2799W-100000@alive.znep.com>
next in thread | previous in thread | raw e-mail | index | archive | help
>On Sat, 7 Mar 1998, Julian Elischer wrote: > >> > >> > Let me put it this way: how else do you propose to do copy avoidance to >> > avoid an extra copy going into the mbufs? The data must go from the >> > buffer cache to the network without any copy other than to the network >> > card itself. Why is your other method of doing this any less of a hack? >> [...] >> I would like to add here that in FreeBSD's unified VM/Buffer cache, >> a mmapped file IS the buffer cache >> so that a send() from an mmapped file IS copying direct fromt he buffer >> cache. Ther eis ONE copy.. that from the buffer cache, into the mbuf. > >But the point is that you still have to copy it into the mbuf, you still >have to use the memory for the mbuf, etc. This uses more CPU and memory >bandwidth, increases memory use, and means you may have to chop things up >smaller to avoid using too much memory for mbufs. And unless you introduce a special hack for each case that comes up, >To avoid that copy, you have two choices. First, you can play around with >copy avoidance for mmap() then send() or write(). This can be done with >COW, or page flipping. See the HP paper for more details on this >approach. Doing it this way is really an ugly hack and there are numerous >difficulties that crop up, making it less than desirable. Where is page flipping needed here? There is no data coming from user space with the mmap+aiosend.. >Or, you can use sendfile() and code it so it doesn't have to copy into >mbufs. This is easier because of where the data is coming from. > >Now, doing this right is dependent on having the right networking hardware >and networking drivers. It is, however, a very worthwhile feature from a >performance standpoint and more and more other OSes are adding it. > >> >> (assuming that the data got into the memory via DMA in the first place..) >> you may need to have a subprocess go through and tuch all the pages to >> get them into ram first.. >> >> > > >To Unsubscribe: send mail to majordomo@FreeBSD.org >with "unsubscribe freebsd-hackers" in the body of the message 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?199803081954.NAA03166>