From owner-freebsd-net@FreeBSD.ORG Tue Oct 6 17:06:38 2009 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A8207106568D for ; Tue, 6 Oct 2009 17:06:38 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 7D1868FC13 for ; Tue, 6 Oct 2009 17:06:38 +0000 (UTC) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id F300146B0C; Tue, 6 Oct 2009 13:06:37 -0400 (EDT) Date: Tue, 6 Oct 2009 18:06:37 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Eugene Grosbein In-Reply-To: <20091006161240.GA49940@svzserv.kemerovo.su> Message-ID: References: <4AC9E29B.6080908@mail.ru> <20091005123230.GA64167@onelab2.iet.unipi.it> <4AC9EFDF.4080302@mail.ru> <4ACA2CC6.70201@elischer.org> <4ACAFF2A.1000206@mail.ru> <4ACB0C22.4000008@mail.ru> <20091006100726.GA26426@svzserv.kemerovo.su> <4ACB42D2.2070909@mail.ru> <20091006142152.GA42350@svzserv.kemerovo.su> <4ACB6223.1000709@mail.ru> <20091006161240.GA49940@svzserv.kemerovo.su> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: rihad , Luigi Rizzo , Julian Elischer , freebsd-net@freebsd.org Subject: Re: dummynet dropping too many packets X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 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, 06 Oct 2009 17:06:38 -0000 On Wed, 7 Oct 2009, Eugene Grosbein wrote: > On Tue, Oct 06, 2009 at 08:28:35PM +0500, rihad wrote: > >> I don't think net.inet.ip.intr_queue_maxlen is relevant to this problem, as >> net.inet.ip.intr_queue_drops is normally zero or very close to it at all >> times. > > When net.isr.direct is 1, this queue is used very seldom. Would you change > it to 0, it will be used extensively. Just to clarify this more specifically: With net.isr.direct set to 0, the netisr will always be used when processing inbound IP packets. With net.isr.direct set to 1, the netisr will only be used for special cases, such as loopback traffic, IPSEC decapsulation, and other processing types where there's a risk of recursive processing. In the default 8.0 configuration, we use one netisr thread; however, you can specify to use multiple threads at boot time. This is not the default currently because we're still researching load distribution schemes, and on current high-performance systems the hardware tends to take care of that already pretty well (i.e., most modern 10gbps cards). Also, ipfw/dummynet have fairly non-granular locking, so adding parallelism won't necessarily help currently. Robert