Issue found in Armada 370: "No buffer space available" error during continuous ping

Willy Tarreau w at
Mon Dec 1 01:58:15 PST 2014

Hi Thomas,

On Mon, Dec 01, 2014 at 10:32:21AM +0100, Thomas Petazzoni wrote:
> If I understood correctly, on RX the interrupt coalescing can be done
> every X packets, or after N milliseconds. However, on TX, it's only
> after Y packets, there is no way to configure a delay.

That was my understanding of the datasheet as well.

> But in any case, with NAPI implemented in software, are these hardware
> interrupt coalescing features very important? As soon as the number of
> interrupts becomes high, the kernel will disable the interrupt and
> switch to polling, no?

Absolutely, but despite this, the interrupts still impact the system's
performance, because instead of waking up the driver once the Tx queue
is about to be empty (let's say twice per Tx queue), we wake up as often
as the system supports it. The net effect is a performance loss of about
5% on small packets, which is not huge of course, but would rather be
spent doing some more useful stuff.

Uri gave me a contact at Marvell who knows this device well, I'll ask
him if there's no other way to work with this chip. Sending an interrupt
at least when the Tx queue is empty would be nice :-/

Best regards,

More information about the linux-arm-kernel mailing list