Hello, developers. Initial TCP benchmark. After tweaking some stuff I run netchannel vs socket TCP benchmark. Unfortunately currently I'm unable to run 1Gbit test, since my test machine is slightly broken... So only 100Mbit for now.
Performance graph attached. Speed is the same, CPU usage is the same (socket CPU usage is 1% (or 20% :) more than netchannel one, but let's throw this away as some experimental error). Netchannel was setup in copy_to_user mode, so it was not expected to be faster or eat less CPU, but main purpose of this test was to show that netchannels with _all_ protocol processing moved to process' context can be at least that fast as when it is splitted into pieces. I've found some links in the web and blogs where some developers completely disagree with VJ idea of moving stuff into process context... Well, this should break theirs mostly theoretical arguments. It is clear that using memcpy setup CPU usage numbers (at least) for netchannel are noticebly better than for sockets (see previous posted benchmarks). I will start changing core networking code to accept different copying "actor" methods which will allow to use netchannels preallocated mapped area instead of copy_to_user(). Full patch and userspace application are available from netchannel homepage [1]. Thank you. 1. Netchannel homepage. http://tservice.net.ru/~s0mbre/old/?section=projects&item=netchannel Signed-off-by: Evgeniy Polyakov <[EMAIL PROTECTED]> -- Evgeniy Polyakov
netchannel_speed.png
Description: PNG image