netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Netchannel: TCP memcpy() to mapped are support. Benchmarks.
@ 2006-06-02  9:37 Evgeniy Polyakov
  2006-06-02 10:29 ` Netchannel: TCP memcpy() to mapped support. Patch Evgeniy Polyakov
  0 siblings, 1 reply; 2+ messages in thread
From: Evgeniy Polyakov @ 2006-06-02  9:37 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, caitlinb, kelly, rusty

[-- Attachment #1: Type: text/plain, Size: 1094 bytes --]

Hello, developers.

Attached initial benchmark of netchannel with memcpy() into kernelspace
area, which could be mapped from userspace versus socket code using
1gbit link.

As you can see from the graph, netchannels outperforms sockets in speed, 
but it's CPU usage is higher too.
It is possible, that it is the price, i.e. socket code would increase
it's CPU usage if it could increase it's processing speed.

Implementationis fairly ugly yet. It is required a some changes in 
generic TCP state machine processing logic to clean things up, 
so it would be performed not on top of sockets, 
but using skbs from queues with appropriate parameters (timeout,
flags) provided either as new structure (so it would be embedded into 
struct sock and netchannel) or as function parameters.

Netchannels currently use two queue dereferencings to work with socket's
queue processing: 
- from netchannel's queue which is filled in interrupt
- from socket's queue which is filled in process context

which is a source of some speed problems too.

It still requires some thinking...

-- 
	Evgeniy Polyakov

[-- Attachment #2: netchannel_speed.png --]
[-- Type: image/png, Size: 8322 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-06-02 10:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-02  9:37 Netchannel: TCP memcpy() to mapped are support. Benchmarks Evgeniy Polyakov
2006-06-02 10:29 ` Netchannel: TCP memcpy() to mapped support. Patch Evgeniy Polyakov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).