bge(4) one packet wedge
- From: Gleb Smirnoff <glebius@xxxxxxxxxxx>
- Date: Wed, 23 Aug 2006 20:16:49 +0400
Colleagues,
I've faced a problem in bge(4) when a single packet is in the RX
ring, but it isn't noticed by the driver. A reception of a packet
triggers interrupt and both packets are processed - an old one
and the new one.
To reproduce the problem you need to run netperf (from ports
collection): netserver on another host (10.0.0.1) and netperf on
the host, where tested bge(4) is installed - 10.0.0.2. No traffic
except netperf's should flow through this NIC, or the problem won't
be reproduced!
So, I run netperf client and simultaneously tcpdump on the
another host. After few seconds there is a wedge. The last packet
seen on 10.0.0.1 is the packet sent by 10.0.0.1 to 10.0.0.2. However
it isn't seen on 10.0.0.2.
Ok, let's look at the receive ring:
(kgdb) p $sc->bge_rx_saved_considx
$14 = 51
(kgdb) p $sc->bge_ldata.bge_status_block->bge_idx[0].bge_rx_prod_idx
$15 = 51
Looks like there is nothing to process.
However, if I run 'ping -c 1 10.0.0.2' I will get an interrupt and read
two packets: first the old packet, and then recently sent ping.
--
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE
_______________________________________________
freebsd-net@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@xxxxxxxxxxx"
- Follow-Ups:
- RE: bge(4) one packet wedge
- From: David Christensen
- Re: bge(4) one packet wedge
- From: Julian Elischer
- Re: bge(4) one packet wedge
- From: Oleg Bulyzhin
- RE: bge(4) one packet wedge
- Prev by Date: Re: Multicast
- Next by Date: Re: Zeroconfig and Multicast DNS
- Previous by thread: Re: [panic] page fault in tcp_timer_2msl_tw
- Next by thread: Re: bge(4) one packet wedge
- Index(es):
Relevant Pages
- Re: when send() function returns?
... Based on my experiences with netperf, ... packet on the wire. ...
did the packet get out the host OK, but did it get up the other host ... to the receiving
app OK. ... (comp.os.linux.networking) - [patch 07/10] [TULIP] Use tulip.h in winbond-840.c
... Making the Tx ring too large decreases the effectiveness of channel ... bonding
and packet priority. ... but the interrupt handler would ignore it ... (Linux-Kernel) - [patch 07/10] [TULIP] Use tulip.h in winbond-840.c
... Making the Tx ring too large decreases the effectiveness of channel ... bonding
and packet priority. ... but the interrupt handler would ignore it ... (Linux-Kernel) - Re: How does class based queuing work with interface queueing?
... mate as far as I know the software queuing ie CBWFQ etc only occurs ... when
a packet cannot be placed in the Tx ring. ... > choose such as CBWFQ or
PQ or CQ etc. ... (comp.dcom.sys.cisco) - Re: 2.6.0 NFS-server low to 0 performance
... > server software. ... > small on-board packet buffer, which is
capable of storing only about ... think you can call hw broken just because small RX ring.
... send the line "unsubscribe linux-kernel" in ... (Linux-Kernel)