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

Reply via email to