Date: Sun, 17 Aug 1997 01:09:46 -0700 (PDT) From: Vinay Bannai <vinay@agni.nuko.com> To: dg@root.com Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: Device drivers and DMA details?? Message-ID: <199708170809.BAA25936@agni.nuko.com> In-Reply-To: <199708170133.SAA04271@implode.root.com> from "David Greenman" at "Aug 16, 97 06:33:20 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
According to David Greenman: > >Also, while examining the fxp driver, the fxp_start() seems to be > >invoked at the time of each incoming packet (or interrupt from the > >device). Wouldn't this not create a delay in sending packets? Or is it > >that the fxp_start() also gets invoked whenever a packet is shoved on > >the network IF queues? > > The driver start routine is also called when a packet is sent. See the > end of the ether_output() function in /sys/net/if_ethersubr.c. > > -DG > > David Greenman > Core-team/Principal Architect, The FreeBSD Project Ah!! I see that the interface's if_start() routine is called when the network is not busy (IFF_OACTIVE). This means that IFF_OACTIVE is set for the interface while receiving the packet or when the controller is busy. In fact it appears that the fxp driver never has the need to set the IFF_OACTIVE, so the fxp_start() gets called everytime a packet is queued on the interface queue unless it is running at a priority of the hardware interrupt from the network controller. In that case since the hardware interrupt from the network controller being higher than splimp() will make it possible for the IF queues to be flushed before the priority drops back to splimp or whatever. Is that a correct assesment? Thanks Vinay
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708170809.BAA25936>