From: eric.nelson@boundarydevices.com (Eric Nelson)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/1 net-next] net: fec: enable pause frame to improve rx prefomance for 1G network
Date: Tue, 08 Jan 2013 09:13:41 -0700 [thread overview]
Message-ID: <50EC45B5.3000601@boundarydevices.com> (raw)
In-Reply-To: <50EBED0E.6090608@de.bosch.com>
On 01/08/2013 02:55 AM, Dirk Behme wrote:
> On 08.01.2013 09:43, Frank Li wrote:
>> The limition of imx6 internal bus cause fec can't achieve 1G perfomance.
>> There will be many packages lost because FIFO over run.
>>
>> This patch enable pause frame flow control.
>
> Many thanks for this patch!
>
> Do we want/need anything similar for U-Boot, too?
>
> Some people want to boot the system from U-Boot attached to 1G network
> and have issues there, too.
>
It's hard to see how the typical use (dhcp+tftp) would be affected
because of the small packet sizes and half-duplex operation.
That said, the statistics registers make it pretty easy to see when
there are overflows as described here:
http://boundarydevices.com/i-mx6-ethernet/
We should be able to just poke the ENET_MIBC register and watch
to see if the IEEE_R_MACERR register shows that overruns are
occurring using the U-Boot md and mw commands.
In a quick test, it appears that this doesn't work though.
This line of code in fec_halt from fec_mxc.c seems to clear the
statistics.
writel(readl(&fec->eth->ecntrl) & ~FEC_ECNTRL_ETHER_EN,
&fec->eth->ecntrl);
If you comment that out, you can see all of the statistics registers
as shown below:
U-Boot > mw.l 0x02188064 0 #ENET_MIBC
U-Boot > dhcp 10800000 192.168.0.55:uImage-bluemeany
BOOTP broadcast 1
DHCP client bound to address 192.168.0.91
Using FEC device
TFTP from server 192.168.0.55; our IP address is 192.168.0.91
Filename 'uImage-bluemeany'.
Load address: 0x10800000
Loading: ...
done
Bytes transferred = 3760504 (396178 hex)
U-Boot > md.l 0x02188200 0x39
02188200: 00000000 00001cb6 00000003 00000000 ................
02188210: 00000000 00000000 00000000 00000000 ................
02188220: 00000000 00000000 00001cb2 00000002 ................
02188230: 00000000 00000002 00000000 00000000 ................
02188240: 00000000 00072fd4 00000000 00001cb6 ...../..........
02188250: 00000000 00000000 00000000 00000000 ................
02188260: 00000000 00000000 00000000 00000000 ................
02188270: 00000000 00072fd4 00000000 00000000 ...../..........
02188280: 00000000 00001dca 0000002a 000000e6 ........*.......
02188290: 00000000 00000000 00000000 00000000 ................
021882a0: 00000000 00000000 00000037 00000057 ........7...W...
021882b0: 0000004e 00000023 00001ccb 00000000 N...#...........
021882c0: 00000000 003fd011 00000000 00001dcc ......?.........
021882d0: 00000000 00000000 00000000 00000000 ................
021882e0: 003fd011 ..?.
U-Boot >
Register 0x021882d8 is the MACERR (fifo overlow) counter.
Regards,
Eric
WARNING: multiple messages have this Message-ID (diff)
From: Eric Nelson <eric.nelson@boundarydevices.com>
To: Dirk Behme <dirk.behme@de.bosch.com>
Cc: Frank Li <Frank.Li@freescale.com>,
"B38611@freescale.com" <B38611@freescale.com>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
"lznuaa@gmail.com" <lznuaa@gmail.com>,
"shawn.guo@linaro.org" <shawn.guo@linaro.org>,
"davem@davemloft.net" <davem@davemloft.net>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 1/1 net-next] net: fec: enable pause frame to improve rx prefomance for 1G network
Date: Tue, 08 Jan 2013 09:13:41 -0700 [thread overview]
Message-ID: <50EC45B5.3000601@boundarydevices.com> (raw)
In-Reply-To: <50EBED0E.6090608@de.bosch.com>
On 01/08/2013 02:55 AM, Dirk Behme wrote:
> On 08.01.2013 09:43, Frank Li wrote:
>> The limition of imx6 internal bus cause fec can't achieve 1G perfomance.
>> There will be many packages lost because FIFO over run.
>>
>> This patch enable pause frame flow control.
>
> Many thanks for this patch!
>
> Do we want/need anything similar for U-Boot, too?
>
> Some people want to boot the system from U-Boot attached to 1G network
> and have issues there, too.
>
It's hard to see how the typical use (dhcp+tftp) would be affected
because of the small packet sizes and half-duplex operation.
That said, the statistics registers make it pretty easy to see when
there are overflows as described here:
http://boundarydevices.com/i-mx6-ethernet/
We should be able to just poke the ENET_MIBC register and watch
to see if the IEEE_R_MACERR register shows that overruns are
occurring using the U-Boot md and mw commands.
In a quick test, it appears that this doesn't work though.
This line of code in fec_halt from fec_mxc.c seems to clear the
statistics.
writel(readl(&fec->eth->ecntrl) & ~FEC_ECNTRL_ETHER_EN,
&fec->eth->ecntrl);
If you comment that out, you can see all of the statistics registers
as shown below:
U-Boot > mw.l 0x02188064 0 #ENET_MIBC
U-Boot > dhcp 10800000 192.168.0.55:uImage-bluemeany
BOOTP broadcast 1
DHCP client bound to address 192.168.0.91
Using FEC device
TFTP from server 192.168.0.55; our IP address is 192.168.0.91
Filename 'uImage-bluemeany'.
Load address: 0x10800000
Loading: ...
done
Bytes transferred = 3760504 (396178 hex)
U-Boot > md.l 0x02188200 0x39
02188200: 00000000 00001cb6 00000003 00000000 ................
02188210: 00000000 00000000 00000000 00000000 ................
02188220: 00000000 00000000 00001cb2 00000002 ................
02188230: 00000000 00000002 00000000 00000000 ................
02188240: 00000000 00072fd4 00000000 00001cb6 ...../..........
02188250: 00000000 00000000 00000000 00000000 ................
02188260: 00000000 00000000 00000000 00000000 ................
02188270: 00000000 00072fd4 00000000 00000000 ...../..........
02188280: 00000000 00001dca 0000002a 000000e6 ........*.......
02188290: 00000000 00000000 00000000 00000000 ................
021882a0: 00000000 00000000 00000037 00000057 ........7...W...
021882b0: 0000004e 00000023 00001ccb 00000000 N...#...........
021882c0: 00000000 003fd011 00000000 00001dcc ......?.........
021882d0: 00000000 00000000 00000000 00000000 ................
021882e0: 003fd011 ..?.
U-Boot >
Register 0x021882d8 is the MACERR (fifo overlow) counter.
Regards,
Eric
next prev parent reply other threads:[~2013-01-08 16:13 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-08 8:43 [PATCH 1/1 net-next] net: fec: enable pause frame to improve rx prefomance for 1G network Frank Li
2013-01-08 8:43 ` Frank Li
2013-01-08 9:55 ` Dirk Behme
2013-01-08 9:55 ` Dirk Behme
2013-01-08 16:13 ` Eric Nelson [this message]
2013-01-08 16:13 ` Eric Nelson
2013-01-08 12:52 ` Ben Hutchings
2013-01-08 12:52 ` Ben Hutchings
2013-01-08 13:32 ` David Laight
2013-01-08 13:32 ` David Laight
2013-01-08 13:57 ` Ben Hutchings
2013-01-08 13:57 ` Ben Hutchings
2013-01-09 1:58 ` David Miller
2013-01-09 1:58 ` 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=50EC45B5.3000601@boundarydevices.com \
--to=eric.nelson@boundarydevices.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.