From owner-freebsd-performance@FreeBSD.ORG Mon May 13 08:52:48 2013 Return-Path: Delivered-To: freebsd-performance@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id EC30B636 for ; Mon, 13 May 2013 08:52:48 +0000 (UTC) (envelope-from menyy@mellanox.com) Received: from eu1sys200aog114.obsmtp.com (eu1sys200aog114.obsmtp.com [207.126.144.137]) by mx1.freebsd.org (Postfix) with ESMTP id 2E4FCF3A for ; Mon, 13 May 2013 08:52:47 +0000 (UTC) Received: from MTLCAS01.mtl.com ([193.47.165.155]) (using TLSv1) by eu1sys200aob114.postini.com ([207.126.147.11]) with SMTP ID DSNKUZCp2SZ5Zf0zwpSFB/0LVW0sPA3BsfLg@postini.com; Mon, 13 May 2013 08:52:48 UTC Received: from MTLDAG01.mtl.com ([10.0.8.75]) by MTLCAS01.mtl.com ([10.0.8.71]) with mapi id 14.03.0123.003; Mon, 13 May 2013 11:43:27 +0300 From: Meny Yossefi To: "freebsd-performance@freebsd.org" Subject: irq balancer Thread-Topic: irq balancer Thread-Index: Ac5Ps87sQU00seXNQmKfSsa3zcswew== Date: Mon, 13 May 2013 08:43:19 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.0.13.1] MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-performance@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Performance/tuning List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 May 2013 08:52:49 -0000 Hi, I'm running FreeBSD 9.1. I was wandering if there's a way to distribute hardware interrupts (pinning= an interrupt handler to a specific CPU) across processors for performance = benefits. Linux has a process called irqbalancer for exactly that purpose. Is there a= n equivalent in FreeBSD ? Thanks, Meny From owner-freebsd-performance@FreeBSD.ORG Mon May 13 16:10:51 2013 Return-Path: Delivered-To: freebsd-performance@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id C1EE64F0 for ; Mon, 13 May 2013 16:10:51 +0000 (UTC) (envelope-from eric@vangyzen.net) Received: from aussmtpmrkps320.us.dell.com (aussmtpmrkps320.us.dell.com [143.166.224.254]) by mx1.freebsd.org (Postfix) with ESMTP id 974883C6 for ; Mon, 13 May 2013 16:10:51 +0000 (UTC) X-Loopcount0: from 64.238.244.148 X-IronPort-AV: E=Sophos;i="4.87,662,1363150800"; d="scan'208";a="28135398" Message-ID: <51911084.60505@vangyzen.net> Date: Mon, 13 May 2013 11:10:44 -0500 From: Eric van Gyzen User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130413 Thunderbird/17.0.5 MIME-Version: 1.0 To: Meny Yossefi Subject: Re: irq balancer References: In-Reply-To: Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Cc: "freebsd-performance@freebsd.org" X-BeenThere: freebsd-performance@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Performance/tuning List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 May 2013 16:10:51 -0000 On 05/13/2013 03:43, Meny Yossefi wrote: > Hi, > > I'm running FreeBSD 9.1. > I was wandering if there's a way to distribute hardware interrupts (pinning an interrupt handler to a specific CPU) across processors for performance benefits. > Linux has a process called irqbalancer for exactly that purpose. Is there an equivalent in FreeBSD ? Hi Meny. A driver can use bus_bind_intr(9) for this purpose. It assigns the MSI-X signalling and the corresponding interrupt thread (if any) to the given CPU. sys/dev/ixgbe/ixgbe.c is a good example. This capability is exposed to user-land via cpuset(2) and cpuset(1). Note that these are static assignments. To my knowledge, there is no FreeBSD equivalent of Linux's irqbalance, which dynamically shuffles IRQs based on runtime behavior. I would be delighted if I'm wrong. :) Regards, Eric From owner-freebsd-performance@FreeBSD.ORG Tue May 14 02:16:13 2013 Return-Path: Delivered-To: freebsd-performance@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 9A663F04 for ; Tue, 14 May 2013 02:16:13 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-wg0-x229.google.com (mail-wg0-x229.google.com [IPv6:2a00:1450:400c:c00::229]) by mx1.freebsd.org (Postfix) with ESMTP id 34605916 for ; Tue, 14 May 2013 02:16:13 +0000 (UTC) Received: by mail-wg0-f41.google.com with SMTP id y10so3536994wgg.4 for ; Mon, 13 May 2013 19:16:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=P5Ro+9kx+8gwjzZCxnSOE5swQHUIBReUi5IBO5EOH5g=; b=R0/slF5JbYgkRrMpYM7CMiAEE97SB3Ukm3Lhw7l7dCZETPYnC32xKRR0x2nRM1pzxu bODvdsbcIPZbn0nzncItTEh0gwYQaCz+ptJiElkhS+/Gud93zMERK58zNmLRr2ofDHKn bV38tqb5C27s2achqXuUnM26HfzDE3EzUlRCM+YhKrWsCRHI6+pmWLGr/2zu66fubTUB bf94ccaSpeeMHy9JMLXOqw6Mt33Y9Ke0vBuc9Y9GaZV3xZGETc3ij+mF76h8neWI0QFj w/V9zRQWto2uWrN6SqkpdV5lBOHT73oAgcJXdOkPebBieGW7m5z9zT5zZCZFejk0sA2j XtbA== MIME-Version: 1.0 X-Received: by 10.180.185.179 with SMTP id fd19mr1710747wic.1.1368497772329; Mon, 13 May 2013 19:16:12 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.217.58.138 with HTTP; Mon, 13 May 2013 19:16:12 -0700 (PDT) In-Reply-To: <51911084.60505@vangyzen.net> References: <51911084.60505@vangyzen.net> Date: Mon, 13 May 2013 19:16:12 -0700 X-Google-Sender-Auth: ts8FoWN6Wb8moIrVmZHrDj59-wc Message-ID: Subject: Re: irq balancer From: Adrian Chadd To: Eric van Gyzen Content-Type: text/plain; charset=ISO-8859-1 Cc: "freebsd-performance@freebsd.org" , Meny Yossefi X-BeenThere: freebsd-performance@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Performance/tuning List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 May 2013 02:16:13 -0000 ... that's what the scheduler is for, right? dynamically assigning interrupt threads to inactive CPUs? Adrian