Re: [EXT] Re: [PATCH 1/1] net: fec: add initial XDP support

From: Jesper Dangaard Brouer
Date: Thu Oct 06 2022 - 04:38:04 EST




On 05/10/2022 14.40, Shenwei Wang wrote:
Hi Jesper,

Here is the summary of "xdp_rxq_info" testing.

skb_mark_for_recycle page_pool_release_page

Native SKB-Mode Native SKB-Mode
XDP_DROP 460K 220K 460K 102K
XDP_PASS 80K 113K 60K 62K


It is very pleasing to see the *huge* performance benefit that page_pool
provide when recycling pages for SKBs (via skb_mark_for_recycle).
I did expect a performance boost, but not around a x2 performance boost.

I guess this platform have a larger overhead for DMA-mapping and
page-allocation.

IMHO it would be valuable to include this result as part of the patch
description when you post the XDP patch again.

Only strange result is XDP_PASS 'Native' is slower that 'SKB-mode'. I
cannot explain why, as XDP_PASS essentially does nothing and just follow
normal driver code to netstack.

Thanks a lot for doing these tests.
--Jesper

The following are the testing log.

Thanks,
Shenwei

### skb_mark_for_recycle solution ###

./xdp_rxq_info --dev eth0 --act XDP_DROP --read

Running XDP on dev:eth0 (ifindex:2) action:XDP_DROP options:read
XDP stats CPU pps issue-pps
XDP-RX CPU 0 466,553 0
XDP-RX CPU total 466,553

./xdp_rxq_info -S --dev eth0 --act XDP_DROP --read

Running XDP on dev:eth0 (ifindex:2) action:XDP_DROP options:read
XDP stats CPU pps issue-pps
XDP-RX CPU 0 226,272 0
XDP-RX CPU total 226,272

./xdp_rxq_info --dev eth0 --act XDP_PASS --read

Running XDP on dev:eth0 (ifindex:2) action:XDP_PASS options:read
XDP stats CPU pps issue-pps
XDP-RX CPU 0 80,518 0
XDP-RX CPU total 80,518

./xdp_rxq_info -S --dev eth0 --act XDP_PASS --read

Running XDP on dev:eth0 (ifindex:2) action:XDP_PASS options:read
XDP stats CPU pps issue-pps
XDP-RX CPU 0 113,681 0
XDP-RX CPU total 113,681


### page_pool_release_page solution ###

./xdp_rxq_info --dev eth0 --act XDP_DROP --read

Running XDP on dev:eth0 (ifindex:2) action:XDP_DROP options:read
XDP stats CPU pps issue-pps
XDP-RX CPU 0 463,145 0
XDP-RX CPU total 463,145

./xdp_rxq_info -S --dev eth0 --act XDP_DROP --read

Running XDP on dev:eth0 (ifindex:2) action:XDP_DROP options:read
XDP stats CPU pps issue-pps
XDP-RX CPU 0 104,443 0
XDP-RX CPU total 104,443

./xdp_rxq_info --dev eth0 --act XDP_PASS --read

Running XDP on dev:eth0 (ifindex:2) action:XDP_PASS options:read
XDP stats CPU pps issue-pps
XDP-RX CPU 0 60,539 0
XDP-RX CPU total 60,539

./xdp_rxq_info -S --dev eth0 --act XDP_PASS --read

Running XDP on dev:eth0 (ifindex:2) action:XDP_PASS options:read
XDP stats CPU pps issue-pps
XDP-RX CPU 0 62,566 0
XDP-RX CPU total 62,566

-----Original Message-----
From: Shenwei Wang
Sent: Tuesday, October 4, 2022 8:34 AM
To: Jesper Dangaard Brouer <jbrouer@xxxxxxxxxx>; Andrew Lunn
<andrew@xxxxxxx>
Cc: brouer@xxxxxxxxxx; David S. Miller <davem@xxxxxxxxxxxxx>; Eric Dumazet
<edumazet@xxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni
<pabeni@xxxxxxxxxx>; Alexei Starovoitov <ast@xxxxxxxxxx>; Daniel Borkmann
<daniel@xxxxxxxxxxxxx>; Jesper Dangaard Brouer <hawk@xxxxxxxxxx>; John
Fastabend <john.fastabend@xxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; linux-
kernel@xxxxxxxxxxxxxxx; imx@xxxxxxxxxxxxxxx; Magnus Karlsson
<magnus.karlsson@xxxxxxxxx>; Björn Töpel <bjorn@xxxxxxxxxx>; Ilias
Apalodimas <ilias.apalodimas@xxxxxxxxxx>
Subject: RE: [EXT] Re: [PATCH 1/1] net: fec: add initial XDP support



-----Original Message-----
From: Shenwei Wang
Sent: Tuesday, October 4, 2022 8:13 AM
To: Jesper Dangaard Brouer <jbrouer@xxxxxxxxxx>; Andrew Lunn
...
I haven't tested xdp_rxq_info yet, and will have a try sometime later today.
However, for the XDP_DROP test, I did try xdp2 test case, and the
testing result looks reasonable. The performance of Native mode is
much higher than skb- mode.

# xdp2 eth0
proto 0: 475362 pkt/s

# xdp2 -S eth0 (page_pool_release_page solution)
proto 17: 71999 pkt/s

# xdp2 -S eth0 (skb_mark_for_recycle solution)
proto 17: 72228 pkt/s


Correction for xdp2 -S eth0 (skb_mark_for_recycle solution)
proto 0: 0 pkt/s
proto 17: 122473 pkt/s

Thanks,
Shenwei