All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] igb: cope with large MAX_SKB_FRAGS.
@ 2024-04-23 10:24 ` Corinna Vinschen
  0 siblings, 0 replies; 12+ messages in thread
From: Corinna Vinschen @ 2024-04-23 10:24 UTC (permalink / raw)
  To: netdev, intel-wired-lan

From: Paolo Abeni <pabeni@redhat.com>

Sabrina reports that the igb driver does not cope well with large
MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
corruption on TX.

The root cause of the issue is that the driver does not take into
account properly the (possibly large) shared info size when selecting
the ring layout, and will try to fit two packets inside the same 4K
page even when the 1st fraglist will trump over the 2nd head.

Address the issue forcing the driver to fit a single packet per page,
leaving there enough room to store the (currently) largest possible
skb_shared_info.

Fixes: 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAG")
Reported-by: Jan Tluka <jtluka@redhat.com>
Reported-by: Jirka Hladky <jhladky@redhat.com>
Reported-by: Sabrina Dubroca <sd@queasysnail.net>
Tested-by: Sabrina Dubroca <sd@queasysnail.net>
Tested-by: Corinna Vinschen <vinschen@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index a3f100769e39..22fb2c322bca 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -4833,6 +4833,7 @@ static void igb_set_rx_buffer_len(struct igb_adapter *adapter,
 
 #if (PAGE_SIZE < 8192)
 	if (adapter->max_frame_size > IGB_MAX_FRAME_BUILD_SKB ||
+	    SKB_HEAD_ALIGN(adapter->max_frame_size) > (PAGE_SIZE / 2) ||
 	    rd32(E1000_RCTL) & E1000_RCTL_SBP)
 		set_ring_uses_large_buffer(rx_ring);
 #endif
-- 
2.44.0


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

* [Intel-wired-lan] [PATCH] igb: cope with large MAX_SKB_FRAGS.
@ 2024-04-23 10:24 ` Corinna Vinschen
  0 siblings, 0 replies; 12+ messages in thread
From: Corinna Vinschen @ 2024-04-23 10:24 UTC (permalink / raw)
  To: netdev, intel-wired-lan

From: Paolo Abeni <pabeni@redhat.com>

Sabrina reports that the igb driver does not cope well with large
MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
corruption on TX.

The root cause of the issue is that the driver does not take into
account properly the (possibly large) shared info size when selecting
the ring layout, and will try to fit two packets inside the same 4K
page even when the 1st fraglist will trump over the 2nd head.

Address the issue forcing the driver to fit a single packet per page,
leaving there enough room to store the (currently) largest possible
skb_shared_info.

