Netdev List
 help / color / mirror / Atom feed
* [PATCH net-next v2] openvswitch: raise internal port TSO limit
@ 2026-09-16  6:58 Wang Zhan
  2026-09-16  9:37 ` Eelco Chaudron
  2026-09-17 12:20 ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 5+ messages in thread
From: Wang Zhan @ 2026-09-16  6:58 UTC (permalink / raw)
  To: netdev
  Cc: davem, edumazet, kuba, pabeni, horms, keyong.sun, Ilya Maximets,
	Aaron Conole, Eelco Chaudron, dev, Wang Zhan

Set the internal port TSO limit to GSO_MAX_SIZE (512 KB), as for
loopback and veth. This allows the admin/user to set a GSO limit up to
this value, to use BIG TCP for traffic routed through the internal port.

Only the capability limit changes: the IPv4 and IPv6 GSO and GRO limits
remain at 64 KiB until changed by the administrator.

Validation used a same-host test with a temporary OVS bridge, a veth pair,
and a network namespace:

  TCP client -> OVS internal -> OVS bridge -> veth -> TCP server

The veth endpoints were BIG TCP capable throughout the test, and only the
OVS internal port limits changed between 64 KiB and 524280 bytes. A single
iperf3 3.19 TCP flow, run separately over IPv4 and IPv6 with six
alternating runs per state (`-t 15 -O 5`, fixed CPU affinity and port
tuple), increased throughput by 18.1% for IPv4 and 34.7% for IPv6:

  protocol  BIG TCP off  BIG TCP on   CV off / on
  TCP/IPv4  65.567 Gbps  77.420 Gbps  1.12% / 0.37%
  TCP/IPv6  55.355 Gbps  74.568 Gbps  1.20% / 0.68%

Assisted-by: LLM
Signed-off-by: Wang Zhan <wang.zhan@smartx.com>
---

v2:
- add an empty line before netif_set_tso_max_size()
- rebase net-next/main
- cc all the maintainers
v1: https://lore.kernel.org/20260910131635.780802-1-wang.zhan@smartx.com/

---
 net/openvswitch/vport-internal_dev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c
index 125d310871e93..77a16d5ebd543 100644
--- a/net/openvswitch/vport-internal_dev.c
+++ b/net/openvswitch/vport-internal_dev.c
@@ -117,6 +117,8 @@ static void do_setup(struct net_device *netdev)
 	netdev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX;
 	netdev->hw_features = netdev->features;
 
+	netif_set_tso_max_size(netdev, GSO_MAX_SIZE);
+
 	eth_hw_addr_random(netdev);
 }
 

base-commit: 87b80c2f6b05cad9f0ff9136709c62a0f59923e3
-- 
2.47.3

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

* Re: [PATCH net-next v2] openvswitch: raise internal port TSO limit
  2026-09-16  6:58 [PATCH net-next v2] openvswitch: raise internal port TSO limit Wang Zhan
@ 2026-09-16  9:37 ` Eelco Chaudron
  2026-09-16  9:49   ` Ilya Maximets
  2026-09-17 12:20 ` patchwork-bot+netdevbpf
  1 sibling, 1 reply; 5+ messages in thread
From: Eelco Chaudron @ 2026-09-16  9:37 UTC (permalink / raw)
  To: Wang Zhan
  Cc: netdev, davem, edumazet, kuba, pabeni, horms, keyong.sun,
	Ilya Maximets, Aaron Conole, dev



On 16 Sep 2026, at 8:58, Wang Zhan wrote:

> Set the internal port TSO limit to GSO_MAX_SIZE (512 KB), as for
> loopback and veth. This allows the admin/user to set a GSO limit up to
> this value, to use BIG TCP for traffic routed through the internal port.
>
> Only the capability limit changes: the IPv4 and IPv6 GSO and GRO limits
> remain at 64 KiB until changed by the administrator.
>
> Validation used a same-host test with a temporary OVS bridge, a veth pair,
> and a network namespace:
>
>   TCP client -> OVS internal -> OVS bridge -> veth -> TCP server
>
> The veth endpoints were BIG TCP capable throughout the test, and only the
> OVS internal port limits changed between 64 KiB and 524280 bytes. A single
> iperf3 3.19 TCP flow, run separately over IPv4 and IPv6 with six
> alternating runs per state (`-t 15 -O 5`, fixed CPU affinity and port
> tuple), increased throughput by 18.1% for IPv4 and 34.7% for IPv6:
>
>   protocol  BIG TCP off  BIG TCP on   CV off / on
>   TCP/IPv4  65.567 Gbps  77.420 Gbps  1.12% / 0.37%
>   TCP/IPv6  55.355 Gbps  74.568 Gbps  1.20% / 0.68%
>
> Assisted-by: LLM

I think Ilya already mentioned this earlier, but the LLM tag means you need to fill in the LLM model name you used.

The rest looks good to me.

//Eelco

