public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Zachary Amsden <zach@vmware.com>
To: Andrew Morton <akpm@osdl.org>,
	Manfred Spraul <manfred@colorfullife.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: [PATCH] Allow TSO to be disabled for forcedeth driver
Date: Thu, 01 Jun 2006 12:27:52 -0700	[thread overview]
Message-ID: <447F3FB8.2010003@vmware.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 344 bytes --]

TSO can cause performance problems in certain environments, and being 
able to turn it on or off is helpful for debugging network issues.  Most 
other network drivers that support TSO allow it to be toggled, so add 
this feature to forcedeth.  Tested by Harald Dunkel, who reported that 
this fixed his network performance issue with VMware.



[-- Attachment #2: forcedeth-tso-toggle --]
[-- Type: text/plain, Size: 1185 bytes --]

Implement get / set tso for forcedeth driver.

Signed-off-by: Zachary Amsden <zach@vmware.com>

Index: linux-2.6.17-rc/drivers/net/forcedeth.c
===================================================================
--- linux-2.6.17-rc.orig/drivers/net/forcedeth.c	2006-05-18 13:31:55.000000000 -0700
+++ linux-2.6.17-rc/drivers/net/forcedeth.c	2006-05-31 14:34:53.000000000 -0700
@@ -2615,6 +2615,21 @@ static int nv_nway_reset(struct net_devi
 	return ret;
 }
 
+static int nv_set_tso(struct net_device *dev, u32 value)
+{
+	struct fe_priv *np = netdev_priv(dev);
+	int ret;
+
+	spin_lock_irq(&np->lock);
+	if ((np->driver_data & DEV_HAS_CHECKSUM))
+		ret = ethtool_op_set_tso(dev, value);
+	else
+		ret = value ? -EOPNOTSUPP : 0;
+	spin_unlock_irq(&np->lock);
+
+	return ret;
+}
+
 static struct ethtool_ops ops = {
 	.get_drvinfo = nv_get_drvinfo,
 	.get_link = ethtool_op_get_link,
@@ -2626,6 +2641,8 @@ static struct ethtool_ops ops = {
 	.get_regs = nv_get_regs,
 	.nway_reset = nv_nway_reset,
 	.get_perm_addr = ethtool_op_get_perm_addr,
+	.get_tso = ethtool_op_get_tso,
+	.set_tso = nv_set_tso
 };
 
 static void nv_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)

             reply	other threads:[~2006-06-01 19:27 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-01 19:27 Zachary Amsden [this message]
2006-06-01 19:53 ` [PATCH] Allow TSO to be disabled for forcedeth driver Andrew Morton
2006-06-01 20:07   ` Zachary Amsden
     [not found] <DBFABB80F7FD3143A911F9E6CFD477B00BA5E36B@hqemmail02.nvidia.com>
     [not found] ` <20060601142909.369cf12f.akpm@osdl.org>
     [not found]   ` <447F6E13.8030904@vmware.com>
     [not found]     ` <447F472E.5060808@nvidia.com>
2006-06-02  5:49       ` Zachary Amsden

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=447F3FB8.2010003@vmware.com \
    --to=zach@vmware.com \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=manfred@colorfullife.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox