Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Oct 2004 11:56:20 +1000 (EST)
From:      lukem.freebsd@cse.unsw.edu.au
To:        freebsd-net@freebsd.org
Subject:   poor performance of nge interface
Message-ID:  <Pine.LNX.4.61.0410261151320.8051@wagner.orchestra.cse.unsw.EDU.AU>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.61.0410261151320.8051>