From: "Rick Moleres" <Rick.Moleres@xilinx.com>
To: "Ming Liu" <eemingliu@hotmail.com>
Cc: linuxppc-embedded@ozlabs.org
Subject: RE: Speed of plb_temac 3.00 on ML403
Date: Mon, 12 Feb 2007 12:45:51 -0700 [thread overview]
Message-ID: <20070212194619.03083EA0097@mail91-dub.bigfish.com> (raw)
In-Reply-To: <BAY110-F2669499909689C5DC2B93B2920@phx.gbl>
Ming,
<snip>
>>1. Results are from PLB_TEMAC, not GSRD. You would likely see similar
>throughput rates with GSRD and Linux.
>
>Problem 1: From the website for GSRD, I know that it uses a different=20
>structure than PLB, where a Multi port mem controller and DMA are added
to=20
>release the CPU from move data between Memory and TEMAC. So can GSRD=20
>achieve a higher performance than PLB_TEMAC, or similar performance
like=20
>what you said above? If their performance is similar, what's the
advantage=20
>for GSRD? Could you please explain some differences between these two=20
>structures?=20
GSRD is a reference design intended to exhibit high-performance gigabit
rates. It offloads the data path of the Ethernet traffic from the PLB
bus, under the assumption that the arbitrated bus is best used for other
things (control, other data, etc...). With Linux, however, GSRD still
only achieves slightly more than 500Mbps TCP. We see similar numbers
with PLB TEMAC, and with other stacks we see similar numbers as GSRD as
well (e.g., Treck). The decision points for using GSRD would be a) what
else needs to happen on the PLB in your system, and b) Xilinx support.
GSRD is a reference design, so it's not officially supported through the
Xilinx support chain. However, many of its architectural concepts are
being considered for future EDK IP (sorry, no timeframe). For now, I
recommend PLB TEMAC because it's part of the EDK, supported, and gets as
good performance in most use cases.
>>2. Assuming you have everything tuned for SGDMA based on previous
emails,=20
>I would suspect the bottleneck is the 300MHz CPU *when* running Linux.
In=20
>Linux 2.6 we've not spent any time trying to tune the TCP/Ethernet=20
>parameters on the target board or the host, so there could be some=20
>optimizations that can be done at that level. In the exact same system
we=20
>can achieve over 800Mbps using the Treck TCP/IP stack, and with VxWorks
it=20
>was over 600Mbps. =20
>
>Problem 2. I read XAPP546 of High performance TCP/IP on xilinx FPGA
devices=20
>using the Treck embedded TCP/IP stack. I notice that the features of
Treck=20
>TCP/IP stack include: Zero-copy send and receive, Jumbo-frame support,
CSUM=20
>offload, etc. which could achieve a much higher performance than not
using=20
>it. However in the Xilinx TEMAC core V3.00, these features are all=20
>supported: Zero-copy is supported by sendfile() when using Netperf;=20
>Jumbo-frame is also supported; CSUM offload and DRE are also supported
by=20
>the hardware. So does this mean I can achieve a similarly high
performance=20
>with PLB_TEMAC V3.00 and without Treck TCP/IP stack? I mean if all the=20
>features of Treck stack have been included in the PLB_TEMAC cores,
what's=20
>the use for Treck stack?=20
Note that Linux only supports zero-copy on the transmit side (i.e.,
sendfile), not on the receive side. I'm not going to recommend one RTOS
or network stack over another. Treck is a general purpose TCP/IP stack
that can be used in a standalone environment or in various RTOS
environments (I think). We've found that Treck, in the case where it is
used without an RTOS, is a higher performing stack than the Linux stack.
The VxWorks stack is also good, and Linux (of the three I've mentioned)
seems to be the slowest. Again, it's possible that the Linux stack
could be tuned better, but we haven't taken the time to try this.
next prev parent reply other threads:[~2007-02-12 19:46 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-05 19:08 Speed of plb_temac 3.00 on ML403 Rick Moleres
2006-12-12 11:08 ` Ming Liu
2007-02-09 14:16 ` Ming Liu
2007-02-09 14:57 ` jozsef imrek
2007-02-11 15:25 ` Ming Liu
2007-02-12 18:09 ` jozsef imrek
2007-02-12 19:18 ` Ming Liu
2007-02-14 7:24 ` jozsef imrek
2007-02-09 16:00 ` Rick Moleres
2007-02-11 6:22 ` Leonid
2007-02-11 13:37 ` Ming Liu
2007-02-12 19:45 ` Rick Moleres [this message]
2007-02-12 20:39 ` Ming Liu
2007-02-11 6:55 ` Linux " Leonid
2007-02-11 13:10 ` Ming Liu
-- strict thread matches above, loose matches on Subject: below --
2006-12-13 0:11 Speed of plb_temac 3.00 " Rick Moleres
2006-12-17 15:05 ` Ming Liu
2006-12-05 16:18 Thomas Denzinger
2006-12-05 16:49 ` Ming Liu
2006-12-05 18:42 ` Michael Galassi
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=20070212194619.03083EA0097@mail91-dub.bigfish.com \
--to=rick.moleres@xilinx.com \
--cc=eemingliu@hotmail.com \
--cc=linuxppc-embedded@ozlabs.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.