[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<AM7PR04MB7142C31C1EA26B48E92042C596EBA@AM7PR04MB7142.eurprd04.prod.outlook.com>
Date: Tue, 14 Oct 2025 09:32:30 +0000
From: Claudiu Manoil <claudiu.manoil@....com>
To: Wei Fang <wei.fang@....com>, Vladimir Oltean <vladimir.oltean@....com>
CC: Clark Wang <xiaoning.wang@....com>, "andrew+netdev@...n.ch"
<andrew+netdev@...n.ch>, "davem@...emloft.net" <davem@...emloft.net>,
"edumazet@...gle.com" <edumazet@...gle.com>, "kuba@...nel.org"
<kuba@...nel.org>, "pabeni@...hat.com" <pabeni@...hat.com>, Frank Li
<frank.li@....com>, "imx@...ts.linux.dev" <imx@...ts.linux.dev>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH net] net: enetc: correct the value of ENETC_RXB_TRUESIZE
> -----Original Message-----
> From: Wei Fang <wei.fang@....com>
> Sent: Tuesday, October 14, 2025 5:20 AM
[...]
> Subject: RE: [PATCH net] net: enetc: correct the value of ENETC_RXB_TRUESIZE
>
>
>
> Best Regards,
> Wei Fang
>
> > -----Original Message-----
> > From: Claudiu Manoil <claudiu.manoil@....com>
> > Sent: 2025年10月11日 0:24
[...]
> > Subject: RE: [PATCH net] net: enetc: correct the value of
> > ENETC_RXB_TRUESIZE
> >
> >
> >
> > > -----Original Message-----
> > > From: Vladimir Oltean <vladimir.oltean@....com>
> > > Sent: Friday, October 10, 2025 3:49 PM
[...]
> > > Subject: Re: [PATCH net] net: enetc: correct the value of
> > ENETC_RXB_TRUESIZE
> > >
> > > On Fri, Oct 10, 2025 at 05:26:08PM +0800, Wei Fang wrote:
> > > > ENETC_RXB_TRUESIZE indicates the size of half a page, but the page
> > > > size is adjustable, for ARM64 platform, the PAGE_SIZE can be 4K,
> > > > 16K and 64K, so a fixed value '2048' is not correct when the
> > > > PAGE_SIZE is 16K or 64K.
> > > >
> > > > Fixes: d4fd0404c1c9 ("enetc: Introduce basic PF and VF ENETC
> > > > ethernet
> > > > drivers")
> > > > Signed-off-by: Wei Fang <wei.fang@....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
> > > >
> > >
> > > I wonder why 2048 was preferred, even though PAGE_SIZE >> 1 was in a
> > > comment.
> > > Claudiu, do you remember?
> >
> > Initial driver implementation for enetcv1 was bound to 4k pages, I
> > need to recheck why and get back to you.
> >
>
> Any updates?
Reviewed RXB_TRUESIZE usage, and confirmed that it's not only used for building
skbs and in the page halves flipping mechanism, but this setting is also accordingly
propagated to the hardware level Rx buffer size configuration (e.g. for Rx S/G).
The allowed h/w Rx buffer size can be up to 64KB, so we would be safe even with
128K pages.
The 'PAGE_SIZE >> 1' comment is actually a TODO item, and I crudely limited
TRUESIZE to 2K to enforce 4K pages in the initial driver (i.e. for simplification).
So, pls go ahead with the configurable RX_TRUESIZE, and note that this opens up
the driver to new usage / performance scenarios, and user configurable Rx buffer
sizes.
Thanks,
Claudiu
Powered by blists - more mailing lists