From owner-freebsd-net@FreeBSD.ORG Tue Oct 28 10:35:57 2008 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 C90501065671 for ; Tue, 28 Oct 2008 10:35:57 +0000 (UTC) (envelope-from gizmen@blurp.pl) Received: from albion.azs.pwr.wroc.pl (albion.azs.pwr.wroc.pl [156.17.17.145]) by mx1.freebsd.org (Postfix) with ESMTP id 8BE4A8FC1F for ; Tue, 28 Oct 2008 10:35:57 +0000 (UTC) (envelope-from gizmen@blurp.pl) Received: from [10.8.1.27] (unknown [212.127.90.234]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by albion.azs.pwr.wroc.pl (Postfix) with ESMTPSA id CD274116FC for ; Tue, 28 Oct 2008 11:35:55 +0100 (CET) From: Bartosz Giza Organization: BLURP.pl To: freebsd-net@freebsd.org Date: Tue, 28 Oct 2008 12:35:53 +0100 User-Agent: KMail/1.9.7 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200810281235.53508.gizmen@blurp.pl> Subject: two NIC on 2 core system (scheduling problem) 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, 28 Oct 2008 10:35:57 -0000 Hi, i have two core system with freebsd 7.0. I have two NIC; first is em and second is bge. I wonder why system put irq processes almost always to one core. There is example: 11 root 1 171 ki31 0K 8K RUN 0 311.2H 96.19% idle: cpu0 10 root 1 171 ki31 0K 8K CPU1 1 271.4H 71.44% idle: cpu1 21 root 1 -68 - 0K 8K WAIT 1 48.8H 13.87% irq17: bge0 20 root 1 -68 - 0K 8K - 1 42.9H 11.72% em0 taskq Almost all the time irq17: bge0 and em0 taskq are on second cpu (1). I use SCHED_4BSD scheduler. How can i make system to use two cores not one for interrupt handling. On other router based on the same hardware and software i have something like that: 10 root 1 171 ki31 0K 8K RUN 1 235.4H 78.66% idle: cpu1 11 root 1 171 ki31 0K 8K RUN 0 185.2H 72.12% idle: cpu0 20 root 1 -68 - 0K 8K - 0 48.7H 23.00% em0 taskq 23 root 1 -68 - 0K 8K WAIT 0 19.2H 9.67% irq16: fxp1 21 root 1 -68 - 0K 8K WAIT 1 28.2H 8.01% irq17: bge0 I don't know why on this router system balance over two cores. One difference is that on this router i have another fxp card (3 total) Another question is why em0 taskq is eating so much cpu ? BGE interface is actually one that pushes 2 times more packets than em0 and it uses about half cpu comparing to em0. Is that not strange ? Could someone tell my why is this happening ? BGE is faster ? or maybe i can tune some