From: nicolas.ferre@atmel.com (Nicolas Ferre)
To: linux-arm-kernel@lists.infradead.org
Subject: at91sam9260 MACB problem with IP fragmentation
Date: Thu, 6 Dec 2012 14:27:10 +0100 [thread overview]
Message-ID: <50C09D2E.8050608@atmel.com> (raw)
In-Reply-To: <50C08233.9030905@erwinrol.com>
Erwin,
On 12/06/2012 12:32 PM, Erwin Rol :
> Hello Nicolas, Havard, all,
>
> I have a very obscure problem with a at91sam9260 board (almost 1 to 1
> copy of the Atmel EK).
>
> The MACB seems to stall when I use large (>2 * MTU) UDP datagrams. The
> test case is that a udp echo client (PC) sends datagrams with increasing
> length to the AT91 until the max length of the UDP datagram is reached.
> When there is no IP fragmentation everything is fine, but when the
> datagrams are starting to get fragmented the AT91 will not reply
> anymore. But as soon as some network traffic happens it goes on again,
> and non of the data is lost.
>
> With wireshark the effect can be easily seen (192.168.1.4 is the PC echo
> client, and 192.168.1.133 is the at91 echo server) After the first
> request there comes no reply. After a 5 second timeout the second
> request is send. And then both replies are returned.
>
> When I enabled debugging output it all started to work. So I tried some
> udelays in the driver instead of printk and with a 1ms delay in the irq
> handler it started working. Of course that is an unacceptable fix, but
> it looks like that is some weird race condition that causes the sending
> to stall. The only difference with normal MTU sized datagrams I can
> think of is that the fragmented packets can be passed very quickly to
> the macb tx function, because the kernel has all 5 skb's ready.
>
> I would be very interested to hear if someone else could reproduce this
> problem. Or even better, has seen this problem and has a fix for it.
>
> I tried several kernels including the test version from Nicolas that he
> posted on LKML in October. They all show the same effect.
[..]
It seems that Matteo has the same behavior: check here:
http://www.spinics.net/lists/netdev/msg218951.html
I am working on the macb driver right now, so I will try to reproduce
and track this issue on my side.
Best regards,
--
Nicolas Ferre
WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Ferre <nicolas.ferre@atmel.com>
To: Erwin Rol <mailinglists@erwinrol.com>
Cc: <linux-kernel@vger.kernel.org>,
Havard Skinnemoen <havard@skinnemoen.net>,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
<matteo.fortini@sadel.it>, netdev <netdev@vger.kernel.org>
Subject: Re: at91sam9260 MACB problem with IP fragmentation
Date: Thu, 6 Dec 2012 14:27:10 +0100 [thread overview]
Message-ID: <50C09D2E.8050608@atmel.com> (raw)
In-Reply-To: <50C08233.9030905@erwinrol.com>
Erwin,
On 12/06/2012 12:32 PM, Erwin Rol :
> Hello Nicolas, Havard, all,
>
> I have a very obscure problem with a at91sam9260 board (almost 1 to 1
> copy of the Atmel EK).
>
> The MACB seems to stall when I use large (>2 * MTU) UDP datagrams. The
> test case is that a udp echo client (PC) sends datagrams with increasing
> length to the AT91 until the max length of the UDP datagram is reached.
> When there is no IP fragmentation everything is fine, but when the
> datagrams are starting to get fragmented the AT91 will not reply
> anymore. But as soon as some network traffic happens it goes on again,
> and non of the data is lost.
>
> With wireshark the effect can be easily seen (192.168.1.4 is the PC echo
> client, and 192.168.1.133 is the at91 echo server) After the first
> request there comes no reply. After a 5 second timeout the second
> request is send. And then both replies are returned.
>
> When I enabled debugging output it all started to work. So I tried some
> udelays in the driver instead of printk and with a 1ms delay in the irq
> handler it started working. Of course that is an unacceptable fix, but
> it looks like that is some weird race condition that causes the sending
> to stall. The only difference with normal MTU sized datagrams I can
> think of is that the fragmented packets can be passed very quickly to
> the macb tx function, because the kernel has all 5 skb's ready.
>
> I would be very interested to hear if someone else could reproduce this
> problem. Or even better, has seen this problem and has a fix for it.
>
> I tried several kernels including the test version from Nicolas that he
> posted on LKML in October. They all show the same effect.
[..]
It seems that Matteo has the same behavior: check here:
http://www.spinics.net/lists/netdev/msg218951.html
I am working on the macb driver right now, so I will try to reproduce
and track this issue on my side.
Best regards,
--
Nicolas Ferre
next prev parent reply other threads:[~2012-12-06 13:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-06 11:32 at91sam9260 MACB problem with IP fragmentation Erwin Rol
2012-12-06 13:27 ` Nicolas Ferre [this message]
2012-12-06 13:27 ` Nicolas Ferre
2012-12-06 15:15 ` Erwin Rol
2012-12-06 15:15 ` Erwin Rol
2012-12-20 9:17 ` Erwin Rol
2012-12-20 9:17 ` Erwin Rol
2012-12-20 17:51 ` Nicolas Ferre
2012-12-20 17:51 ` Nicolas Ferre
2013-02-12 10:08 ` [PATCH] net/macb: fix race with RX interrupt while doing NAPI Nicolas Ferre
2013-02-12 10:08 ` Nicolas Ferre
2013-02-13 18:36 ` David Miller
2013-02-13 18:36 ` David Miller
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=50C09D2E.8050608@atmel.com \
--to=nicolas.ferre@atmel.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.