Path: utzoo!mnetor!uunet!husc6!think!ames!pacbell!tandem!narayan From: narayan@tandem.UUCP (Narayan Mohanram) Newsgroups: comp.unix.wizards Subject: Re: SVR3.0 vs BSD4.3 Message-ID: <349@tandem.UUCP> Date: 24 Mar 88 00:18:41 GMT References: <12414@brl-adm.ARPA> <4361@megaron.arizona.edu> <7499@brl-smoke.ARPA> <20768@bu-cs.BU.EDU> <7511@brl-smoke.ARPA> <4441@megaron.arizona.edu> Reply-To: narayan@tandem.UUCP (Narayan Mohanram) Organization: Tandem Computers, Cupertino, CA - TND Lines: 22 In article <4441@megaron.arizona.edu> lm@megaron.arizona.edu.UUCP (Larry McVoy) writes: >you start counting how many times you say "bcopy(src, dest, len)". This >might be a moot point when we have infinitely fast CPU's and memories :-) > >(It should be obvious but I'll drive it home: the streams code that I've >seen copies the data out of the upper level buffer and then into the >lower level buffer [assuming "downward" movement]. The copying dominates >the time spent in the streams drivers. If streams can handle imbedded >pointers in their data then my comments are meaningless.) >-- >Larry McVoy lm@arizona.edu or ...!{uwvax,sun}!arizona.edu!lm This is entirely wrong. Each layer just passes mblks down. There is no copying of data once it is copied in from user code to kernel space into and mblk. Each layer then just tacks on its header to the front of the chain of mblk's. This is finally dma'd out to the net. If the driver is capable of scattered IO then dma is normally done from the chain of mblk's. Narayan Mohanram (narayan@ati.tis.llnl.GOV)