* [PATCH v2 net] net: enetc: correct the value of ENETC_RXB_TRUESIZE
@ 2025-10-16 8:01 Wei Fang
2025-10-17 7:22 ` Claudiu Manoil
2025-10-18 0:00 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 3+ messages in thread
From: Wei Fang @ 2025-10-16 8:01 UTC (permalink / raw)
To: claudiu.manoil, vladimir.oltean, xiaoning.wang, andrew+netdev,
davem, edumazet, kuba, pabeni, Frank.Li
Cc: imx, netdev, linux-kernel
The ENETC RX ring uses the page halves flipping mechanism, each page is
split into two halves for the RX ring to use. And ENETC_RXB_TRUESIZE is
defined to 2048 to indicate the size of half a page. However, the page
size is configurable, for ARM64 platform, PAGE_SIZE is default to 4K,
but it could be configured to 16K or 64K.
When PAGE_SIZE is set to 16K or 64K, ENETC_RXB_TRUESIZE is not correct,
and the RX ring will always use the first half of the page. This is not
consistent with the description in the relevant kernel doc and commit
messages.
This issue is invisible in most cases, but if users want to increase
PAGE_SIZE to receive a Jumbo frame with a single buffer for some use
cases, it will not work as expected, because the buffer size of each
RX BD is fixed to 2048 bytes.
Based on the above two points, we expect to correct ENETC_RXB_TRUESIZE
to (PAGE_SIZE >> 1), as described in the comment.
Fixes: d4fd0404c1c9 ("enetc: Introduce basic PF and VF ENETC ethernet drivers")
Signed-off-by: Wei Fang <wei.fang@nxp.com>
---
v2: Refine the commit message
v1 link: https://lore.kernel.org/imx/20251010092608.2520561-1-wei.fang@nxp.com/
---
drivers/net/ethernet/freescale/enetc/enetc.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/freescale/enetc/enetc.h b/drivers/net/ethernet/freescale/enetc/enetc.h
index 0ec010a7d640..f279fa597991 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc.h
+++ b/drivers/net/ethernet/freescale/enetc/enetc.h
@@ -76,7 +76,7 @@ struct enetc_lso_t {
#define ENETC_LSO_MAX_DATA_LEN SZ_256K
#define ENETC_RX_MAXFRM_SIZE ENETC_MAC_MAXFRM_SIZE
-#define ENETC_RXB_TRUESIZE 2048 /* PAGE_SIZE >> 1 */
+#define ENETC_RXB_TRUESIZE (PAGE_SIZE >> 1)
#define ENETC_RXB_PAD NET_SKB_PAD /* add extra space if needed */
#define ENETC_RXB_DMA_SIZE \
(SKB_WITH_OVERHEAD(ENETC_RXB_TRUESIZE) - ENETC_RXB_PAD)
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* RE: [PATCH v2 net] net: enetc: correct the value of ENETC_RXB_TRUESIZE
2025-10-16 8:01 [PATCH v2 net] net: enetc: correct the value of ENETC_RXB_TRUESIZE Wei Fang
@ 2025-10-17 7:22 ` Claudiu Manoil
2025-10-18 0:00 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: Claudiu Manoil @ 2025-10-17 7:22 UTC (permalink / raw)
To: Wei Fang, Vladimir Oltean, Clark Wang, andrew+netdev@lunn.ch,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, Frank Li
Cc: imx@lists.linux.dev, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
> -----Original Message-----
> From: Wei Fang <wei.fang@nxp.com>
> Sent: Thursday, October 16, 2025 11:02 AM
[...]
> Subject: [PATCH v2 net] net: enetc: correct the value of ENETC_RXB_TRUESIZE
>
> The ENETC RX ring uses the page halves flipping mechanism, each page is
> split into two halves for the RX ring to use. And ENETC_RXB_TRUESIZE is
> defined to 2048 to indicate the size of half a page. However, the page
> size is configurable, for ARM64 platform, PAGE_SIZE is default to 4K,
> but it could be configured to 16K or 64K.
>
> When PAGE_SIZE is set to 16K or 64K, ENETC_RXB_TRUESIZE is not correct,
> and the RX ring will always use the first half of the page. This is not
> consistent with the description in the relevant kernel doc and commit
> messages.
>
> This issue is invisible in most cases, but if users want to increase
> PAGE_SIZE to receive a Jumbo frame with a single buffer for some use
> cases, it will not work as expected, because the buffer size of each
> RX BD is fixed to 2048 bytes.
>
> Based on the above two points, we expect to correct ENETC_RXB_TRUESIZE
> to (PAGE_SIZE >> 1), as described in the comment.
>
> Fixes: d4fd0404c1c9 ("enetc: Introduce basic PF and VF ENETC ethernet
> drivers")
> Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH v2 net] net: enetc: correct the value of ENETC_RXB_TRUESIZE
2025-10-16 8:01 [PATCH v2 net] net: enetc: correct the value of ENETC_RXB_TRUESIZE Wei Fang
2025-10-17 7:22 ` Claudiu Manoil
@ 2025-10-18 0:00 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-10-18 0:00 UTC (permalink / raw)
To: Wei Fang
Cc: claudiu.manoil, vladimir.oltean, xiaoning.wang, andrew+netdev,
davem, edumazet, kuba, pabeni, Frank.Li, imx, netdev,
linux-kernel
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Thu, 16 Oct 2025 16:01:31 +0800 you wrote:
> The ENETC RX ring uses the page halves flipping mechanism, each page is
> split into two halves for the RX ring to use. And ENETC_RXB_TRUESIZE is
> defined to 2048 to indicate the size of half a page. However, the page
> size is configurable, for ARM64 platform, PAGE_SIZE is default to 4K,
> but it could be configured to 16K or 64K.
>
> When PAGE_SIZE is set to 16K or 64K, ENETC_RXB_TRUESIZE is not correct,
> and the RX ring will always use the first half of the page. This is not
> consistent with the description in the relevant kernel doc and commit
> messages.
>
> [...]
Here is the summary with links:
- [v2,net] net: enetc: correct the value of ENETC_RXB_TRUESIZE
https://git.kernel.org/netdev/net/c/e59bc32df2e9
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-10-18 0:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-16 8:01 [PATCH v2 net] net: enetc: correct the value of ENETC_RXB_TRUESIZE Wei Fang
2025-10-17 7:22 ` Claudiu Manoil
2025-10-18 0:00 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox