poor performance of nge interface
lukem.freebsd at cse.unsw.edu.au
lukem.freebsd at cse.unsw.edu.au
Mon Oct 25 18:56:22 PDT 2004
I notice that there are some poorly defined default values:
dev/nge/if_nge.c:
CSR_WRITE_4(sc, NGE_IHR, 0x01);
dev/nge/if_nge_reg.h:
#define NGE_RX_LIST_CNT 128
#define NGE_TX_LIST_CNT 128
net/if.h:
#define IFQ_MAXLEN 50
netinet/ip_input.c:
static int ipqmaxlen = IFQ_MAXLEN;
ipintrq.ifq_maxlen = ipqmaxlen;
This results in default behaviour under load that when the device
interrupts with a full rx queue, packets are dequeued from the receive
ring and are promptly dropped on the floor when they hit the IP queue.
With the default interrupt holdoff time of 100us, we could expect a
maximum of 128/0.0001 = 128kpps, which is probably a bit low for small
packet sizes.
--
Luke
More information about the freebsd-net
mailing list