Fixes: 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAG")
Reported-by: Jan Tluka <jtluka@redhat.com>
Reported-by: Jirka Hladky <jhladky@redhat.com>
Reported-by: Sabrina Dubroca <sd@queasysnail.net>
Tested-by: Sabrina Dubroca <sd@queasysnail.net>
Tested-by: Corinna Vinschen <vinschen@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index a3f100769e39..22fb2c322bca 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -4833,6 +4833,7 @@ static void igb_set_rx_buffer_len(struct igb_adapter *adapter,
 
 #if (PAGE_SIZE < 8192)
 	if (adapter->max_frame_size > IGB_MAX_FRAME_BUILD_SKB ||
+	    SKB_HEAD_ALIGN(adapter->max_frame_size) > (PAGE_SIZE / 2) ||
 	    rd32(E1000_RCTL) & E1000_RCTL_SBP)
 		set_ring_uses_large_buffer(rx_ring);
 #endif
-- 
2.44.0


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

* Re: [PATCH] igb: cope with large MAX_SKB_FRAGS.
  2024-04-23 10:24 ` [Intel-wired-lan] " Corinna Vinschen
@ 2024-04-23 11:25   ` Jiri Pirko
  -1 siblings, 0 replies; 12+ messages in thread
From: Jiri Pirko @ 2024-04-23 11:25 UTC (permalink / raw)
  To: Corinna Vinschen; +Cc: netdev, intel-wired-lan

Tue, Apr 23, 2024 at 12:24:46PM CEST, vinschen@redhat.com wrote:
>From: Paolo Abeni <pabeni@redhat.com>
>
>Sabrina reports that the igb driver does not cope well with large
>MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
>corruption on TX.
>
>The root cause of the issue is that the driver does not take into
>account properly the (possibly large) shared info size when selecting
>the ring layout, and will try to fit two packets inside the same 4K
>page even when the 1st fraglist will trump over the 2nd head.
>
>Address the issue forcing the driver to fit a single packet per page,
>leaving there enough room to store the (currently) largest possible
>skb_shared_info.
>
>Fixes: 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAG")
>Reported-by: Jan Tluka <jtluka@redhat.com>
>Reported-by: Jirka Hladky <jhladky@redhat.com>
>Reported-by: Sabrina Dubroca <sd@queasysnail.net>
>Tested-by: Sabrina Dubroca <sd@queasysnail.net>
>Tested-by: Corinna Vinschen <vinschen@redhat.com>
>Signed-off-by: Paolo Abeni <pabeni@redhat.com>

Reviewed-by: Jiri Pirko <jiri@nvidia.com>

Next time, please indicate target tree (net) in [patch] brackets.


>---
> drivers/net/ethernet/intel/igb/igb_main.c | 1 +
> 1 file changed, 1 insertion(+)
>
>diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
>index a3f100769e39..22fb2c322bca 100644
>--- a/drivers/net/ethernet/intel/igb/igb_main.c
>+++ b/drivers/net/ethernet/intel/igb/igb_main.c
>@@ -4833,6 +4833,7 @@ static void igb_set_rx_buffer_len(struct igb_adapter *adapter,
> 
> #if (PAGE_SIZE < 8192)
> 	if (adapter->max_frame_size > IGB_MAX_FRAME_BUILD_SKB ||
>+	    SKB_HEAD_ALIGN(adapter->max_frame_size) > (PAGE_SIZE / 2) ||
> 	    rd32(E1000_RCTL) & E1000_RCTL_SBP)
> 		set_ring_uses_large_buffer(rx_ring);
> #endif
>-- 
>2.44.0
>
>

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

* Re: [Intel-wired-lan] [PATCH] igb: cope with large MAX_SKB_FRAGS.
@ 2024-04-23 11:25   ` Jiri Pirko
  0 siblings, 0 replies; 12+ messages in thread
From: Jiri Pirko @ 2024-04-23 11:25 UTC (permalink / raw)
  To: Corinna Vinschen; +Cc: netdev, intel-wired-lan

Tue, Apr 23, 2024 at 12:24:46PM CEST, vinschen@redhat.com wrote:
>From: Paolo Abeni <pabeni@redhat.com>
>
>Sabrina reports that the igb driver does not cope well with large
>MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
>corruption on TX.
>
>The root cause of the issue is that the driver does not take into
>account properly the (possibly large) shared info size when selecting
>the ring layout, and will try to fit two packets inside the same 4K
>page even when the 1st fraglist will trump over the 2nd head.
>
>Address the issue forcing the driver to fit a single packet per page,
>leaving there enough room to store the (currently) largest possible
>skb_shared_info.
>
>Fixes: 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAG")
>Reported-by: Jan Tluka <jtluka@redhat.com>
>Reported-by: Jirka Hladky <jhladky@redhat.com>
>Reported-by: Sabrina Dubroca <sd@queasysnail.net>
>Tested-by: Sabrina Dubroca <sd@queasysnail.net>
>Tested-by: Corinna Vinschen <vinschen@redhat.com>
>Signed-off-by: Paolo Abeni <pabeni@redhat.com>

Reviewed-by: Jiri Pirko <jiri@nvidia.com>

Next time, please indicate target tree (net) in [patch] brackets.


>---
> drivers/net/ethernet/intel/igb/igb_main.c | 1 +
> 1 file changed, 1 insertion(+)
>
>diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
>index a3f100769e39..22fb2c322bca 100644
>--- a/drivers/net/ethernet/intel/igb/igb_main.c
>+++ b/drivers/net/ethernet/intel/igb/igb_main.c
>@@ -4833,6 +4833,7 @@ static void igb_set_rx_buffer_len(struct igb_adapter *adapter,
> 
> #if (PAGE_SIZE < 8192)
> 	if (adapter->max_frame_size > IGB_MAX_FRAME_BUILD_SKB ||
>+	    SKB_HEAD_ALIGN(adapter->max_frame_size) > (PAGE_SIZE / 2) ||
> 	    rd32(E1000_RCTL) & E1000_RCTL_SBP)
> 		set_ring_uses_large_buffer(rx_ring);
> #endif
>-- 
>2.44.0
>
>

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

* Re: [PATCH] igb: cope with large MAX_SKB_FRAGS.
  2024-04-23 10:24 ` [Intel-wired-lan] " Corinna Vinschen
@ 2024-04-23 11:26   ` Jiri Pirko
  -1 siblings, 0 replies; 12+ messages in thread
From: Jiri Pirko @ 2024-04-23 11:26 UTC (permalink / raw)
  To: Corinna Vinschen; +Cc: netdev, intel-wired-lan

Tue, Apr 23, 2024 at 12:24:46PM CEST, vinschen@redhat.com wrote:
>From: Paolo Abeni <pabeni@redhat.com>
>
>Sabrina reports that the igb driver does not cope well with large
>MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
>corruption on TX.
>
>The root cause of the issue is that the driver does not take into
>account properly the (possibly large) shared info size when selecting
>the ring layout, and will try to fit two packets inside the same 4K
>page even when the 1st fraglist will trump over the 2nd head.
>
>Address the issue forcing the driver to fit a single packet per page,
>leaving there enough room to store the (currently) largest possible
>skb_shared_info.
>
>Fixes: 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAG")
>Reported-by: Jan Tluka <jtluka@redhat.com>
>Reported-by: Jirka Hladky <jhladky@redhat.com>
>Reported-by: Sabrina Dubroca <sd@queasysnail.net>
>Tested-by: Sabrina Dubroca <sd@queasysnail.net>
>Tested-by: Corinna Vinschen <vinschen@redhat.com>
>Signed-off-by: Paolo Abeni <pabeni@redhat.com>
>---
> drivers/net/ethernet/intel/igb/igb_main.c | 1 +

Also, please use get_maintainer.pl script to get cclist.

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

* Re: [Intel-wired-lan] [PATCH] igb: cope with large MAX_SKB_FRAGS.
@ 2024-04-23 11:26   ` Jiri Pirko
  0 siblings, 0 replies; 12+ messages in thread
From: Jiri Pirko @ 2024-04-23 11:26 UTC (permalink / raw)
  To: Corinna Vinschen; +Cc: netdev, intel-wired-lan

Tue, Apr 23, 2024 at 12:24:46PM CEST, vinschen@redhat.com wrote:
>From: Paolo Abeni <pabeni@redhat.com>
>
>Sabrina reports that the igb driver does not cope well with large
>MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
>corruption on TX.
>
>The root cause of the issue is that the driver does not take into
>account properly the (possibly large) shared info size when selecting
>the ring layout, and will try to fit two packets inside the same 4K
>page even when the 1st fraglist will trump over the 2nd head.
>
>Address the issue forcing the driver to fit a single packet per page,
>leaving there enough room to store the (currently) largest possible
>skb_shared_info.
>
>Fixes: 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAG")
>Reported-by: Jan Tluka <jtluka@redhat.com>
>Reported-by: Jirka Hladky <jhladky@redhat.com>
>Reported-by: Sabrina Dubroca <sd@queasysnail.net>
>Tested-by: Sabrina Dubroca <sd@queasysnail.net>
>Tested-by: Corinna Vinschen <vinschen@redhat.com>
>Signed-off-by: Paolo Abeni <pabeni@redhat.com>
>---
> drivers/net/ethernet/intel/igb/igb_main.c | 1 +

Also, please use get_maintainer.pl script to get cclist.

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

* Re: [Intel-wired-lan] [PATCH] igb: cope with large MAX_SKB_FRAGS.
  2024-04-23 10:24 ` [Intel-wired-lan] " Corinna Vinschen
                   ` (2 preceding siblings ...)
  (?)
@ 2024-04-23 11:52 ` Paul Menzel
  2024-04-23 13:52   ` Corinna Vinschen
  -1 siblings, 1 reply; 12+ messages in thread
From: Paul Menzel @ 2024-04-23 11:52 UTC (permalink / raw)
  To: Corinna Vinschen; +Cc: netdev, intel-wired-lan

Dear Corinna,


Thank you for the patch.


Am 23.04.24 um 12:24 schrieb Corinna Vinschen:
> From: Paolo Abeni <pabeni@redhat.com>

It’d be great if you removed the trailing dot/period in the commit 
message summary.

> Sabrina reports that the igb driver does not cope well with large
> MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
> corruption on TX.
> 
> The root cause of the issue is that the driver does not take into
> account properly the (possibly large) shared info size when selecting
> the ring layout, and will try to fit two packets inside the same 4K
> page even when the 1st fraglist will trump over the 2nd head.
> 
> Address the issue forcing the driver to fit a single packet per page,
> leaving there enough room to store the (currently) largest possible
> skb_shared_info.

If you have a reproducer for this, it’d be great if you could document 
it in the commit message.

> Fixes: 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAG")
> Reported-by: Jan Tluka <jtluka@redhat.com>
> Reported-by: Jirka Hladky <jhladky@redhat.com>
> Reported-by: Sabrina Dubroca <sd@queasysnail.net>
> Tested-by: Sabrina Dubroca <sd@queasysnail.net>
> Tested-by: Corinna Vinschen <vinschen@redhat.com>
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> ---
>   drivers/net/ethernet/intel/igb/igb_main.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> index a3f100769e39..22fb2c322bca 100644
> --- a/drivers/net/ethernet/intel/igb/igb_main.c
> +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> @@ -4833,6 +4833,7 @@ static void igb_set_rx_buffer_len(struct igb_adapter *adapter,
>   
>   #if (PAGE_SIZE < 8192)
>   	if (adapter->max_frame_size > IGB_MAX_FRAME_BUILD_SKB ||
> +	    SKB_HEAD_ALIGN(adapter->max_frame_size) > (PAGE_SIZE / 2) ||
>   	    rd32(E1000_RCTL) & E1000_RCTL_SBP)
>   		set_ring_uses_large_buffer(rx_ring);
>   #endif


Kind regards,

Paul

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

* Re: [Intel-wired-lan] [PATCH] igb: cope with large MAX_SKB_FRAGS.
  2024-04-23 11:52 ` Paul Menzel
@ 2024-04-23 13:52   ` Corinna Vinschen
  0 siblings, 0 replies; 12+ messages in thread
From: Corinna Vinschen @ 2024-04-23 13:52 UTC (permalink / raw)
  To: Paul Menzel; +Cc: netdev, intel-wired-lan

Hi Paul,

On Apr 23 13:52, Paul Menzel wrote:
> Dear Corinna,
> 
> 
> Thank you for the patch.
> 
> 
> Am 23.04.24 um 12:24 schrieb Corinna Vinschen:
> > From: Paolo Abeni <pabeni@redhat.com>
> 
> It’d be great if you removed the trailing dot/period in the commit message
> summary.
> 
> > Sabrina reports that the igb driver does not cope well with large
> > MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
> > corruption on TX.
> > 
> > The root cause of the issue is that the driver does not take into
> > account properly the (possibly large) shared info size when selecting
> > the ring layout, and will try to fit two packets inside the same 4K
> > page even when the 1st fraglist will trump over the 2nd head.
> > 
> > Address the issue forcing the driver to fit a single packet per page,
> > leaving there enough room to store the (currently) largest possible
> > skb_shared_info.
> 
> If you have a reproducer for this, it’d be great if you could document it in
> the commit message.

I fixed the trailing dot and added a reproducer.

Thanks,
Corinna


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

* Re: [Intel-wired-lan] [PATCH] igb: cope with large MAX_SKB_FRAGS.
  2024-04-23 11:26   ` [Intel-wired-lan] " Jiri Pirko
@ 2024-04-23 13:54     ` Corinna Vinschen
  -1 siblings, 0 replies; 12+ messages in thread
From: Corinna Vinschen @ 2024-04-23 13:54 UTC (permalink / raw)
  To: Jiri Pirko; +Cc: netdev, intel-wired-lan

Hi Jiri,

On Apr 23 13:26, Jiri Pirko wrote:
> Tue, Apr 23, 2024 at 12:24:46PM CEST, vinschen@redhat.com wrote:
> >From: Paolo Abeni <pabeni@redhat.com>
> >
> >Sabrina reports that the igb driver does not cope well with large
> >MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
> >corruption on TX.
> >
> >The root cause of the issue is that the driver does not take into
> >account properly the (possibly large) shared info size when selecting
> >the ring layout, and will try to fit two packets inside the same 4K
> >page even when the 1st fraglist will trump over the 2nd head.
> >
> >Address the issue forcing the driver to fit a single packet per page,
> >leaving there enough room to store the (currently) largest possible
> >skb_shared_info.
> >
> >Fixes: 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAG")
> >Reported-by: Jan Tluka <jtluka@redhat.com>
> >Reported-by: Jirka Hladky <jhladky@redhat.com>
> >Reported-by: Sabrina Dubroca <sd@queasysnail.net>
> >Tested-by: Sabrina Dubroca <sd@queasysnail.net>
> >Tested-by: Corinna Vinschen <vinschen@redhat.com>
> >Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> >---
> > drivers/net/ethernet/intel/igb/igb_main.c | 1 +
> 
> Also, please use get_maintainer.pl script to get cclist.

done and done in v2 (for which I forgot the "in-reply-to" now, d'uh)

Thanks,
Corinna


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

* Re: [PATCH] igb: cope with large MAX_SKB_FRAGS.
@ 2024-04-23 13:54     ` Corinna Vinschen
  0 siblings, 0 replies; 12+ messages in thread
From: Corinna Vinschen @ 2024-04-23 13:54 UTC (permalink / raw)
  To: Jiri Pirko; +Cc: netdev, intel-wired-lan

Hi Jiri,

On Apr 23 13:26, Jiri Pirko wrote:
> Tue, Apr 23, 2024 at 12:24:46PM CEST, vinschen@redhat.com wrote:
> >From: Paolo Abeni <pabeni@redhat.com>
> >
> >Sabrina reports that the igb driver does not cope well with large
> >MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
> >corruption on TX.
> >
> >The root cause of the issue is that the driver does not take into
> >account properly the (possibly large) shared info size when selecting
> >the ring layout, and will try to fit two packets inside the same 4K
> >page even when the 1st fraglist will trump over the 2nd head.
> >
> >Address the issue forcing the driver to fit a single packet per page,
> >leaving there enough room to store the (currently) largest possible
> >skb_shared_info.
> >
> >Fixes: 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAG")
> >Reported-by: Jan Tluka <jtluka@redhat.com>
> >Reported-by: Jirka Hladky <jhladky@redhat.com>
> >Reported-by: Sabrina Dubroca <sd@queasysnail.net>
> >Tested-by: Sabrina Dubroca <sd@queasysnail.net>
> >Tested-by: Corinna Vinschen <vinschen@redhat.com>
> >Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> >---
> > drivers/net/ethernet/intel/igb/igb_main.c | 1 +
> 
> Also, please use get_maintainer.pl script to get cclist.

done and done in v2 (for which I forgot the "in-reply-to" now, d'uh)

Thanks,
Corinna


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

* Re: [PATCH] igb: cope with large MAX_SKB_FRAGS.
  2024-04-23 13:54     ` Corinna Vinschen
@ 2024-04-23 15:30       ` Jiri Pirko
  -1 siblings, 0 replies; 12+ messages in thread
From: Jiri Pirko @ 2024-04-23 15:30 UTC (permalink / raw)
  To: netdev, intel-wired-lan

Tue, Apr 23, 2024 at 03:54:05PM CEST, vinschen@redhat.com wrote:
>Hi Jiri,
>
>On Apr 23 13:26, Jiri Pirko wrote:
>> Tue, Apr 23, 2024 at 12:24:46PM CEST, vinschen@redhat.com wrote:
>> >From: Paolo Abeni <pabeni@redhat.com>
>> >
>> >Sabrina reports that the igb driver does not cope well with large
>> >MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
>> >corruption on TX.
>> >
>> >The root cause of the issue is that the driver does not take into
>> >account properly the (possibly large) shared info size when selecting
>> >the ring layout, and will try to fit two packets inside the same 4K
>> >page even when the 1st fraglist will trump over the 2nd head.
>> >
>> >Address the issue forcing the driver to fit a single packet per page,
>> >leaving there enough room to store the (currently) largest possible
>> >skb_shared_info.
>> >
>> >Fixes: 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAG")
>> >Reported-by: Jan Tluka <jtluka@redhat.com>
>> >Reported-by: Jirka Hladky <jhladky@redhat.com>
>> >Reported-by: Sabrina Dubroca <sd@queasysnail.net>
>> >Tested-by: Sabrina Dubroca <sd@queasysnail.net>
>> >Tested-by: Corinna Vinschen <vinschen@redhat.com>
>> >Signed-off-by: Paolo Abeni <pabeni@redhat.com>
>> >---
>> > drivers/net/ethernet/intel/igb/igb_main.c | 1 +
>> 
>> Also, please use get_maintainer.pl script to get cclist.
>
>done and done in v2 (for which I forgot the "in-reply-to" now, d'uh)

In-reply-to is not needed. Send each V to separate thread.

>
>Thanks,
>Corinna
>
>

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

* Re: [Intel-wired-lan] [PATCH] igb: cope with large MAX_SKB_FRAGS.
@ 2024-04-23 15:30       ` Jiri Pirko
  0 siblings, 0 replies; 12+ messages in thread
From: Jiri Pirko @ 2024-04-23 15:30 UTC (permalink / raw)
  To: netdev, intel-wired-lan

Tue, Apr 23, 2024 at 03:54:05PM CEST, vinschen@redhat.com wrote:
>Hi Jiri,
>
>On Apr 23 13:26, Jiri Pirko wrote:
>> Tue, Apr 23, 2024 at 12:24:46PM CEST, vinschen@redhat.com wrote:
>> >From: Paolo Abeni <pabeni@redhat.com>
>> >
>> >Sabrina reports that the igb driver does not cope well with large
>> >MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload
>> >corruption on TX.
>> >
>> >The root cause of the issue is that the driver does not take into
>> >account properly the (possibly large) shared info size when selecting
>> >the ring layout, and will try to fit two packets inside the same 4K
>> >page even when the 1st fraglist will trump over the 2nd head.
>> >
>> >Address the issue forcing the driver to fit a single packet per page,
>> >leaving there enough room to store the (currently) largest possible
>> >skb_shared_info.
>> >
>> >Fixes: 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAG")
>> >Reported-by: Jan Tluka <jtluka@redhat.com>
>> >Reported-by: Jirka Hladky <jhladky@redhat.com>
>> >Reported-by: Sabrina Dubroca <sd@queasysnail.net>
>> >Tested-by: Sabrina Dubroca <sd@queasysnail.net>
>> >Tested-by: Corinna Vinschen <vinschen@redhat.com>
>> >Signed-off-by: Paolo Abeni <pabeni@redhat.com>
>> >---
>> > drivers/net/ethernet/intel/igb/igb_main.c | 1 +
>> 
>> Also, please use get_maintainer.pl script to get cclist.
>
>done and done in v2 (for which I forgot the "in-reply-to" now, d'uh)

In-reply-to is not needed. Send each V to separate thread.

>
>Thanks,
>Corinna
>
>

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

end of thread, other threads:[~2024-04-23 15:30 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-23 10:24 [PATCH] igb: cope with large MAX_SKB_FRAGS Corinna Vinschen
2024-04-23 10:24 ` [Intel-wired-lan] " Corinna Vinschen
2024-04-23 11:25 ` Jiri Pirko
2024-04-23 11:25   ` [Intel-wired-lan] " Jiri Pirko
2024-04-23 11:26 ` Jiri Pirko
2024-04-23 11:26   ` [Intel-wired-lan] " Jiri Pirko
2024-04-23 13:54   ` Corinna Vinschen
2024-04-23 13:54     ` Corinna Vinschen
2024-04-23 15:30     ` Jiri Pirko
2024-04-23 15:30       ` [Intel-wired-lan] " Jiri Pirko
2024-04-23 11:52 ` Paul Menzel
2024-04-23 13:52   ` Corinna Vinschen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.