Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1573299 > unrolled thread

[PATCH net-next 9/9] ldmvsw: disable tso and gso for bridge operations

Started byShannon Nelson <shannon.nelson@oracle.com>
First post2017-02-03 18:50 +0100
Last post2017-02-03 22:30 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH net-next 9/9] ldmvsw: disable tso and gso for bridge operations Shannon Nelson <shannon.nelson@oracle.com> - 2017-02-03 18:50 +0100
    Re: [PATCH net-next 9/9] ldmvsw: disable tso and gso for bridge  operations Eric Dumazet <eric.dumazet@gmail.com> - 2017-02-03 19:00 +0100
      Re: [PATCH net-next 9/9] ldmvsw: disable tso and gso for bridge  operations Shannon Nelson <shannon.nelson@oracle.com> - 2017-02-03 22:30 +0100

#1573299 — [PATCH net-next 9/9] ldmvsw: disable tso and gso for bridge operations

FromShannon Nelson <shannon.nelson@oracle.com>
Date2017-02-03 18:50 +0100
Subject[PATCH net-next 9/9] ldmvsw: disable tso and gso for bridge operations
Message-ID<t6Q9I-4Ln-25@gated-at.bofh.it>
The ldmvsw driver is specifically for supporting the ldom virtual
networking by running in the primary ldom and using the LDC to connect
the remaining ldoms to the outside world via a bridge.  With TSO and GSO
supported while connected the bridge, things tend to misbehave as seen in
our case by delayed packets, enough to begin triggering retransmits and
affecting overall throughput.  By turning off advertised support for TSO
and GSO we restore stable traffic flow through the bridge.

Orabug: 23293104

Signed-off-by: Shannon Nelson <shannon.nelson@oracle.com>
---
 drivers/net/ethernet/sun/ldmvsw.c         |    5 ++---
 drivers/net/ethernet/sun/sunvnet_common.c |    3 ++-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/sun/ldmvsw.c b/drivers/net/ethernet/sun/ldmvsw.c
index 552c0a9..bd2cfbc 100644
--- a/drivers/net/ethernet/sun/ldmvsw.c
+++ b/drivers/net/ethernet/sun/ldmvsw.c
@@ -299,8 +299,7 @@ static struct net_device *vsw_alloc_netdev(u8 hwaddr[],
 	dev->ethtool_ops = &vsw_ethtool_ops;
 	dev->watchdog_timeo = VSW_TX_TIMEOUT;
 
-	dev->hw_features = NETIF_F_TSO | NETIF_F_GSO | NETIF_F_GSO_SOFTWARE |
-			   NETIF_F_HW_CSUM | NETIF_F_SG;
+	dev->hw_features = NETIF_F_HW_CSUM;
 	dev->features = dev->hw_features;
 
 	SET_NETDEV_DEV(dev, &vdev->dev);
@@ -390,7 +389,7 @@ static int vsw_port_probe(struct vio_dev *vdev, const struct vio_device_id *id)
 	port->vp = vp;
 	port->dev = dev;
 	port->switch_port = 1;
-	port->tso = true;
+	port->tso = false; /* no tso in vsw, misbehaves in bridge */
 	port->tsolen = 0;
 
 	/* Mark the port as belonging to ldmvsw which directs the
diff --git a/drivers/net/ethernet/sun/sunvnet_common.c b/drivers/net/ethernet/sun/sunvnet_common.c
index a479a58..3d31c80 100644
--- a/drivers/net/ethernet/sun/sunvnet_common.c
+++ b/drivers/net/ethernet/sun/sunvnet_common.c
@@ -210,6 +210,7 @@ static int handle_attr_info(struct vio_driver_state *vio,
 	} else {
 		pkt->cflags &= ~VNET_LSO_IPV4_CAPAB;
 		pkt->ipv4_lso_maxlen = 0;
+		port->tsolen = 0;
 	}
 
 	/* for version >= 1.6, ACK packet mode we support */
@@ -1685,7 +1686,7 @@ static void vnet_port_reset(struct vnet_port *port)
 	del_timer(&port->clean_timer);
 	sunvnet_port_free_tx_bufs_common(port);
 	port->rmtu = 0;
-	port->tso = true;
+	port->tso = (port->vsw == 0);  /* no tso in vsw, misbehaves in bridge */
 	port->tsolen = 0;
 }
 
-- 
1.7.1

[toc] | [next] | [standalone]


#1573315 — Re: [PATCH net-next 9/9] ldmvsw: disable tso and gso for bridge operations

