Libertas slow when other processes use udp on localhost
Kareem Shehata
kshehata at aeryon.com
Wed Feb 18 22:34:38 EST 2009
I think I've found a way to reproduce the strange slowdowns we've been
seeing in libertas performance when running our software. I've
created a little test code that sends and receives udp packets, much
like ping but without the sophistication. Here's the strange part:
both client and server can run on the same host and communicate via
localhost, but libertas still slows to a crawl. This doesn't happen
with our wired connection.
Our setup:
Unex 8385 CF module on an arm processor
Kernel 2.6.22, with latest libertas driver backported
Steps to reproduce:
1) Compile the attached file on your platform (we use gcc to cross-
compile to the arm)
2) Start an scp transfer
3) Start a listener with udp_mirror -l (pipe the output to /dev/null
and background if you only have one terminal)
4) Start a sender with udp_mirror -t 200
5) Start another sender if it doesn't slow down right away. On our
setup, it takes anywhere from 2 to 4 to bring it to a crawl.
Kill the senders and the listener, and all will return to normal.
Any ideas as to what can cause this? Is there any dependency in the
libertas driver to kernel scheduling?
BTW: The code itself is less than perfectly documented, just to get it
out to you sooner. I can go through and clean things up a little if
you need to dig into this code. For now, this should just compile and
work on most platforms (including X86 and ARM).
Thanks,
Kareem
-------------- next part --------------
A non-text attachment was scrubbed...
Name: main.c
Type: application/octet-stream
Size: 8789 bytes
Desc: not available
Url : http://lists.infradead.org/pipermail/libertas-dev/attachments/20090218/a378376a/attachment.obj
-------------- next part --------------
--
Kareem Shehata
Aeryon Labs Inc.
519-489-6726 x254
http://aeryon.com
More information about the libertas-dev
mailing list