linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] net: fec: change the default rx copybreak length to 1518
@ 2022-08-19  9:00 wei.fang
  2022-08-19 15:57 ` Andrew Lunn
  0 siblings, 1 reply; 3+ messages in thread
From: wei.fang @ 2022-08-19  9:00 UTC (permalink / raw)
  To: davem, edumazet, kuba, pabeni; +Cc: netdev, linux-kernel

From: Wei Fang <wei.fang@nxp.com>

Set the default rx copybreak value to 1518 so that improve the
performance when SMMU is enabled. User can change the copybreak
length in dynamically by ethtool.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
---
 drivers/net/ethernet/freescale/fec_main.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index e8e2aa1e7f01..f5f34cdba131 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -299,7 +299,15 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address");
 #define FEC_WOL_FLAG_ENABLE		(0x1 << 1)
 #define FEC_WOL_FLAG_SLEEP_ON		(0x1 << 2)
 
-#define COPYBREAK_DEFAULT	256
+/* By default, set the copybreak to 1518,
+ * then the RX path always keep DMA memory unchanged, and
+ * allocate one new skb and copy DMA memory data to the new skb
+ * buffer, which can improve the performance when SMMU is enabled.
+ *
+ * The driver support .set_tunable() interface for ethtool, user
+ * can dynamicly change the copybreak value.
+ */
+#define COPYBREAK_DEFAULT	1518
 
 /* Max number of allowed TCP segments for software TSO */
 #define FEC_MAX_TSO_SEGS	100
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net] net: fec: change the default rx copybreak length to 1518
  2022-08-19  9:00 [PATCH net] net: fec: change the default rx copybreak length to 1518 wei.fang
@ 2022-08-19 15:57 ` Andrew Lunn
  2022-08-19 22:04   ` Jakub Kicinski
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Lunn @ 2022-08-19 15:57 UTC (permalink / raw)
  To: wei.fang; +Cc: davem, edumazet, kuba, pabeni, netdev, linux-kernel

On Fri, Aug 19, 2022 at 05:00:41PM +0800, wei.fang@nxp.com wrote:
> From: Wei Fang <wei.fang@nxp.com>
> 
> Set the default rx copybreak value to 1518 so that improve the
> performance when SMMU is enabled. User can change the copybreak
> length in dynamically by ethtool.

Please provide some benchmark for this. And include a range of SoCs
which include the FEC. Maybe this helps for the platform you are
testing on, but is bad for imx25, Vybrid etc?

> + * The driver support .set_tunable() interface for ethtool, user
> + * can dynamicly change the copybreak value.
> + */

Which also means you could change it for your platform. So a patch
like this needs justifying.

     Andrew

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net] net: fec: change the default rx copybreak length to 1518
  2022-08-19 15:57 ` Andrew Lunn
@ 2022-08-19 22:04   ` Jakub Kicinski
  0 siblings, 0 replies; 3+ messages in thread
From: Jakub Kicinski @ 2022-08-19 22:04 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: wei.fang, davem, edumazet, pabeni, netdev, linux-kernel

On Fri, 19 Aug 2022 17:57:07 +0200 Andrew Lunn wrote:
> On Fri, Aug 19, 2022 at 05:00:41PM +0800, wei.fang@nxp.com wrote:
> > Set the default rx copybreak value to 1518 so that improve the
> > performance when SMMU is enabled. User can change the copybreak
> > length in dynamically by ethtool.  
> 
> Please provide some benchmark for this. And include a range of SoCs
> which include the FEC. Maybe this helps for the platform you are
> testing on, but is bad for imx25, Vybrid etc?
> 
> > + * The driver support .set_tunable() interface for ethtool, user
> > + * can dynamicly change the copybreak value.
> > + */  
> 
> Which also means you could change it for your platform. So a patch
> like this needs justifying.

Fully agreed, perhaps if the DMA mapping on the platform is extremely
slow we're better off making the platform use bounce buffers for
everything.

Another though is that you can try to manually sync only the parts 
of the buffers that the device actually touched instead of full 2kB,
and tell the DMA core to skip the sync of the full buffer.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-08-19 22:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-19  9:00 [PATCH net] net: fec: change the default rx copybreak length to 1518 wei.fang
2022-08-19 15:57 ` Andrew Lunn
2022-08-19 22:04   ` Jakub Kicinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).