What are conditions to spread traffic across different NIC queues?

Lev Serebryakov lev at FreeBSD.org
Fri Oct 26 14:11:41 UTC 2018


On 26.10.2018 15:30, Lev Serebryakov wrote:

>  I have "router" with two em (82574L) NICs. It has dual-core CPU and
> each NIC creates two receive and two transmit queues:
> 
> $ sysctl dev.em | grep queue | grep _irq
> dev.em.1.queue_rx_1.rx_irq: 0
> dev.em.1.queue_rx_0.rx_irq: 0
> dev.em.1.queue_tx_1.tx_irq: 0
> dev.em.1.queue_tx_0.tx_irq: 0
> dev.em.0.queue_rx_1.rx_irq: 0
> dev.em.0.queue_rx_0.rx_irq: 0
> dev.em.0.queue_tx_1.tx_irq: 0
> dev.em.0.queue_tx_0.tx_irq: 0
> $
> 
>  When I pass, say, 64 UDP streams through this router, only one core is
> 100% loaded and other is 100% idle. These streams are for same IP pair,
> but port pairs are all different.
> 
>  What are right conditions to spread such traffic per queues and cores?
 Ok, 82574L is "low end" chip, it supports only IP and IP+TCP checksums.
82576EB supports IP+UDP too. Intel, what is wrong with you?!

-- 
// Lev Serebryakov

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20181026/85e7fef1/attachment.sig>


More information about the freebsd-net mailing list