Subject: Re: [PATCH net-next 3/8] cadence: macb: Add page pool support handle multi-descriptor frame rx

From: Paolo Valerio <[email-masked]>
Date: Sun, 25 Jan 2026 20:02:38 +0100

On 23 Jan 2026 at 12:04:55 AM, Andrew Lunn <[email-masked]> wrote:

> On Thu, Jan 22, 2026 at 11:24:05PM +0100, Paolo Valerio wrote:
>> On 16 Jan 2026 at 06:16:16 PM, Andrew Lunn <[email-masked]> wrote:
>> 
>> > On Thu, Jan 15, 2026 at 11:25:26PM +0100, Paolo Valerio wrote:
>> >> Use the page pool allocator for the data buffers and enable skb recycling
>> >> support, instead of relying on netdev_alloc_skb allocating the entire skb
>> >> during the refill.
>> >
>> > Do you have any benchmark numbers for this change? Often swapping to
>> > page pool improves the performance of the driver, and i use it as a
>> > selling point for doing the conversion, independent of XDP.
>> >
>> 
>> I finally got the chance to get my hands on the board.
>> 
>> On the rpi5 I simply run xdp-bench in skb-mode to drop and collect the
>> stats.
>> 
>> Page size is 4k and stats include the driver consuming a full page
>> setting mtu such that rx_buffer_size + overhead exceed half page and the
>> other way around for 2 fragments.
>> 
>>              |    64     |    128    |
>>   baseline   |  533,158  |  531,618  |
>>   pp page    |  530,929  |  529,682  |
>>   pp 2 frags |  530,781  |  529,116  |
>
> I was more interested in plain networking, not XDP. Does it perform
> better with page pool? You at least need to show it is not worse, you
> need to avoid performance regressions.
>

I retested with iperf3. The target has a single rx queue with iperf3
running with no cpu affinity set.

|              |  64 | 128 |
| baseline     | 273 | 545 |
| pp (page)    | 273 | 544 |
| pp (2 frags) | 272 | 544 |

>      Andrew