From owner-freebsd-net@FreeBSD.ORG Mon Oct 15 16:32:12 2012 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 951D4F8D; Mon, 15 Oct 2012 16:32:12 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.64.117]) by mx1.freebsd.org (Postfix) with ESMTP id 02F0C8FC0C; Mon, 15 Oct 2012 16:32:11 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.5/8.14.5) with ESMTP id q9FGWA3Y020752; Mon, 15 Oct 2012 20:32:10 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.5/8.14.5/Submit) id q9FGWAT9020751; Mon, 15 Oct 2012 20:32:10 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Mon, 15 Oct 2012 20:32:10 +0400 From: Gleb Smirnoff To: John Baldwin Subject: Re: ixgbe & if_igb RX ring locking Message-ID: <20121015163210.GW89655@FreeBSD.org> References: <5079A9A1.4070403@FreeBSD.org> <507C1960.6050500@FreeBSD.org> <201210150904.27567.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <201210150904.27567.jhb@freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: freebsd-net@FreeBSD.org, "Alexander V. Chernikov" , Luigi Rizzo , Jack Vogel , net@FreeBSD.org X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Oct 2012 16:32:12 -0000 On Mon, Oct 15, 2012 at 09:04:27AM -0400, John Baldwin wrote: J> > 3) in practice taskqueue routine is a nightmare for many people since J> > there is no way to stop "kernel {ix0 que}" thread eating 100% cpu after J> > some traffic burst happens: once it is called it starts to schedule J> > itself more and more replacing original ISR routine. Additionally, J> > increasing rx_process_limit does not help since taskqueue is called with J> > the same limit. Finally, currently netisr taskq threads are not bound to J> > any CPU which makes the process even more uncontrollable. J> J> I think part of the problem here is that the taskqueue in ixgbe(4) is J> bogusly rescheduled for TX handling. Instead, ixgbe_msix_que() should J> just start transmitting packets directly. J> J> I fixed this in igb(4) here: J> J> http://svnweb.freebsd.org/base?view=revision&revision=233708 The problem Alexander describes in 3) definitely wasn't fixed in r233708. It is still present in head/, and it prevents me to do good benchmarking of pf(4) on igb(4). The problem is related to RX handling, so I don't see how r233708 could fix it. -- Totus tuus, Glebius.