FromEric Dumazet <eric.dumazet@gmail.com>
Date2017-02-03 19:00 +0100
SubjectRe: [PATCH net-next 9/9] ldmvsw: disable tso and gso for bridge operations
Message-ID<t6Qjo-4OT-25@gated-at.bofh.it>
In reply to#1573299
On Fri, 2017-02-03 at 09:42 -0800, Shannon Nelson wrote:
> The ldmvsw driver is specifically for supporting the ldom virtual
> networking by running in the primary ldom and using the LDC to connect
> the remaining ldoms to the outside world via a bridge.  With TSO and GSO
> supported while connected the bridge, things tend to misbehave as seen in
> our case by delayed packets, enough to begin triggering retransmits and
> affecting overall throughput.  By turning off advertised support for TSO
> and GSO we restore stable traffic flow through the bridge.
> 
> Orabug: 23293104
> 
> Signed-off-by: Shannon Nelson <shannon.nelson@oracle.com>
> ---
>  drivers/net/ethernet/sun/ldmvsw.c         |    5 ++---
>  drivers/net/ethernet/sun/sunvnet_common.c |    3 ++-
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/sun/ldmvsw.c b/drivers/net/ethernet/sun/ldmvsw.c
> index 552c0a9..bd2cfbc 100644
> --- a/drivers/net/ethernet/sun/ldmvsw.c
> +++ b/drivers/net/ethernet/sun/ldmvsw.c
> @@ -299,8 +299,7 @@ static struct net_device *vsw_alloc_netdev(u8 hwaddr[],
>  	dev->ethtool_ops = &vsw_ethtool_ops;
>  	dev->watchdog_timeo = VSW_TX_TIMEOUT;
>  
> -	dev->hw_features = NETIF_F_TSO | NETIF_F_GSO | NETIF_F_GSO_SOFTWARE |
> -			   NETIF_F_HW_CSUM | NETIF_F_SG;
> +	dev->hw_features = NETIF_F_HW_CSUM;


You also removed NETIF_F_SG

[toc] | [prev] | [next] | [standalone]


#1573455 — Re: [PATCH net-next 9/9] ldmvsw: disable tso and gso for bridge operations

FromShannon Nelson <shannon.nelson@oracle.com>
Date2017-02-03 22:30 +0100
SubjectRe: [PATCH net-next 9/9] ldmvsw: disable tso and gso for bridge operations
Message-ID<t6TAC-7il-21@gated-at.bofh.it>
In reply to#1573315
On 2/3/2017 9:59 AM, Eric Dumazet wrote:
> On Fri, 2017-02-03 at 09:42 -0800, Shannon Nelson wrote:
>> The ldmvsw driver is specifically for supporting the ldom virtual
>> networking by running in the primary ldom and using the LDC to connect
>> the remaining ldoms to the outside world via a bridge.  With TSO and GSO
>> supported while connected the bridge, things tend to misbehave as seen in
>> our case by delayed packets, enough to begin triggering retransmits and
>> affecting overall throughput.  By turning off advertised support for TSO
>> and GSO we restore stable traffic flow through the bridge.
>>
>> Orabug: 23293104
>>
>> Signed-off-by: Shannon Nelson <shannon.nelson@oracle.com>
>> ---
>>  drivers/net/ethernet/sun/ldmvsw.c         |    5 ++---
>>  drivers/net/ethernet/sun/sunvnet_common.c |    3 ++-
>>  2 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/sun/ldmvsw.c b/drivers/net/ethernet/sun/ldmvsw.c
>> index 552c0a9..bd2cfbc 100644
>> --- a/drivers/net/ethernet/sun/ldmvsw.c
>> +++ b/drivers/net/ethernet/sun/ldmvsw.c
>> @@ -299,8 +299,7 @@ static struct net_device *vsw_alloc_netdev(u8 hwaddr[],
>>  	dev->ethtool_ops = &vsw_ethtool_ops;
>>  	dev->watchdog_timeo = VSW_TX_TIMEOUT;
>>
>> -	dev->hw_features = NETIF_F_TSO | NETIF_F_GSO | NETIF_F_GSO_SOFTWARE |
>> -			   NETIF_F_HW_CSUM | NETIF_F_SG;
>> +	dev->hw_features = NETIF_F_HW_CSUM;
>
>
> You also removed NETIF_F_SG

Hmmm - yep, I'll put that back in for the respin.

Thanks,
sln

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web