hw.igb.num_queues default

Andre Oppermann andre at freebsd.org
Thu Jun 20 14:30:05 UTC 2013


On 20.06.2013 15:37, Eugene Grosbein wrote:
> On 20.06.2013 17:34, Eggert, Lars wrote:
>
>> real memory  = 8589934592 (8192 MB)
>> avail memory = 8239513600 (7857 MB)
>
>> By default, the igb driver seems to set up one queue per detected CPU. Googling around, people seemed to suggest that limiting the number of queues makes things work better. I can confirm that setting hw.igb.num_queues=2 seems to have fixed the issue. (Two was the first value I tried, maybe other values other than 0 would work, too.)
>>
>> In order to uphold POLA, should the igb driver maybe default to a conservative value for hw.igb.num_queues that may not deliver optimal performance, but at least works out of the box?
>
> Or, better, make nmbclusters auto-tuning smarter, if any.
> I mean, use more nmbclusters for machines with large amounts of memory.

That has already been done in HEAD.

The other problem is the pre-filling of the large rings for all queues
stranding large amounts of mbuf clusters.  OpenBSD starts with a small
number of filled mbufs in the RX ring and then dynamically adjusts the
number upwards if there is enough traffic to maintain deep buffers.  I
don't know if it always quickly scales in practice though.

-- 
Andre



More information about the freebsd-net mailing list