On 4/18/24 13:25, Siddharth Vadapalli wrote:
On Thu, Apr 18, 2024 at 01:17:47PM +0200, Julien Panis wrote:
On 4/18/24 13:00, Siddharth Vadapalli wrote:
On 12-04-2024 21:08, Julien Panis wrote:
This patch adds XDP support to TI AM65 CPSW Ethernet driver.
The following features are implemented
On 4/18/24 13:00, Siddharth Vadapalli wrote:
On 12-04-2024 21:08, 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
).
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 659 ++-
drivers/net/ethernet/ti/am65-cpsw-nuss.h | 13 +
2 files changed, 576 insertions(+), 96 deletions(-)
diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
b/drivers/net/ethernet/ti
This patch introduces a member and the related accessors which can be
used to store descriptor specific additional information. This member
can store, for instance, an ID to differentiate a skb TX buffer type
from a xdpf TX buffer type.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3
This patch adds accessors for desc_size and cpumem members. They may be
used, for instance, to compute a descriptor index.
Reviewed-by: Jacob Keller
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3-cppi-desc-pool.c | 12
drivers/net/ethernet/ti/k3-cppi-desc-pool.h | 2
better performance.
Signed-off-by: Julien Panis
---
Changes in v9:
- In k3_cppi_desc_pool_destroy(), free memory allocated for pool.
- In k3_cppi_desc_pool_create_name() function, remove unnecessary
error messages on mem alloc failures.
- In k3_cppi_desc_pool_create_name() function, move desc_infos
On 4/10/24 01:51, Jacob Keller wrote:
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
On 4/10/24 17:02, Jakub Kicinski wrote:
On Wed, 10 Apr 2024 16:02:00 +0200 Julien Panis wrote:
You shouldn't build the skb upfront any more. Give the page to the HW,
once HW sends you a completion - build the skbs. If build fails
(allocation failure) just give the page back to HW
On 4/10/24 02:49, Jakub Kicinski wrote:
On Mon, 08 Apr 2024 11:38:04 +0200 Julien Panis wrote:
+static struct sk_buff *am65_cpsw_alloc_skb(struct am65_cpsw_rx_chn *rx_chn,
+ struct net_device *ndev,
+ unsigned int
On 4/10/24 02:39, Jakub Kicinski wrote:
On Mon, 08 Apr 2024 11:38:03 +0200 Julien Panis wrote:
goto gen_pool_create_fail;
}
+ pool->desc_infos = kcalloc(pool->num_desc,
+ sizeof(*pool->desc_infos), GFP_KERNEL);
+
).
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 569 ---
drivers/net/ethernet/ti/am65-cpsw-nuss.h | 13 +
2 files changed, 531 insertions(+), 51 deletions(-)
diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
b/drivers/net/ethernet/ti
This patch adds accessors for desc_size and cpumem members. They may be
used, for instance, to compute a descriptor index.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3-cppi-desc-pool.c | 12
drivers/net/ethernet/ti/k3-cppi-desc-pool.h | 2 ++
2 files changed, 14
This patch introduces a member and the related accessors which can be
used to store descriptor specific additional information. This member
can store, for instance, an ID to differentiate a skb TX buffer type
from a xdpf TX buffer type.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3
better performance.
Signed-off-by: Julien Panis
---
Changes in v8:
- Fix some warnings reported by patchwork.
- Link to v7:
https://lore.kernel.org/r/20240223-am65-cpsw-xdp-basic-v7-0-c3857c82d...@baylibre.com
Changes in v7:
- Move xdp_do_flush() function call in am65_cpsw_nuss_rx_poll().
- Link
).
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 547 ---
drivers/net/ethernet/ti/am65-cpsw-nuss.h | 13 +
2 files changed, 509 insertions(+), 51 deletions(-)
diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
b/drivers/net/ethernet/ti
This patch introduces a member and the related accessors which can be
used to store descriptor specific additional information. This member
can store, for instance, an ID to differentiate a skb TX buffer type
from a xdpf TX buffer type.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3
This patch adds accessors for desc_size and cpumem members. They may be
used, for instance, to compute a descriptor index.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3-cppi-desc-pool.c | 12
drivers/net/ethernet/ti/k3-cppi-desc-pool.h | 2 ++
2 files changed, 14
better performance.
Signed-off-by: Julien Panis
---
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-212eeff5b...@baylibre.com
Changes in v6:
- In k3_cppi_*() functions, use const qualifier
This patch introduces a member and the related accessors which can be
used to store descriptor specific additional information. This member
can store, for instance, an ID to differentiate a skb TX buffer type
from a xdpf TX buffer type.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3
).
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 537 ---
drivers/net/ethernet/ti/am65-cpsw-nuss.h | 13 +
2 files changed, 500 insertions(+), 50 deletions(-)
diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
b/drivers/net/ethernet/ti
This patch adds accessors for desc_size and cpumem members. They may be
used, for instance, to compute a descriptor index.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3-cppi-desc-pool.c | 12
drivers/net/ethernet/ti/k3-cppi-desc-pool.h | 2 ++
2 files changed, 14
better performance.
Signed-off-by: Julien Panis
---
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
On 3/28/24 12:42, Ratheesh Kannoth wrote:
On 2024-03-28 at 14:56:42, Julien Panis (jpa...@baylibre.com) wrote:
This patch adds XDP (eXpress Data Path) support to TI AM65 CPSW
Ethernet driver. The following features are implemented:
- NETDEV_XDP_ACT_BASIC (XDP_PASS, XDP_TX, XDP_DROP, XDP_ABORTED
On 3/28/24 13:06, Naveen Mamindlapalli wrote:
-Original Message-
From: Julien Panis
Sent: Thursday, March 28, 2024 2:57 PM
To: David S. Miller ; Eric Dumazet
; Jakub Kicinski ; Paolo Abeni
; Russell King ; Alexei Starovoitov
; Daniel Borkmann ; Jesper Dangaard
Brouer ; John Fastabend
This patch introduces a member and the related accessors which can be
used to store descriptor specific additional information. This member
can store, for instance, an ID to differentiate a skb TX buffer type
from a xdpf TX buffer type.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3
).
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 536 ---
drivers/net/ethernet/ti/am65-cpsw-nuss.h | 13 +
2 files changed, 499 insertions(+), 50 deletions(-)
diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
b/drivers/net/ethernet/ti
This patch adds accessors for desc_size and cpumem members. They may be
used, for instance, to compute a descriptor index.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3-cppi-desc-pool.c | 12
drivers/net/ethernet/ti/k3-cppi-desc-pool.h | 2 ++
2 files changed, 14
better performance.
Signed-off-by: Julien Panis
---
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-2e45e5dec...@baylibre.com
Changes in v4:
- Add skb_mark_for_recycle
This patch introduces a member and the related accessors which can be
used to store descriptor specific additional information. This member
can store, for instance, an ID to differentiate a skb TX buffer type
from a xdpf TX buffer type.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3
).
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 536 ---
drivers/net/ethernet/ti/am65-cpsw-nuss.h | 13 +
2 files changed, 499 insertions(+), 50 deletions(-)
diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
b/drivers/net/ethernet/ti
This patch adds accessors for desc_size and cpumem members. They may be
used, for instance, to compute a descriptor index.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3-cppi-desc-pool.c | 12
drivers/net/ethernet/ti/k3-cppi-desc-pool.h | 2 ++
2 files changed, 14
better performance.
Signed-off-by: Julien Panis
---
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
On 3/13/24 14:44, Ratheesh Kannoth wrote:
On 2024-03-12 at 18:52:39, Julien Panis (jpa...@baylibre.com) wrote:
This patch adds XDP support to TI AM65 CPSW Ethernet driver.
is this a net-next item ?
Initially I worked on top of mainline kernel v6.8-rc1. Then, I also ensured that
the series
).
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 536 ---
drivers/net/ethernet/ti/am65-cpsw-nuss.h | 13 +
2 files changed, 499 insertions(+), 50 deletions(-)
diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
b/drivers/net/ethernet/ti
This patch introduces a member and the related accessors which can be
used to store descriptor specific additional information. This member
can store, for instance, an ID to differentiate a skb TX buffer type
from a xdpf TX buffer type.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3
This patch adds accessors for desc_size and cpumem members. They may be
used, for instance, to compute a descriptor index.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3-cppi-desc-pool.c | 12
drivers/net/ethernet/ti/k3-cppi-desc-pool.h | 2 ++
2 files changed, 14
better performance.
Signed-off-by: Julien Panis
---
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
On 3/5/24 17:43, Andrew Lunn wrote:
3) From 2), am65_cpsw_alloc_skb() function removed and replaced by
netdev_alloc_skb_ip_align(), as used by the driver before -> res = 506
Conclusion: Here is where the loss comes from.
IOW, My am65_cpsw_alloc_skb() function is not good.
Initially, I mainly
On 3/5/24 14:28, Andrew Lunn wrote:
On Tue, Mar 05, 2024 at 11:46:00AM +0100, Julien Panis wrote:
On 3/1/24 17:38, Andrew Lunn wrote:
On Fri, Mar 01, 2024 at 04:02:53PM +0100, Julien Panis wrote:
This patch adds XDP (eXpress Data Path) support to TI AM65 CPSW
Ethernet driver. The following
model is used to get better performance.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 533 ---
drivers/net/ethernet/ti/am65-cpsw-nuss.h | 13 +
2 files changed, 496 insertions(+), 50 deletions(-)
diff --git a/drivers/net/ethernet/ti
This patch introduces a member and the related accessors which can be
used to store descriptor specific additional information. This member
can store, for instance, an ID to differentiate a skb TX buffer type
from a xdpf TX buffer type.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3
This patch adds accessors for desc_size and cpumem members. They may be
used, for instance, to compute a descriptor index.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3-cppi-desc-pool.c | 12
drivers/net/ethernet/ti/k3-cppi-desc-pool.h | 2 ++
2 files changed, 14
age pool -> 442 MBits/sec
-> So, ~ 10% worse with page pool here.
Note that the page pool 'dma_dir' parameter is set as DMA_BIDIRECTIONAL
because eth0, for instance, could get an XDP program attached while eth1
would not.
Signed-off-by: Julien Panis
---
Changes in v3:
- Fix a potential issu
On 3/1/24 17:38, Andrew Lunn wrote:
On Fri, Mar 01, 2024 at 04:02:53PM +0100, Julien Panis wrote:
This patch adds XDP (eXpress Data Path) support to TI AM65 CPSW
Ethernet driver. The following features are implemented:
- NETDEV_XDP_ACT_BASIC (XDP_PASS, XDP_TX, XDP_DROP, XDP_ABORTED
On 3/1/24 17:38, Andrew Lunn wrote:
On Fri, Mar 01, 2024 at 04:02:53PM +0100, Julien Panis wrote:
This patch adds XDP (eXpress Data Path) support to TI AM65 CPSW
Ethernet driver. The following features are implemented:
- NETDEV_XDP_ACT_BASIC (XDP_PASS, XDP_TX, XDP_DROP, XDP_ABORTED
model is used to get better performance.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 490 ---
drivers/net/ethernet/ti/am65-cpsw-nuss.h | 13 +
2 files changed, 455 insertions(+), 48 deletions(-)
diff --git a/drivers/net/ethernet/ti
This patch adds accessors for desc_size and cpumem members. They may be
necessary, for instance, to compute a page pool page index.
Signed-off-by: Julien Panis
---
drivers/net/ethernet/ti/k3-cppi-desc-pool.c | 12
drivers/net/ethernet/ti/k3-cppi-desc-pool.h | 2 ++
2 files changed
better performance.
Signed-off-by: Julien Panis
---
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
On 2/29/24 17:46, Andrew Lunn wrote:
On Thu, Feb 29, 2024 at 05:19:44PM +0100, Julien Panis wrote:
On 2/27/24 00:18, Andrew Lunn wrote:
+static struct sk_buff *am65_cpsw_alloc_skb(struct net_device *ndev, unsigned
int len)
+{
+ struct page *page;
+ struct sk_buff *skb
On 2/27/24 00:18, Andrew Lunn wrote:
+static struct sk_buff *am65_cpsw_alloc_skb(struct net_device *ndev, unsigned
int len)
+{
+ struct page *page;
+ struct sk_buff *skb;
+
+ page = dev_alloc_pages(0);
You are likely to get better performance if you use the page_pool.
When
Hello Simon,
Thank you for the review.
On 2/26/24 18:25, Simon Horman wrote:
On Fri, Feb 23, 2024 at 12:01:37PM +0100, Julien Panis wrote:
This patch adds XDP (eXpress Data Path) support to TI AM65 CPSW
Ethernet driver. The following features are implemented:
- NETDEV_XDP_ACT_BASIC (XDP_PASS
-by: Julien Panis
---
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.
---
drivers/net/ethernet/ti/am65-cpsw
52 matches
Mail list logo