* Au1xxx ethernet race condition?
@ 2005-08-11 8:35 jaypee
2005-08-11 9:05 ` Jerry
2005-08-11 9:28 ` jaypee
0 siblings, 2 replies; 4+ messages in thread
From: jaypee @ 2005-08-11 8:35 UTC (permalink / raw)
To: linux-mips; +Cc: tnt
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
While preforming network soak test on our au1550 based board, I noticed
lots of netdev timeout messages.
If I increased the ETH_TX_TIMEOUT to 5*HZ from HZ/4, I can see that
traffic does stop until the watchdog barks.
However if I print out the TX DMA status at this stage all the buffers
are ready to use.
My theory as to why this occurs is that in au1000_tx there is a race
condition.
If a tx_done interrupt for the last tx buffer occurs between reading
buff_stat (line 1905, au1000_eth.c) and calling netif_stop_queue then
the queue won't get woken until the watchdog barks.
I inserted a local_irq_save() at line 1903 and a local_irq_restore()
at line 1915 and that seems to have fixed the problem. (Been running
for half an hour with no netdev timeouts).
I'm sure this is overkill. Can anyone else confirm?
a) they see the problem
b) that there is a better solution
As an aside, the network stack for the 2.6 kernel is pretty slow, as
large 32k udp pckts don't use anywhere near the amount of cycles that
1.5k udp pckts do.
Suggests to me that it is the udp/ip path that is the bottleneck.
Just had a look at the mailing list and it looks like sylvain is
having a similar problem. Can you try this fix and see if it removes
your netdev tx timeouts sylvain?
thankx
- --
mailto:jaypee@hotpop.com
http://www.jaypee.org.uk
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFC+w3ZZDxnKy3oOpYRAsPKAKCe5R6qBsmMDyBY1w/MvoL1CvabvwCdEz9g
xFXbK05i7hD0PAYwotk2+u0=
=W7tS
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Au1xxx ethernet race condition?
2005-08-11 8:35 Au1xxx ethernet race condition? jaypee
@ 2005-08-11 9:05 ` Jerry
2005-08-11 9:25 ` jaypee
2005-08-11 9:28 ` jaypee
1 sibling, 1 reply; 4+ messages in thread
From: Jerry @ 2005-08-11 9:05 UTC (permalink / raw)
To: jaypee; +Cc: linux-mips
>[In reply to "Au1xxx ethernet race condition?" from jaypee@hotpop.com <jaypee@hotpop.com> to linux-mips <linux-mips@linux-mips.org> 11.08.2005 11:35]
> I'm sure this is overkill. Can anyone else confirm?
> a) they see the problem
> b) that there is a better solution
> As an aside, the network stack for the 2.6 kernel is pretty slow, as
> large 32k udp pckts don't use anywhere near the amount of cycles that
> 1.5k udp pckts do.
> Suggests to me that it is the udp/ip path that is the bottleneck.
We are dealing with au1200 and there are some problems around
at least with udp timeouts and maybe low perfomance. But it
seems to be driver problems (occurs both in 2.4 and 2.6) besides
au1200 does not use au1000_eth.c
Maybe your problem is somewhere else, and maybe it is completely
different.
()_()
-( ^,^ )- -[21398845]- -<The Bat! 3.51.10>- -<11.08.2005 11:47>-
(") (")
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Au1xxx ethernet race condition?
2005-08-11 9:05 ` Jerry
@ 2005-08-11 9:25 ` jaypee
0 siblings, 0 replies; 4+ messages in thread
From: jaypee @ 2005-08-11 9:25 UTC (permalink / raw)
To: Jerry, linux-mips
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
>
> We are dealing with au1200 and there are some problems around
> at least with udp timeouts and maybe low perfomance. But it
> seems to be driver problems (occurs both in 2.4 and 2.6) besides
> au1200 does not use au1000_eth.c
>
> Maybe your problem is somewhere else, and maybe it is completely
> different.
>
Agreed, I don't think au1000_eth.c is a problem as far throughput goes.
- --
mailto:jaypee@hotpop.com
http://www.jaypee.org.uk
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD4DBQFC+xmDZDxnKy3oOpYRAkAGAJjZLla7TN9Mcny1o9H/QAoJQpfiAKCFUDmU
eOfmPvEPqbMgtpZxmK9Npg==
=IrC3
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Au1xxx ethernet race condition?
2005-08-11 8:35 Au1xxx ethernet race condition? jaypee
2005-08-11 9:05 ` Jerry
@ 2005-08-11 9:28 ` jaypee
1 sibling, 0 replies; 4+ messages in thread
From: jaypee @ 2005-08-11 9:28 UTC (permalink / raw)
To: linux-mips
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 11/08/05 09:35:29, jaypee@hotpop.com wrote:
>
> My theory as to why this occurs is that in au1000_tx there is a race
> condition.
>
> If a tx_done interrupt for the last tx buffer occurs between reading
> buff_stat (line 1905, au1000_eth.c) and calling netif_stop_queue then
> the queue won't get woken until the watchdog barks.
>
> I inserted a local_irq_save() at line 1903 and a local_irq_restore()
> at line 1915 and that seems to have fixed the problem. (Been running
> for half an hour with no netdev timeouts).
>
Oh you'll need to turn WARN_ON off or you'll get lots of
Badness in local_bh_enable warnings.
- --
mailto:jaypee@hotpop.com
http://www.jaypee.org.uk
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFC+xonZDxnKy3oOpYRApzaAKDVDqkfKA/gDXo9N6Kq2twilUVy2gCfWDRK
2qsrUN51BEFqtfXwLih7QhE=
=jbjw
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-08-11 9:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-11 8:35 Au1xxx ethernet race condition? jaypee
2005-08-11 9:05 ` Jerry
2005-08-11 9:25 ` jaypee
2005-08-11 9:28 ` jaypee
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox