From owner-freebsd-current Fri Dec 24 12:39:52 1999 Delivered-To: freebsd-current@freebsd.org Received: from gndrsh.dnsmgr.net (GndRsh.dnsmgr.net [198.145.92.4]) by hub.freebsd.org (Postfix) with ESMTP id 2F5AF14CA3 for ; Fri, 24 Dec 1999 12:39:50 -0800 (PST) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.9.3/8.9.3) id MAA58725; Fri, 24 Dec 1999 12:38:33 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <199912242038.MAA58725@gndrsh.dnsmgr.net> Subject: Re: Woa! May have found something - 'rl' driver and small packets (was Re: Odd TCP glitches in new currents) In-Reply-To: <199912240716.XAA10120@apollo.backplane.com> from Matthew Dillon at "Dec 23, 1999 11:16:46 pm" To: dillon@apollo.backplane.com (Matthew Dillon) Date: Fri, 24 Dec 1999 12:38:32 -0800 (PST) Cc: wpaul@skynet.ctr.columbia.edu (Bill Paul), julian@whistle.com, scottm@cs.ucla.edu, jlemon@americantv.com, brad@shub-internet.org, jabley@patho.gen.nz, phk@critter.freebsd.dk, wollman@khavrinen.lcs.mit.edu, current@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL54 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG ... > I'm pretty sure that the box was getiting receive interrupts because > every time I sent a packet to it from the outside systat -vm showed > a PCI interrupt for the network device. However 'netstat -in 1' did > not show the statistics for the received packets until 64 had > accumulated. It could be that the statistics are not being accumulated > on a per-reception basis and that the receive packets are actually > getting through, and that its the transmit side which is broken. I don't > know the code well enough yet to make the determination. If things are done in these drives as they are in the if_de driver then what you are seeing is the fact that if_opackets and are only updated when the tx ring is reclaimed by an interrupt, not when we actually queue the packet to the card. This has been a source of confusion for a long time, and IMNSO we should move the if_ipackets+= in the code. Here is an idle box, with an dc21143 in it showing probably what you are seing (the only network traffic to this box is the output of this running netstat -I de0 1 command: input (de0) output packets errs bytes packets errs bytes colls 1 0 60 0 0 138 0 2 0 182 0 0 250 0 2 0 158 0 0 138 0 ... 100 + lines of output deleted... 3 0 256 0 0 138 0 1 0 60 122 0 138 0 3 0 256 0 0 138 0 1 0 60 0 0 138 0 Search for lines like this: sc->tulip_if.if_opackets += xmits; in the driver to see when we update the counter, then look at how interrupt per packet drivers do it and propose a nice clean solution :-) -- Rod Grimes - KD7CAX @ CN85sl - (RWG25) rgrimes@gndrsh.dnsmgr.net To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message