Re: i40e: low tx rates for larger packet sizes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 23 Oct 2024 at 10:11, Srivats P <pstavirs@xxxxxxxxx> wrote:
>
> Hi,
>
> Trying AF_XDP xdpsock txonly on an i40e (XL710), I'm seeing some
> behaviour across packet size that I need help to understand.
>
> All tests with zero-copy mode (similar results with busy poll mode
> also). The i40e driver version is the native kernel version 6.8.0-47
> included in Ubuntu 24.04. Flow control tx/rx is off.
>
> PktSize  Max-pps  Actual-pps
>                                                                     64
>    59.5M      ~18.9M
>                                                                 512
>  9.4M      ~7.5M
>                                                              1024
> 4.8M      ~4.6M
>                                                             1518
> 3.3M      ~3.0M
>
> Output logs below
>
> Since 64 byte packets can do around ~18.9M, I was expecting larger
> packets (see 512 and 1518 above) to do line rate i.e. do close to
> max-pps but they do less than that.
>
> Is this expected?

I think it is hard to hit exactly line rate. Note that each queue on
i40e can deliver max ~21 Mpps. How about trying with multiple queues
and see what you get?

> What factors could be playing a role in a lower rate for larger packet size?
>
> To determine how many cores/queues I need if I need to transmit X Gbps
> - what factors do I need to use?
>
> Srivats
>
> $ sudo ./xdpsock -t -i enp1s0f0np0 -z -d5 -s64
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 1,88,28,546    1,88,39,104
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 1,88,25,658    3,76,73,792
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 1,92,29,105    5,69,07,520
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 1,96,44,299    7,65,55,904
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 1,96,46,711    9,62,06,336
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           0.00
> rx                 0              0
> tx                 0              9,62,06,720
>
>
> $ sudo ./xdpsock -t -i enp1s0f0np0 -z -d5 -s512
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 75,09,247      75,11,104
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 74,89,511      1,50,01,856
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 74,98,753      2,25,01,568
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 74,86,126      2,99,88,672
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 74,86,807      3,74,76,416
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           0.00
> rx                 0              0
> tx                 0              3,74,76,416
>
>
> $ sudo ./xdpsock -t -i enp1s0f0np0 -z -d5 -s1024
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 46,01,574      46,02,496
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 45,95,655      91,98,912
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 45,95,058      1,37,94,432
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 45,97,400      1,83,92,256
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 45,84,541      2,29,77,152
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           0.00
> rx                 0              0
> tx                 0              2,29,77,216
>
> $ sudo ./xdpsock -t -i enp1s0f0np0 -z -d5 -s1518
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 30,00,232      30,00,960
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 29,94,793      59,96,224
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 29,95,064      89,91,616
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 29,96,147      1,19,88,160
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           1.00
> rx                 0              0
> tx                 29,94,991      1,49,83,552
>
>  sock0@enp1s0f0np0:0 txonly xdp-drv
>                    pps            pkts           0.00
> rx                 0              0
> tx                 0              1,49,83,552
>




[Index of Archives]     [Linux Networking Development]     [Fedora Linux Users]     [Linux SCTP]     [DCCP]     [Gimp]     [Yosemite Campsites]

  Powered by Linux