Hi Patrick,
> > Handling loadbalancing in softirq corner is, IMHO, not the best place
> > for performance. Softirq handling design become a performance bottlneck
> > catalysed by the democratization of SMP (multi-core) box. There is
> > alternative design but need to find time to work fulltime on this (I
> > have this on my TODO).
>
> The speed of a single core is just too slow. Balancing the interrupts
> over multiple CPU cores gives a performance penalty.
>
> What about MSI-X with multiqueue (like intel chipset 82575). Will that
> help. I haven't found a nic with that chipset yet, but that's a different
> story.
multi-rx/tx queue is great if supported by NIC driver you are using. for
example the ixgb driver is supporting multiqueue handling. But with a
simple rework of the softirq design you can have a huge performance
gain. I mean, skb are coming from netdev and directly queued into
multi-lvs-queue which job is to drive loadbalancing decision + skb
gardening, this queue is fetched by dedicated kthread, so your netdev
only fill skb into the queue while kthread unqueue/handle. With this
simple code extension you will have a nice gain. IMHO, multiqueue is
great design and is legitimate by NIC bandwidth, I mean, for 10GE NIC.
Regards,
Alexandre
|