Subject: Re: [vserver] call method of host in guest os
From: "Michael S. Zick" <mszick@morethan.org>
Date: Sat, 20 Dec 2008 16:06:06 -0600

On Thu December 18 2008, Michael S. Zick wrote:
> 
> You would probably be better off with tipc:
> http://tipc.sourceforge.net
> 

Well, I mentioned it, and it is a slow weekend - - -
Besides, haven't done anything with tipc in nearly 3 decades ;)

= = = =

Hardware: C2Q (Q9300) @ 2.5Ghz (probably typical of a server)
Host: 64bit-Gentoo, 2.6.27.10-vs2.3.0.36.2 + tipc-1.7.6 + tipc_utils-1.1.8
Guest: 32bit-Gentoo-i686
Network: dummy0

= = = =

The good: The tipc sources do not conflict with the vserver patch.
Just overwrite net/tipc with the project's tarball for .27
(The kernel main-stream isn't even close to current.)

The bad: The tipc sources are probably not context aware.
I don't think that really makes a difference in this case, could be wrong.

Build and install stuff - the usual fun, plus build tools in 32bit also.

Interfaces do not have addresses, only the machine node has a "name" (number).
Probably just using the context number for the "name" would do fine.

= = = =
The included benchmark program (guest is server, host is client here):

wolf-c2q benchmark # ./client_tipc
****** TIPC benchmark client started ******
Client master: Starting Latency Benchmark
Exchanging 10240 messages of size 64 octets (burst size 10240)
... took 71 ms (round-trip avg/msg: 6 us)
Exchanging 2560 messages of size 256 octets (burst size 2560)
... took 17 ms (round-trip avg/msg: 6 us)
Exchanging 640 messages of size 1024 octets (burst size 640)
... took 4 ms (round-trip avg/msg: 6 us)
Exchanging 160 messages of size 4096 octets (burst size 160)
... took 1 ms (round-trip avg/msg: 6 us)
Exchanging 40 messages of size 16384 octets (burst size 40)
... took 0 ms (round-trip avg/msg: 0 us)
Exchanging 10 messages of size 65536 octets (burst size 10)
... took 0 ms (round-trip avg/msg: 0 us)
Client master: Completed Latency Benchmark
Client master: Starting Throughput Benchmark
Exchanging 8*10240 messages of size 64 octets (burst size 2048)
... took 163 ms (avg 251288 msg/s/dir, 128659456 bits/s/dir)
    avg execution time (send+receive) 0 us/msg
Exchanging 8*2560 messages of size 256 octets (burst size 512)
... took 47 ms (avg 217872 msg/s/dir, 446201856 bits/s/dir)
    avg execution time (send+receive) 1 us/msg
Exchanging 8*640 messages of size 1024 octets (burst size 128)
... took 9 ms (avg 284444 msg/s/dir, 2330165248 bits/s/dir)
    avg execution time (send+receive) 0 us/msg
Exchanging 8*160 messages of size 4096 octets (burst size 32)
... took 4 ms (avg 160000 msg/s/dir, 5242880000 bits/s/dir)
    avg execution time (send+receive) 1 us/msg
Exchanging 8*40 messages of size 16384 octets (burst size 8)
... took 11 ms (avg 14545 msg/s/dir, 1906442240 bits/s/dir)
    avg execution time (send+receive) 17 us/msg
Exchanging 8*10 messages of size 65536 octets (burst size 2)
... took 2 ms (avg 20000 msg/s/dir, 10485760000 bits/s/dir)
    avg execution time (send+receive) 12 us/msg
Client master: Completed Throughput Benchmark
****** TIPC benchmark client finished ******

= = = =

Interesting.  That should get a message to the host and back. ;)

Note:
The origins of tipc at Ericsson was to control networks of 
telephone switching machines in "near real time" - initially
to implement a "least cost routing" switching system.

Goal: 
Complete the telephone connection dialed within 4 seconds 
Nationally, 10 seconds Inter-nationally.
Do I write as if I had something to do with it back in '82? ;)

Mike