> Signed-off-by: Wang Zhan <wang.zhan@smartx.com>
> ---
>
> v2:
> - add an empty line before netif_set_tso_max_size()
> - rebase net-next/main
> - cc all the maintainers
> v1: https://lore.kernel.org/20260910131635.780802-1-wang.zhan@smartx.com/
>
> ---
>  net/openvswitch/vport-internal_dev.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c
> index 125d310871e93..77a16d5ebd543 100644
> --- a/net/openvswitch/vport-internal_dev.c
> +++ b/net/openvswitch/vport-internal_dev.c
> @@ -117,6 +117,8 @@ static void do_setup(struct net_device *netdev)
>  	netdev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX;
>  	netdev->hw_features = netdev->features;
>
> +	netif_set_tso_max_size(netdev, GSO_MAX_SIZE);
> +
>  	eth_hw_addr_random(netdev);
>  }
>
>
> base-commit: 87b80c2f6b05cad9f0ff9136709c62a0f59923e3
> -- 
> 2.47.3


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

* Re: [PATCH net-next v2] openvswitch: raise internal port TSO limit
  2026-09-16  9:37 ` Eelco Chaudron
@ 2026-09-16  9:49   ` Ilya Maximets
  2026-09-16 11:12     ` Eelco Chaudron
  0 siblings, 1 reply; 5+ messages in thread
From: Ilya Maximets @ 2026-09-16  9:49 UTC (permalink / raw)
  To: Eelco Chaudron, Wang Zhan
  Cc: netdev, davem, edumazet, kuba, pabeni, horms, keyong.sun,
	Ilya Maximets, Aaron Conole, dev

On 9/16/26 11:37 AM, Eelco Chaudron wrote:
> 
> 
> On 16 Sep 2026, at 8:58, Wang Zhan wrote:
> 
>> Set the internal port TSO limit to GSO_MAX_SIZE (512 KB), as for
>> loopback and veth. This allows the admin/user to set a GSO limit up to
>> this value, to use BIG TCP for traffic routed through the internal port.
>>
>> Only the capability limit changes: the IPv4 and IPv6 GSO and GRO limits
>> remain at 64 KiB until changed by the administrator.
>>
>> Validation used a same-host test with a temporary OVS bridge, a veth pair,
>> and a network namespace:
>>
>>   TCP client -> OVS internal -> OVS bridge -> veth -> TCP server
>>
>> The veth endpoints were BIG TCP capable throughout the test, and only the
>> OVS internal port limits changed between 64 KiB and 524280 bytes. A single
>> iperf3 3.19 TCP flow, run separately over IPv4 and IPv6 with six
>> alternating runs per state (`-t 15 -O 5`, fixed CPU affinity and port
>> tuple), increased throughput by 18.1% for IPv4 and 34.7% for IPv6:
>>
>>   protocol  BIG TCP off  BIG TCP on   CV off / on
>>   TCP/IPv4  65.567 Gbps  77.420 Gbps  1.12% / 0.37%
>>   TCP/IPv6  55.355 Gbps  74.568 Gbps  1.20% / 0.68%
>>
>> Assisted-by: LLM
> 
> I think Ilya already mentioned this earlier, but the LLM tag means you need to
> fill in the LLM model name you used.

It looks like the rules changed recently, see:
  816d9992d9ed ("coding-assistants: simplify attribution")

So that's just a new acceptable format, which is fine.

> 
> The rest looks good to me.
> 
> //Eelco
> 
>> Signed-off-by: Wang Zhan <wang.zhan@smartx.com>
>> ---
>>
>> v2:
>> - add an empty line before netif_set_tso_max_size()
>> - rebase net-next/main
>> - cc all the maintainers
>> v1: https://lore.kernel.org/20260910131635.780802-1-wang.zhan@smartx.com/
>>
>> ---
>>  net/openvswitch/vport-internal_dev.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c
>> index 125d310871e93..77a16d5ebd543 100644
>> --- a/net/openvswitch/vport-internal_dev.c
>> +++ b/net/openvswitch/vport-internal_dev.c
>> @@ -117,6 +117,8 @@ static void do_setup(struct net_device *netdev)
>>  	netdev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX;
>>  	netdev->hw_features = netdev->features;
>>
>> +	netif_set_tso_max_size(netdev, GSO_MAX_SIZE);
>> +
>>  	eth_hw_addr_random(netdev);
>>  }
Reviewed-by: Ilya Maximets <i.maximets@ovn.org>

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

* Re: [PATCH net-next v2] openvswitch: raise internal port TSO limit
  2026-09-16  9:49   ` Ilya Maximets
