From owner-freebsd-bugs@FreeBSD.ORG Fri Aug 11 13:40:39 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7D5F516A4E0 for ; Fri, 11 Aug 2006 13:40:39 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5AE2943D69 for ; Fri, 11 Aug 2006 13:40:26 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k7BDeQtc085647 for ; Fri, 11 Aug 2006 13:40:26 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k7BDeQ8e085646; Fri, 11 Aug 2006 13:40:26 GMT (envelope-from gnats) Date: Fri, 11 Aug 2006 13:40:26 GMT Message-Id: <200608111340.k7BDeQ8e085646@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Gleb Smirnoff Cc: Subject: Re: kern/100519: Suboptimal network polling X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Gleb Smirnoff List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Aug 2006 13:40:39 -0000 The following reply was made to PR kern/100519; it has been noted by GNATS. From: Gleb Smirnoff To: Arthur Hartwig Cc: freebsd-gnats-submit@FreeBSD.org Subject: Re: kern/100519: Suboptimal network polling Date: Fri, 11 Aug 2006 17:35:10 +0400 Arthur, On Wed, Jul 19, 2006 at 07:49:59AM +0000, Arthur Hartwig wrote: A> >Fix: A> Since the netisr is running when netisr_pollmore() is executing and swi_net() the main netisr despatcher loops until netisr is zero, it is sufficient in netisr_pollmore() to just set the bits in netisr and not also call legacy_setsoftnet(): A> A> replace the two instances of: A> schednetisrbits(1 << NETISR_POLL | 1 << NETISR_POLLMORE); A> A> in netisr_pollmore() by: A> atomic_set_rel_int(&netisr, (1 << NETISR_POLL | 1 << NETISR_POLLMORE)); Hmm, interesting. Have you done any profiling? -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE