mbox series

[net-next,v2,0/7] stmmac: add XDP ZC support

Message ID 20210413093626.3447-1-boon.leong.ong@intel.com (mailing list archive)
Headers show
Series stmmac: add XDP ZC support | expand

Message

Ong Boon Leong April 13, 2021, 9:36 a.m. UTC
Hi,

This is the v2 patch series to add XDP ZC support to stmmac driver.

Summary of v2 patch change:-

6/7: fix synchronize_rcu() is called stmmac_disable_all_queues() that is
     used by ndo_setup_tc().

 ########################################################################

Continuous burst traffics are generated by pktgen script and in the midst
of each packet processing operation by xdpsock the following tc-loop.sh
script is looped continuously:-

 #!/bin/bash
 tc qdisc del dev eth0 parent root
 tc qdisc add dev eth0 ingress
 tc qdisc add dev eth0 root mqprio num_tc 4 map 0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 queues 1@0 1@1 1@2 1@3 hw 0
 tc filter add dev eth0 parent ffff: protocol 802.1Q flower vlan_prio 0 hw_tc 0
 tc filter add dev eth0 parent ffff: protocol 802.1Q flower vlan_prio 1 hw_tc 1
 tc filter add dev eth0 parent ffff: protocol 802.1Q flower vlan_prio 2 hw_tc 2
 tc filter add dev eth0 parent ffff: protocol 802.1Q flower vlan_prio 3 hw_tc 3
 tc qdisc list dev eth0
 tc filter show dev eth0 ingress

 On different ssh terminal
 $ while true; do ./tc-loop.sh; sleep 1; done

The v2 patch series have been tested using the xdpsock app:
 $ ./xdpsock -i eth0 -l -z

From xdpsock poller pps report and dmesg, we don't find any warning
related to rcu and the only difference when the script is executed is
the pps rate drops momentarily.

 sock0@eth0:0 l2fwd xdp-drv
                   pps            pkts           1.00
rx                 436347         191361334
tx                 436411         191361334

 sock0@eth0:0 l2fwd xdp-drv
                   pps            pkts           1.00
rx                 254117         191615476
tx                 254053         191615412

 sock0@eth0:0 l2fwd xdp-drv
                   pps            pkts           1.00
rx                 466395         192081924
tx                 466395         192081860

 sock0@eth0:0 l2fwd xdp-drv
                   pps            pkts           1.00
rx                 287410         192369365
tx                 287474         192369365

 sock0@eth0:0 l2fwd xdp-drv
                   pps            pkts           1.00
rx                 395853         192765329
tx                 395789         192765265

 sock0@eth0:0 l2fwd xdp-drv
                   pps            pkts           1.00
rx                 466132         193231514
tx                 466132         193231450

 ########################################################################

Based on the above result, the fix looks promising. Appreciate that if
community can help to review the patch series and provide me feedback
for improvement.

Thanks,
Boon Leong

 ------------------------------------------------------------------------
 History of patch series as follow:-

 v1: https://patchwork.kernel.org/project/netdevbpf/list/?series=465747&state=*

 ------------------------------------------------------------------------

Ong Boon Leong (7):
  net: stmmac: rearrange RX buffer allocation and free functions
  net: stmmac: introduce dma_recycle_rx_skbufs for
    stmmac_reinit_rx_buffers
  net: stmmac: refactor stmmac_init_rx_buffers for
    stmmac_reinit_rx_buffers
  net: stmmac: rearrange RX and TX desc init into per-queue basis
  net: stmmac: Refactor __stmmac_xdp_run_prog for XDP ZC
  net: stmmac: Enable RX via AF_XDP zero-copy
  net: stmmac: Add TX via XDP zero-copy socket

 drivers/net/ethernet/stmicro/stmmac/stmmac.h  |   24 +-
 .../net/ethernet/stmicro/stmmac/stmmac_main.c | 1718 +++++++++++++----
 .../net/ethernet/stmicro/stmmac/stmmac_xdp.c  |   95 +
 .../net/ethernet/stmicro/stmmac/stmmac_xdp.h  |    3 +
 4 files changed, 1411 insertions(+), 429 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org April 13, 2021, 10:10 p.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Tue, 13 Apr 2021 17:36:19 +0800 you wrote:
> Hi,
> 
> This is the v2 patch series to add XDP ZC support to stmmac driver.
> 
> Summary of v2 patch change:-
> 
> 6/7: fix synchronize_rcu() is called stmmac_disable_all_queues() that is
>      used by ndo_setup_tc().
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/7] net: stmmac: rearrange RX buffer allocation and free functions
    https://git.kernel.org/netdev/net-next/c/4298255f26fa
  - [net-next,v2,2/7] net: stmmac: introduce dma_recycle_rx_skbufs for stmmac_reinit_rx_buffers
    https://git.kernel.org/netdev/net-next/c/80f573c995fc
  - [net-next,v2,3/7] net: stmmac: refactor stmmac_init_rx_buffers for stmmac_reinit_rx_buffers
    https://git.kernel.org/netdev/net-next/c/da5ec7f22a0f
  - [net-next,v2,4/7] net: stmmac: rearrange RX and TX desc init into per-queue basis
    https://git.kernel.org/netdev/net-next/c/de0b90e52a11
  - [net-next,v2,5/7] net: stmmac: Refactor __stmmac_xdp_run_prog for XDP ZC
    https://git.kernel.org/netdev/net-next/c/bba71cac680f
  - [net-next,v2,6/7] net: stmmac: Enable RX via AF_XDP zero-copy
    https://git.kernel.org/netdev/net-next/c/bba2556efad6
  - [net-next,v2,7/7] net: stmmac: Add TX via XDP zero-copy socket
    https://git.kernel.org/netdev/net-next/c/132c32ee5bc0

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html