Improving PPPoE performance with irqbalance?

Would it be possible to raise the PPPoE throughput by implementing irqbalance?

Users over at OpenWRT are implying that it would help but there are no actual benchmarks.

I think it would be nice to speed up the Mini Appliance as there are now some providers that use PPPoE with FTTX Gigabit plans (1000/1000).

If the ethernet card has only one queue (i210 has two queues, i211 has only one), then all the interrupts generated by that NIC will be handled by a single CPU core. Even if irqbalance is running, there isn’t much it can do to distribute the load because there’s only one interrupt source (the single queue) from the NIC. In this case, irqbalance won’t significantly increase the throughput of the ethernet interface. I am not sure which one of the two cards are installed in the mini appliance.

1 Like

I don’t know if Linux supports multithreading with PPPoE but I know that BSD only supports a single thread, so queues don’t matter at all there. Some even say NICs without queues are faster then:

https://eyegog.co.uk/posts/a-sad-slow-pppoe-story/

Mini Appliance should be apu4d4, with I211-AT, which according to the Intel product sheet have 4 queues (2x TX and 2x RX).

But you mentioned interrupts in plural, so isn’t this exactly what irqbalance is doing? Splitting interrupts from a single core to all cores?

1 Like

Not if the interrupts are not independent. Anyhow you are right, i211 has one queue, but i211AT has 2 queues (2 in and 2 out), so each queue can generate interrupts independently, and these interrupts can be distributed among different CPU cores.

EDIT: actually, the datasheet is showing i211, with two queues. My memory was clearly faulty. I thought it had only one queue.

Just for completeness:
All APUs use i21xAT NICs. For exact specifications see PC Engines apu2e0 product file and PC Engines apu4d2 product file

@bbitsch as you posted in the link, the apu2 line can have either i211 or i210. I have apu2d4 which happens to be i210. This is why I specifically mentioned these two. But I must have misunderstood or forgotten that i211 had more than one queue.

Is this related?

The Realtek RTL8125B NIC mentioned in the link actually supports RSS (“Supports quad core Receive-Side Scaling” which implies 4x RX).

But I haven’t figured out if this is a hardware issue as this Eugene Grosbein guy claims, because then Linux routers like OpenWRT and IPFire should have the same problem with these Intel NICs, but teklager already proved that it can’t be a hardware issue because OpenWRT is faster:

Or is Linux faster because it supports multithreading with PPPoE?

This guy also measured faster PPPoE throughput with Linux, although the NIC is unknown:

2 Likes