Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687AF_VSOCK test suite-------------------These tests exercise net/vmw_vsock/ host<->guest sockets for VMware, KVM, andHyper-V.
The following tests are available:
* vsock_test - core AF_VSOCK socket functionality * vsock_diag_test - vsock_diag.ko module for listing open sockets
The following prerequisite steps are not automated and must be performed priorto running tests:
1. Build the kernel, make headers_install, and build these tests.2. Install the kernel and tests on the host.3. Install the kernel and tests inside the guest.4. Boot the guest and ensure that the AF_VSOCK transport is enabled.
Invoke test binaries in both directions as follows:
# host=server, guest=client (host)# $TEST_BINARY --mode=server \ --control-port=1234 \ --peer-cid=3 (guest)# $TEST_BINARY --mode=client \ --control-host=$HOST_IP \ --control-port=1234 \ --peer-cid=2
# host=client, guest=server (guest)# $TEST_BINARY --mode=server \ --control-port=1234 \ --peer-cid=2 (host)# $TEST_BINARY --mode=client \ --control-port=$GUEST_IP \ --control-port=1234 \ --peer-cid=3
Some tests are designed to produce kernel memory leaks. Leaks detection,however, is deferred to Kernel Memory Leak Detector. It is recommended to enablekmemleak (CONFIG_DEBUG_KMEMLEAK=y) and explicitly trigger a scan after each testsuite run, e.g.
# echo clear > /sys/kernel/debug/kmemleak # $TEST_BINARY ... # echo "wait for any grace periods" && sleep 2 # echo scan > /sys/kernel/debug/kmemleak # echo "wait for kmemleak" && sleep 5 # echo scan > /sys/kernel/debug/kmemleak # cat /sys/kernel/debug/kmemleak
For more information see Documentation/dev-tools/kmemleak.rst.
vsock_perf utility-------------------'vsock_perf' is a simple tool to measure vsock performance. It works insender/receiver modes: sender connect to peer at the specified port andstarts data transmission to the receiver. After data processing is done,it prints several metrics(see below).
Usage:# run as sender# connect to CID 2, port 1234, send 1G of data, tx buf size is 1M./vsock_perf --sender 2 --port 1234 --bytes 1G --buf-size 1M
Output:tx performance: A Gbits/s
Output explanation:A is calculated as "number of bits to send" / "time in tx loop"
# run as receiver# listen port 1234, rx buf size is 1M, socket buf size is 1G, SO_RCVLOWAT is 64K./vsock_perf --port 1234 --buf-size 1M --vsk-size 1G --rcvlowat 64K
Output:rx performance: A Gbits/stotal in 'read()': B secPOLLIN wakeups: Caverage in 'read()': D ns
Output explanation:A is calculated as "number of received bits" / "time in rx loop".B is time, spent in 'read()' system call(excluding 'poll()')C is number of 'poll()' wake ups with POLLIN bit set.D is B / C, e.g. average amount of time, spent in single 'read()'.