Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 May 2013 11:10:44 -0500
From:      Eric van Gyzen <eric@vangyzen.net>
To:        Meny Yossefi <menyy@mellanox.com>
Cc:        "freebsd-performance@freebsd.org" <freebsd-performance@freebsd.org>
Subject:   Re: irq balancer
Message-ID:  <51911084.60505@vangyzen.net>
In-Reply-To: <F2E47A38E4D0B9499D76F2AB8901571A7398576B@MTLDAG01.mtl.com>
References:  <F2E47A38E4D0B9499D76F2AB8901571A7398576B@MTLDAG01.mtl.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51911084.60505>