Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Mar 1999 11:56:06 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Alfred Perlstein <bright@rush.net>
Cc:        Terry Lambert <tlambert@primenet.com>, Dag-Erling Smorgrav <des@flood.ping.uio.no>, andreas@klemm.gtn.com, rsnow@lgc.com, hasty@rah.star-gate.com, ckempf@enigami.com, wpaul@skynet.ctr.columbia.edu, freebsd-hackers@FreeBSD.ORG
Subject:   Re: Gigabit ethernet -- what am I doing wrong?
Message-ID:  <199903211956.LAA14406@apollo.backplane.com>
References:   <Pine.BSF.3.96.990321144541.4169H-100000@cygnus.rush.net>

next in thread | previous in thread | raw e-mail | index | archive | help

:
:That is zero copy, packet is DMA'd from card, then sent via DMA
:to another card, hence 0 copy.  The CPU doesnt' have much work to
:do besides the DMA setups and a quick packet check, look at the
:fastforward code and you can see.  
:
:-Alfred

    'zero copy' is actually misnomer.  What you are describing is really
    1-copy because you are using the resources of the PCI bus.  A card
    transfering data internally from one port to another and not utilizing
    the PCI bus could be considered 'zero copy' from the point of view of
    the PCI bus.  sendfile() is actually a 2-copy scheme:  Disk drive DMA's
    to main memory, network card DMA's from main memory.  This is still better
    then read()/write(), of course, which is a 6-copy scheme:

	disk drive DMA's to main memory
	read(): system reads main memory and writes user buffer
	write(): system reads user buffer and writes main memory
	network card DMA's from main memory

    I suppose since a PCI->PCI DMA does not involve main memory you might be
    able to think of it as 0-copy, but since the critical pipe in this issue
    is the PCI bus it is more proper to consider it a 1-copy scheme.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>




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?199903211956.LAA14406>