Date: Fri, 24 Dec 1999 12:38:32 -0800 (PST) From: "Rodney W. Grimes" <freebsd@gndrsh.dnsmgr.net> To: dillon@apollo.backplane.com (Matthew Dillon) 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 Subject: Re: Woa! May have found something - 'rl' driver and small packets (was Re: Odd TCP glitches in new currents) Message-ID: <199912242038.MAA58725@gndrsh.dnsmgr.net> In-Reply-To: <199912240716.XAA10120@apollo.backplane.com> from Matthew Dillon at "Dec 23, 1999 11:16:46 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
... > 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199912242038.MAA58725>