Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Jun 2012 10:54:40 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-net@freebsd.org
Cc:        Venkat Duvvuru <venkatduvvuru.ml@gmail.com>
Subject:   Re: MSI-X limitation in freebsd 8.2
Message-ID:  <201206201054.40824.jhb@freebsd.org>
In-Reply-To: <CAGdae7YW0jt4gTmHufHFTrcdtFGhngu_Wi%2BMDg1nY_T0J1C_SQ@mail.gmail.com>
References:  <CAGdae7YW0jt4gTmHufHFTrcdtFGhngu_Wi%2BMDg1nY_T0J1C_SQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, June 20, 2012 6:47:34 am Venkat Duvvuru wrote:
> Hi,
> MSI-x supports upto 2048 vectors but what I see in freebsd 8.2 is that when
> I use more than ~30 vectors, system becomes dead slow.
> Is there a limitation on number of msi vectors that can be used in 8.2?

FreeBSD/x86 supports roughly 191 distinct interrupts on each CPU, and each 
MSI-X interrupt takes up a single vector on the CPU it resides on.  If you
exhaust that set of vectors, then pci_alloc_msix() will fail (or return a
smaller count).  However, I haven't seen any issues with the system being slow 
with 30 vectors.  Are these 30 vectors all tied to a single device, and are 
they evenly distributed across the available CPUs?  Have you run top when the 
system was sluggish to see what each CPU was doing?

-- 
John Baldwin



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