From 9392ea7e5a0090e7898d706bfc53c44c3fdb731d Mon Sep 17 00:00:00 2001 From: Stefano Brivio Date: Wed, 13 Nov 2024 09:04:07 +0100 Subject: test: Add tests for passt in vhost-user mode Run functional and performance tests for vhost-user mode as well. For functional tests, we add passt_vu and passt_vu_in_ns as symbolic links to their non-vhost-user counterparts, as no differences are intended but we want to distinguish them in test logs. For performance tests, instead, we add separate perf/passt_vu_tcp and perf/passt_vu_udp files, as we need longer test duration, as well as higher UDP sending bandwidths and larger TCP windows, to actually get the highest throughput vhost-user mode offers. For valgrind tests, vhost-user mode needs two extra system calls: statx and readlink. Add them as EXTRA_SYSCALLS for the valgrind target. Signed-off-by: Laurent Vivier Reviewed-by: David Gibson Signed-off-by: Stefano Brivio --- Makefile | 3 +- test/lib/perf_report | 15 ++++ test/lib/setup | 77 ++++++++++++++---- test/lib/setup_ugly | 2 +- test/passt_vu | 1 + test/passt_vu_in_ns | 1 + test/perf/passt_vu_tcp | 211 +++++++++++++++++++++++++++++++++++++++++++++++++ test/perf/passt_vu_udp | 159 +++++++++++++++++++++++++++++++++++++ test/run | 25 ++++++ test/two_guests_vu | 1 + 10 files changed, 479 insertions(+), 16 deletions(-) create mode 120000 test/passt_vu create mode 120000 test/passt_vu_in_ns create mode 100644 test/perf/passt_vu_tcp create mode 100644 test/perf/passt_vu_udp create mode 120000 test/two_guests_vu diff --git a/Makefile b/Makefile index faa5c23..cb74480 100644 --- a/Makefile +++ b/Makefile @@ -101,7 +101,8 @@ qrap: $(QRAP_SRCS) passt.h valgrind: EXTRA_SYSCALLS += rt_sigprocmask rt_sigtimedwait rt_sigaction \ rt_sigreturn getpid gettid kill clock_gettime mmap \ - mmap2 munmap open unlink gettimeofday futex + mmap2 munmap open unlink gettimeofday futex statx \ + readlink valgrind: FLAGS += -g -DVALGRIND valgrind: all diff --git a/test/lib/perf_report b/test/lib/perf_report index d1ef50b..c4ec817 100755 --- a/test/lib/perf_report +++ b/test/lib/perf_report @@ -49,6 +49,21 @@ td:empty { visibility: hidden; } __passt_tcp_LINE__ __passt_udp_LINE__ +
  • passt with vhost-user support

    + + + + + + + + __passt_vu_tcp_header__ + __passt_vu_udp_header__ + + __passt_vu_tcp_LINE__ __passt_vu_udp_LINE__ +
    + TCP, __passt_vu_tcp_threads__ at __passt_vu_tcp_freq__ GHzUDP, __passt_vu_udp_threads__ at __passt_vu_udp_freq__ GHz
    MTU:
    +