diff --git a/test/lib/setup b/test/lib/setup index 58371bd..cc24cb0 100755 --- a/test/lib/setup +++ b/test/lib/setup @@ -17,6 +17,7 @@ INITRAMFS="${BASEPATH}/mbuto.img" VCPUS="$( [ $(nproc) -ge 8 ] && echo 6 || echo $(( $(nproc) / 2 + 1 )) )" __mem_kib="$(sed -n 's/MemTotal:[ ]*\([0-9]*\) kB/\1/p' /proc/meminfo)" VMEM="$((${__mem_kib} / 1024 / 4))" +VMEM_ROUND="$(((${VMEM} + 500) / 1000))G" QEMU_ARCH="$(uname -m)" [ "${QEMU_ARCH}" = "i686" ] && QEMU_ARCH=i386 @@ -145,23 +146,45 @@ setup_passt_in_ns() { else context_run passt "make clean" context_run passt "make" - context_run_bg passt "./passt -f ${__opts} -s ${STATESETUP}/passt.socket -t 10001,10011,10021,10031 -u 10001,10011,10021,10031 -P ${STATESETUP}/passt.pid" + if [ ${VHOST_USER} -eq 1 ]; then + context_run_bg passt "./passt -f ${__opts} --vhost-user -s ${STATESETUP}/passt.socket -t 10001,10011,10021,10031 -u 10001,10011,10021,10031 -P ${STATESETUP}/passt.pid" + else + context_run_bg passt "./passt -f ${__opts} -s ${STATESETUP}/passt.socket -t 10001,10011,10021,10031 -u 10001,10011,10021,10031 -P ${STATESETUP}/passt.pid" + fi fi wait_for [ -f "${STATESETUP}/passt.pid" ] GUEST_CID=94557 - context_run_bg qemu 'qemu-system-'"${QEMU_ARCH}" \ - ' -machine accel=kvm' \ - ' -M accel=kvm:tcg' \ - ' -m '${VMEM}' -cpu host -smp '${VCPUS} \ - ' -kernel ' "/boot/vmlinuz-$(uname -r)" \ - ' -initrd '${INITRAMFS}' -nographic -serial stdio' \ - ' -nodefaults' \ - ' -append "console=ttyS0 mitigations=off apparmor=0" ' \ - ' -device virtio-net-pci,netdev=s0 ' \ - " -netdev stream,id=s0,server=off,addr.type=unix,addr.path=${STATESETUP}/passt.socket " \ - " -pidfile ${STATESETUP}/qemu.pid" \ - " -device vhost-vsock-pci,guest-cid=$GUEST_CID" + if [ ${VHOST_USER} -eq 1 ]; then + context_run_bg qemu 'qemu-system-$(uname -m)' \ + ' -machine accel=kvm' \ + ' -M accel=kvm:tcg' \ + ' -m '${VMEM_ROUND}' -cpu host -smp '${VCPUS} \ + ' -kernel ' "/boot/vmlinuz-$(uname -r)" \ + ' -initrd '${INITRAMFS}' -nographic -serial stdio' \ + ' -nodefaults' \ + ' -append "console=ttyS0 mitigations=off apparmor=0" ' \ + " -chardev socket,id=chr0,path=${STATESETUP}/passt.socket" \ + ' -netdev vhost-user,id=netdev0,chardev=chr0' \ + ' -device virtio-net,netdev=netdev0' \ + " -object memory-backend-memfd,id=memfd0,share=on,size=${VMEM_ROUND}" \ + ' -numa node,memdev=memfd0' \ + " -pidfile ${STATESETUP}/qemu.pid" \ + " -device vhost-vsock-pci,guest-cid=$GUEST_CID" + else + context_run_bg qemu 'qemu-system-$(uname -m)' \ + ' -machine accel=kvm' \ + ' -M accel=kvm:tcg' \ + ' -m '${VMEM}' -cpu host -smp '${VCPUS} \ + ' -kernel ' "/boot/vmlinuz-$(uname -r)" \ + ' -initrd '${INITRAMFS}' -nographic -serial stdio' \ + ' -nodefaults' \ + ' -append "console=ttyS0 mitigations=off apparmor=0" ' \ + ' -device virtio-net-pci,netdev=s0 ' \ + " -netdev stream,id=s0,server=off,addr.type=unix,addr.path=${STATESETUP}/passt.socket " \ + " -pidfile ${STATESETUP}/qemu.pid" \ + " -device vhost-vsock-pci,guest-cid=$GUEST_CID" + fi context_setup_guest guest $GUEST_CID } diff --git a/test/run b/test/run index 3b37663..b522a69 100755 --- a/test/run +++ b/test/run @@ -70,6 +70,18 @@ run() { test build/clang_tidy teardown build + VALGRIND=0 + VHOST_USER=1 + setup passt_in_ns + test passt/ndp + test passt/dhcp + test perf_vhost_user/passt_tcp + test perf_vhost_user/passt_udp + test perf_vhost_user/pasta_tcp + test perf_vhost_user/pasta_udp + test passt_in_ns/shutdown + teardown passt_in_ns + setup pasta test pasta/ndp test pasta/dhcp