72 lines · plain
1AF_VSOCK test suite2-------------------3These tests exercise net/vmw_vsock/ host<->guest sockets for VMware, KVM, and4Hyper-V.5 6The following tests are available:7 8 * vsock_test - core AF_VSOCK socket functionality9 * vsock_diag_test - vsock_diag.ko module for listing open sockets10 11The following prerequisite steps are not automated and must be performed prior12to running tests:13 141. Build the kernel, make headers_install, and build these tests.152. Install the kernel and tests on the host.163. Install the kernel and tests inside the guest.174. Boot the guest and ensure that the AF_VSOCK transport is enabled.18 19Invoke test binaries in both directions as follows:20 21 # host=server, guest=client22 (host)# $TEST_BINARY --mode=server \23 --control-port=1234 \24 --peer-cid=325 (guest)# $TEST_BINARY --mode=client \26 --control-host=$HOST_IP \27 --control-port=1234 \28 --peer-cid=229 30 # host=client, guest=server31 (guest)# $TEST_BINARY --mode=server \32 --control-port=1234 \33 --peer-cid=234 (host)# $TEST_BINARY --mode=client \35 --control-port=$GUEST_IP \36 --control-port=1234 \37 --peer-cid=338 39vsock_perf utility40-------------------41'vsock_perf' is a simple tool to measure vsock performance. It works in42sender/receiver modes: sender connect to peer at the specified port and43starts data transmission to the receiver. After data processing is done,44it prints several metrics(see below).45 46Usage:47# run as sender48# connect to CID 2, port 1234, send 1G of data, tx buf size is 1M49./vsock_perf --sender 2 --port 1234 --bytes 1G --buf-size 1M50 51Output:52tx performance: A Gbits/s53 54Output explanation:55A is calculated as "number of bits to send" / "time in tx loop"56 57# run as receiver58# listen port 1234, rx buf size is 1M, socket buf size is 1G, SO_RCVLOWAT is 64K59./vsock_perf --port 1234 --buf-size 1M --vsk-size 1G --rcvlowat 64K60 61Output:62rx performance: A Gbits/s63total in 'read()': B sec64POLLIN wakeups: C65average in 'read()': D ns66 67Output explanation:68A is calculated as "number of received bits" / "time in rx loop".69B is time, spent in 'read()' system call(excluding 'poll()')70C is number of 'poll()' wake ups with POLLIN bit set.71D is B / C, e.g. average amount of time, spent in single 'read()'.72