On 27/04/14 11:23, Justin Cormack wrote: > On Sun, Apr 27, 2014 at 12:13 PM, Mahnaz Talebi <[email protected]> wrote: >> Hi, >> >> Is TCP/IP rump kernel performance better than regular tcp/ip stack? I study >> performance testing in The Design and Implementation of the Anykernel and >> Rump Kernel and conluded that their performance are almost equal.
Studies tend to prove the hypothesises they set out to prove ... When that study was done, the focus was to show that pulling the networking stack out of the kernel does not make it superslow. That in itself was an important result: a full-featured, decently performing, portable open source networking stack. The goal of a high-performance userspace networking stack emerged later. >> How much performance can be improved by using netmap or dpdk for packet I/O? > > Right now it is somewhat unclear, because some more work needs doing. > If you do not use netmap/dpdk or some other fast userspace way to > drive the network then you would expect it to be slower, as you are > still delivering packets via the host kernel (via tap device) so you > still have the overhead of that. If you have direct delivery to > hardware as you get with dpdk etc, then you should in principle be > able to get somewhat better performance, but how much is very unclear, > and how much optimisation work is needed is also unclear. > > Almost all the userspace networking has been around applications such > as switching and packet filtering rather than higher level protocols. > Some have argued that there is less to gain there, as people do larger > writes with tcp so there is less OS overhead, but that is going to be > very application dependent; given that OS bypass mechanisms like > sendfile are still in common use I suspect there is a fair bit of > opportunity for some applications. Well, yes, "it depends". There's still a bunch of generic work to be done. I've recently posted this link, and I'll continue posting it until the issues have been dealt with: https://github.com/rumpkernel/wiki/wiki/Performance%3A-optimizing-networking-performance There are definite advantages that a networking stack local to an application can do, including batch processing, cache/core awareness etc. My personal favourite is running multiple networking stacks each pinned to a single core and thereby eliminating memory bus locks. I'm sure it's possible to construct some academic measurement for a pathological case demonstrating 500% performance improvement with netmap or dpdk. However, such figures are not very useful. Without a real world use case and without throwing manpower or money at optimizing said use case, it's not possible to give a useful answer beyond "yes". ------------------------------------------------------------------------------ Start Your Social Network Today - Download eXo Platform Build your Enterprise Intranet with eXo Platform Software Java Based Open Source Intranet - Social, Extensible, Cloud Ready Get Started Now And Turn Your Intranet Into A Collaboration Platform http://p.sf.net/sfu/ExoPlatform _______________________________________________ rumpkernel-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/rumpkernel-users
