Robert Craig
|
RE: RE: GBit Ethernet Speed
|
Robert Craig
01/23/2008 10:32 AM
post4538
|
RE: RE: GBit Ethernet Speed
Hi Thoralf:
There is inherently a copy between the application process space and stack
process space (a message pass). The xtemac driver that we have in house
uses DMA and scatter / gather and everything within the stack is essentially
"zero-copy", but you still have to move the data from the stack to the
application if you're using the standard protocols.
While there are things that you can do to get around this (putting your app
inside of the stack as a filter or its own protocol, setting up an area of
shared memory that you can use for raw Ethernet packets and then passing
pointers into / out of the stack through a filter devctl interface, other
workarounds), you'll be going to extraordinary lengths and I still don't
have a strong feeling that you'll achieve that rate. Using the new
networking stack (io-pkt) with a newly written driver that will allow you to
use Jumbo packets (not supported in io-net) will give you a significant
performance boost, but, even then, if the rate is at all achievable, I'll
bet that the CPU occupancy will be 100%.
What will the application be doing with the data? If it has to touch every
byte anyway, you might want to do a basic memory access test to see if the
application can even do what it has to do without networking involved at
all... If the app uses up a significant portion of CPU, then you'll know
for sure that the stack won't be able to push the data through fast enough.
Robert.
-----Original Message-----
From: Thoralf Baum [mailto:thoralf.baum.ext@siemens.com]
Sent: Wednesday, January 23, 2008 5:29 AM
To: technology-networking
Subject: Re: RE: GBit Ethernet Speed
Thank you very much.
The calculation of a bytewise sending powered by the cpu leads directly to
the core of my problem:
The XILINX IP Core (and I think, most HighSpeed Ethernet controllers)
supports sending and receiving using DMA and multi buffer mode
(scatter/gather or PingPong).
The question is: Does the QNX TCP stack make usage of such features? In
other words: Are there any bottlenecks where the cpu has to copy each single
word from one place to another place?
If so, the calculation above would meet the reality - unfortunately...
best regards,
Thoralf
_______________________________________________
Technology
http://community.qnx.com/sf/go/post4525
|
|
|
Malte Mundt(deleted)
|
Re: RE: GBit Ethernet Speed
|
Malte Mundt(deleted)
01/24/2008 8:45 AM
post4552
|
Re: RE: GBit Ethernet Speed
It would also be interesting to know what the data is - maybe it can be compressed. Depending on the data, a light
compression (e.g. just compress equal bytes) would not severely eat CPU cycles but could reduce the amount of data to be
transferred. More complex compression algorithms may be applicable, depending on the ratio of saved bytes vs.
(de)compression CPU usage.
|
|
|