I work for a software company that make software MCUs (Multipoint control
units - Video Conferencing). In a pure sense they are simply media routers
which handle almost exclusively UDP traffic. We currently run under Linux,
Solaris and Windows but because of the lack of any real asynchronous UDP
mechanisms in Linux or Solaris we are getting the best performance on our
Windows boxes. There are a lot of *NIX guys around here (including me) who
don't like that Windows takes the cake. We are working with Sun on improving
the async UDP in Solaris 9 but haven't had any real success yet.
Currently we do the same thing in Linux that we do for Solaris; open up
threads for the UDP traffic and have them wait for the data. This obviously
leads to rather poor performance. I know a lot more about the specifics of
our Solaris issues but I assume they apply to Linux as well. Currently
Windows gives us the ability to send out packets asynchronously and then
report to us where the packets have gone. Along with that when data is
received it can be copied directly from the kernel to our app. For our other
OSes it needs to be copied into user space and then into our app.
I don't really know of any answers right now but I would love to hear back
from anyone about what we might be able to do with this. We don't have
nearly the resources we used to so we might be over looking some facilities
offered in the 2.4 kernel that weren't in the 2.2 so I would love to hear
anything.
Thanks,
Brian Raymond
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/