Re: [PATCH net-next v8 0/3] Add minimal XDP support to TI AM65 CPSW Ethernet driver

From: Jacob Keller
Date: Tue Apr 09 2024 - 19:52:21 EST




On 4/8/2024 2:38 AM, Julien Panis wrote:
> This patch adds XDP support to TI AM65 CPSW Ethernet driver.
>
> The following features are implemented: NETDEV_XDP_ACT_BASIC,
> NETDEV_XDP_ACT_REDIRECT, and NETDEV_XDP_ACT_NDO_XMIT.
>
> Zero-copy and non-linear XDP buffer supports are NOT implemented.
>
> Besides, the page pool memory model is used to get better performance.
>
> Signed-off-by: Julien Panis <jpanis@xxxxxxxxxxxx>
> ---

Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx>

> Changes in v8:
> - Fix some warnings reported by patchwork.
> - Link to v7: https://lore.kernel.org/r/20240223-am65-cpsw-xdp-basic-v7-0-c3857c82dadb@xxxxxxxxxxxx
>
> Changes in v7:
> - Move xdp_do_flush() function call in am65_cpsw_nuss_rx_poll().
> - Link to v6: https://lore.kernel.org/r/20240223-am65-cpsw-xdp-basic-v6-0-212eeff5bd5f@xxxxxxxxxxxx
>
> Changes in v6:
> - In k3_cppi_*() functions, use const qualifier when the content of
> pool is not modified.
> - Add allow_direct bool parameter to am65_cpsw_alloc_skb() function
> for direct use by page_pool_put_full_page().
> - Link to v5: https://lore.kernel.org/r/20240223-am65-cpsw-xdp-basic-v5-0-bc1739170bc6@xxxxxxxxxxxx
>
> Changes in v5:
> - In k3_cppi_desc_pool_destroy(), free memory allocated for desc_infos.
> - Link to v4: https://lore.kernel.org/r/20240223-am65-cpsw-xdp-basic-v4-0-2e45e5dec048@xxxxxxxxxxxx
>
> Changes in v4:
> - Add skb_mark_for_recycle() in am65_cpsw_nuss_rx_packets() function.
> - Specify napi page pool parameter in am65_cpsw_create_xdp_rxqs() function.
> - Add benchmark numbers (with VS without page pool) in the commit description.
> - Add xdp_do_flush() in am65_cpsw_run_xdp() function for XDP_REDIRECT case.
> - Link to v3: https://lore.kernel.org/r/20240223-am65-cpsw-xdp-basic-v3-0-5d944a9d84a0@xxxxxxxxxxxx
>
> Changes in v3:
> - Fix a potential issue with TX buffer type, which is now set for each buffer.
> - Link to v2: https://lore.kernel.org/r/20240223-am65-cpsw-xdp-basic-v2-0-01c6caacabb6@xxxxxxxxxxxx
>
> Changes in v2:
> - Use page pool memory model instead of MEM_TYPE_PAGE_ORDER0.
> - In am65_cpsw_alloc_skb(), release reference on the page pool page
> in case of error returned by build_skb().
> - [nit] Cleanup am65_cpsw_nuss_common_open/stop() functions.
> - [nit] Arrange local variables in reverse xmas tree order.
> - Link to v1: https://lore.kernel.org/r/20240223-am65-cpsw-xdp-basic-v1-1-9f0b6cbda310@xxxxxxxxxxxx
>
> ---
> Julien Panis (3):
> net: ethernet: ti: Add accessors for struct k3_cppi_desc_pool members
> net: ethernet: ti: Add desc_infos member to struct k3_cppi_desc_pool
> net: ethernet: ti: am65-cpsw: Add minimal XDP support
>
> drivers/net/ethernet/ti/am65-cpsw-nuss.c | 569 +++++++++++++++++++++++++---
> drivers/net/ethernet/ti/am65-cpsw-nuss.h | 13 +
> drivers/net/ethernet/ti/k3-cppi-desc-pool.c | 41 ++
> drivers/net/ethernet/ti/k3-cppi-desc-pool.h | 6 +
> 4 files changed, 578 insertions(+), 51 deletions(-)
> ---
> base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d
> change-id: 20240223-am65-cpsw-xdp-basic-4db828508b48
>
> Best regards,