From owner-freebsd-net@FreeBSD.ORG Tue Oct 26 01:56:22 2004 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C405416A4CE for ; Tue, 26 Oct 2004 01:56:22 +0000 (GMT) Received: from note.orchestra.cse.unsw.EDU.AU (note.orchestra.cse.unsw.EDU.AU [129.94.242.24]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3C28843D46 for ; Tue, 26 Oct 2004 01:56:22 +0000 (GMT) (envelope-from lukem@cse.unsw.edu.au) Received: From wagner With LocalMail ; Tue, 26 Oct 2004 11:56:20 +1000 From: lukem.freebsd@cse.unsw.edu.au Sender: lukem@cse.unsw.edu.au To: freebsd-net@freebsd.org Date: Tue, 26 Oct 2004 11:56:20 +1000 (EST) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Subject: poor performance of nge interface X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Oct 2004 01:56:22 -0000 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