@ 2026-09-16 11:12     ` Eelco Chaudron
  0 siblings, 0 replies; 5+ messages in thread
From: Eelco Chaudron @ 2026-09-16 11:12 UTC (permalink / raw)
  To: Ilya Maximets
  Cc: Wang Zhan, netdev, davem, edumazet, kuba, pabeni, horms,
	keyong.sun, Aaron Conole, dev



On 16 Sep 2026, at 11:49, Ilya Maximets wrote:

> On 9/16/26 11:37 AM, Eelco Chaudron wrote:
>>
>>
>> On 16 Sep 2026, at 8:58, Wang Zhan wrote:
>>
>>> Set the internal port TSO limit to GSO_MAX_SIZE (512 KB), as for
>>> loopback and veth. This allows the admin/user to set a GSO limit up to
>>> this value, to use BIG TCP for traffic routed through the internal port.
>>>
>>> Only the capability limit changes: the IPv4 and IPv6 GSO and GRO limits
>>> remain at 64 KiB until changed by the administrator.
>>>
>>> Validation used a same-host test with a temporary OVS bridge, a veth pair,
>>> and a network namespace:
>>>
>>>   TCP client -> OVS internal -> OVS bridge -> veth -> TCP server
>>>
>>> The veth endpoints were BIG TCP capable throughout the test, and only the
>>> OVS internal port limits changed between 64 KiB and 524280 bytes. A single
>>> iperf3 3.19 TCP flow, run separately over IPv4 and IPv6 with six
>>> alternating runs per state (`-t 15 -O 5`, fixed CPU affinity and port
>>> tuple), increased throughput by 18.1% for IPv4 and 34.7% for IPv6:
>>>
>>>   protocol  BIG TCP off  BIG TCP on   CV off / on
>>>   TCP/IPv4  65.567 Gbps  77.420 Gbps  1.12% / 0.37%
>>>   TCP/IPv6  55.355 Gbps  74.568 Gbps  1.20% / 0.68%
>>>
>>> Assisted-by: LLM
>>
>> I think Ilya already mentioned this earlier, but the LLM tag means you need to
>> fill in the LLM model name you used.
>
> It looks like the rules changed recently, see:
>   816d9992d9ed ("coding-assistants: simplify attribution")
>
> So that's just a new acceptable format, which is fine.

Ok, missed that change :( So with that

Reviewed-by:  Eelco Chaudron <echaudro@redhat.com>

>>
>> The rest looks good to me.
>>
>> //Eelco
>>
>>> Signed-off-by: Wang Zhan <wang.zhan@smartx.com>
>>> ---
>>>
>>> v2:
>>> - add an empty line before netif_set_tso_max_size()
>>> - rebase net-next/main
>>> - cc all the maintainers
>>> v1: https://lore.kernel.org/20260910131635.780802-1-wang.zhan@smartx.com/
>>>
>>> ---
>>>  net/openvswitch/vport-internal_dev.c | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c
>>> index 125d310871e93..77a16d5ebd543 100644
>>> --- a/net/openvswitch/vport-internal_dev.c
>>> +++ b/net/openvswitch/vport-internal_dev.c
>>> @@ -117,6 +117,8 @@ static void do_setup(struct net_device *netdev)
>>>  	netdev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX;
>>>  	netdev->hw_features = netdev->features;
>>>
>>> +	netif_set_tso_max_size(netdev, GSO_MAX_SIZE);
>>> +
>>>  	eth_hw_addr_random(netdev);
>>>  }
> Reviewed-by: Ilya Maximets <i.maximets@ovn.org>


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

* Re: [PATCH net-next v2] openvswitch: raise internal port TSO limit
  2026-09-16  6:58 [PATCH net-next v2] openvswitch: raise internal port TSO limit Wang Zhan
  2026-09-16  9:37 ` Eelco Chaudron
@ 2026-09-17 12:20 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-09-17 12:20 UTC (permalink / raw)
  To: Wang Zhan
  Cc: netdev, davem, edumazet, kuba, pabeni, horms, keyong.sun,
	i.maximets, aconole, echaudro, dev

Hello:

This patch was applied to netdev/net-next.git (main)
by Paolo Abeni <pabeni@redhat.com>:

On Wed, 16 Sep 2026 14:58:44 +0800 you wrote:
> Set the internal port TSO limit to GSO_MAX_SIZE (512 KB), as for
> loopback and veth. This allows the admin/user to set a GSO limit up to
> this value, to use BIG TCP for traffic routed through the internal port.
> 
> Only the capability limit changes: the IPv4 and IPv6 GSO and GRO limits
> remain at 64 KiB until changed by the administrator.
> 
> [...]

Here is the summary with links:
  - [net-next,v2] openvswitch: raise internal port TSO limit
    https://git.kernel.org/netdev/net-next/c/859e40055c19

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] 5+ messages in thread

end of thread, other threads:[~2026-09-17 12:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-16  6:58 [PATCH net-next v2] openvswitch: raise internal port TSO limit Wang Zhan
2026-09-16  9:37 ` Eelco Chaudron
2026-09-16  9:49   ` Ilya Maximets
2026-09-16 11:12     ` Eelco Chaudron
2026-09-17 12:20 ` 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