* [PATCH] atl1: disable TSO by default
@ 2008-08-19 0:28 Jay Cliburn
2008-08-19 13:10 ` Herbert Xu
2008-08-27 9:37 ` Jeff Garzik
0 siblings, 2 replies; 6+ messages in thread
From: Jay Cliburn @ 2008-08-19 0:28 UTC (permalink / raw)
To: jeff; +Cc: netdev, linux-kernel, link, ian, csnook, jie.yang, m
The atl1 driver is causing stalled connections and file corruption
whenever TSO is enabled. Two examples are here:
http://lkml.org/lkml/2008/7/15/325
http://lkml.org/lkml/2008/8/18/543
Disable TSO by default until we can determine the source of the
problem.
Signed-off-by: Jay Cliburn <jacliburn@bellsouth.net>
cc: stable@kernel.org
---
Jeff, I've been trying to find the source of this problem in my
spare time for a few weeks now, but haven't been successful. We
turned on TSO by default in 2.6.26 after fixing a nasty performance
bug in it, but there's apparently another bug lurking.
This patch needs to be also applied to 2.6.26, hence the cc to
stable.
drivers/net/atlx/atl1.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index e6a7bb7..e23ce77 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -3022,7 +3022,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
netdev->features = NETIF_F_HW_CSUM;
netdev->features |= NETIF_F_SG;
netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
- netdev->features |= NETIF_F_TSO;
netdev->features |= NETIF_F_LLTX;
/*
--
1.5.5.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] atl1: disable TSO by default
2008-08-19 0:28 [PATCH] atl1: disable TSO by default Jay Cliburn
@ 2008-08-19 13:10 ` Herbert Xu
2008-08-19 22:53 ` Jay Cliburn
2008-08-27 9:37 ` Jeff Garzik
1 sibling, 1 reply; 6+ messages in thread
From: Herbert Xu @ 2008-08-19 13:10 UTC (permalink / raw)
To: Jay Cliburn
Cc: jeff, netdev, linux-kernel, link, ian, csnook, jie.yang, m, davem
Jay Cliburn <jacliburn@bellsouth.net> wrote:
>
> diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
> index e6a7bb7..e23ce77 100644
> --- a/drivers/net/atlx/atl1.c
> +++ b/drivers/net/atlx/atl1.c
> @@ -3022,7 +3022,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
> netdev->features = NETIF_F_HW_CSUM;
> netdev->features |= NETIF_F_SG;
> netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
> - netdev->features |= NETIF_F_TSO;
> netdev->features |= NETIF_F_LLTX;
Another new driver using LLTX, this is not good when we're trying
to get rid of it.
Perhaps we could just kill it by ignoring the LLTX flag and always
grabbing the xmit lock. That should be safe as long as none of these
drivers grab the xmit lock within their private locks.
LLTX drivers will be a tad slower, but that should encourage them
to stop using it :)
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] atl1: disable TSO by default
2008-08-19 13:10 ` Herbert Xu
@ 2008-08-19 22:53 ` Jay Cliburn
2008-08-19 22:58 ` David Miller
0 siblings, 1 reply; 6+ messages in thread
From: Jay Cliburn @ 2008-08-19 22:53 UTC (permalink / raw)
To: Herbert Xu
Cc: jeff, netdev, linux-kernel, link, ian, csnook, jie.yang, m, davem
On Tue, 19 Aug 2008 23:10:37 +1000
Herbert Xu <herbert@gondor.apana.org.au> wrote:
> Jay Cliburn <jacliburn@bellsouth.net> wrote:
> > netdev->features |= NETIF_F_LLTX;
>
> Another new driver using LLTX, this is not good when we're trying
> to get rid of it.
The atl1 driver was merged in the spring of 2007, so I'm not sure I
consider it new (but your kernel development time horizon is undoubtedly
*way* longer than mine, so you may indeed consider it new). It was
basically a vendor driver that we modified to conform to kernel coding
standards. It started life, we believe, as pretty much a clone of the
e1000 driver circa 2005, so that's likely where it's use of LLTX
came from.
>
> Perhaps we could just kill it by ignoring the LLTX flag and always
> grabbing the xmit lock. That should be safe as long as none of these
> drivers grab the xmit lock within their private locks.
I'd be happy to gin up a patch if you could point me to a driver that
implements properly what you're asking.
Thanks,
Jay
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] atl1: disable TSO by default
2008-08-19 22:53 ` Jay Cliburn
@ 2008-08-19 22:58 ` David Miller
2008-08-19 23:17 ` Herbert Xu
0 siblings, 1 reply; 6+ messages in thread
From: David Miller @ 2008-08-19 22:58 UTC (permalink / raw)
To: jacliburn
Cc: herbert, jeff, netdev, linux-kernel, link, ian, csnook, jie.yang,
m
From: Jay Cliburn <jacliburn@bellsouth.net>
Date: Tue, 19 Aug 2008 17:53:34 -0500
> On Tue, 19 Aug 2008 23:10:37 +1000
> Herbert Xu <herbert@gondor.apana.org.au> wrote:
>
> > Jay Cliburn <jacliburn@bellsouth.net> wrote:
>
> > > netdev->features |= NETIF_F_LLTX;
> >
> > Another new driver using LLTX, this is not good when we're trying
> > to get rid of it.
>
> The atl1 driver was merged in the spring of 2007, so I'm not sure I
> consider it new (but your kernel development time horizon is undoubtedly
> *way* longer than mine, so you may indeed consider it new). It was
> basically a vendor driver that we modified to conform to kernel coding
> standards. It started life, we believe, as pretty much a clone of the
> e1000 driver circa 2005, so that's likely where it's use of LLTX
> came from.
You'll have to forgive us, as we often have a knee jerk reaction
to seeing LLTX anywhere :-)
> > Perhaps we could just kill it by ignoring the LLTX flag and always
> > grabbing the xmit lock. That should be safe as long as none of these
> > drivers grab the xmit lock within their private locks.
>
> I'd be happy to gin up a patch if you could point me to a driver that
> implements properly what you're asking.
TG3 is a good example, but that's just my heavily slanted opinion.
What your work should amount to is:
1) Eliminate local driver TX spinlock.
2) Stop taking #1 in ->hard_start_xmit()
3) Where you take #1 elsewhere, replace with netif_tx_lock()
and friends.
4) Stop setting NETIF_F_LLTX.
That should do it, but of course there are usually other details.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] atl1: disable TSO by default
2008-08-19 22:58 ` David Miller
@ 2008-08-19 23:17 ` Herbert Xu
0 siblings, 0 replies; 6+ messages in thread
From: Herbert Xu @ 2008-08-19 23:17 UTC (permalink / raw)
To: David Miller
Cc: jacliburn, jeff, netdev, linux-kernel, link, ian, csnook,
jie.yang, m
On Tue, Aug 19, 2008 at 03:58:45PM -0700, David Miller wrote:
>
> > The atl1 driver was merged in the spring of 2007, so I'm not sure I
> > consider it new (but your kernel development time horizon is undoubtedly
> > *way* longer than mine, so you may indeed consider it new). It was
> > basically a vendor driver that we modified to conform to kernel coding
> > standards. It started life, we believe, as pretty much a clone of the
> > e1000 driver circa 2005, so that's likely where it's use of LLTX
> > came from.
>
> You'll have to forgive us, as we often have a knee jerk reaction
> to seeing LLTX anywhere :-)
Heh, it's like seeing a fly in your soup :)
However, this does seem to be proliferating to some extent although
I picked on the wrong driver. The one I saw that was new is actually
drivers/net/atl1e which seems to have copied the same code across.
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] atl1: disable TSO by default
2008-08-19 0:28 [PATCH] atl1: disable TSO by default Jay Cliburn
2008-08-19 13:10 ` Herbert Xu
@ 2008-08-27 9:37 ` Jeff Garzik
1 sibling, 0 replies; 6+ messages in thread
From: Jeff Garzik @ 2008-08-27 9:37 UTC (permalink / raw)
To: Jay Cliburn; +Cc: netdev, linux-kernel, link, ian, csnook, jie.yang, m
Jay Cliburn wrote:
> The atl1 driver is causing stalled connections and file corruption
> whenever TSO is enabled. Two examples are here:
>
> http://lkml.org/lkml/2008/7/15/325
> http://lkml.org/lkml/2008/8/18/543
>
> Disable TSO by default until we can determine the source of the
> problem.
>
> Signed-off-by: Jay Cliburn <jacliburn@bellsouth.net>
> cc: stable@kernel.org
> ---
>
> Jeff, I've been trying to find the source of this problem in my
> spare time for a few weeks now, but haven't been successful. We
> turned on TSO by default in 2.6.26 after fixing a nasty performance
> bug in it, but there's apparently another bug lurking.
>
> This patch needs to be also applied to 2.6.26, hence the cc to
> stable.
>
> drivers/net/atlx/atl1.c | 1 -
> 1 files changed, 0 insertions(+), 1 deletions(-)
applied
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-08-27 9:37 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-19 0:28 [PATCH] atl1: disable TSO by default Jay Cliburn
2008-08-19 13:10 ` Herbert Xu
2008-08-19 22:53 ` Jay Cliburn
2008-08-19 22:58 ` David Miller
2008-08-19 23:17 ` Herbert Xu
2008-08-27 9:37 ` Jeff Garzik
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).