X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=docs%2Freport%2Fintroduction%2Fmethodology_kvm_vms_vhost_user.rst;h=216d461911cd5e3b21a04fbd1023097bc76a460a;hb=HEAD;hp=dae1e5a8759ffcfb5245f86d5c91089c88fa0f59;hpb=06785b385fb4acf5fd5f20ce3ee7a46e0b863c06;p=csit.git diff --git a/docs/report/introduction/methodology_kvm_vms_vhost_user.rst b/docs/report/introduction/methodology_kvm_vms_vhost_user.rst deleted file mode 100644 index dae1e5a875..0000000000 --- a/docs/report/introduction/methodology_kvm_vms_vhost_user.rst +++ /dev/null @@ -1,88 +0,0 @@ -KVM VMs vhost-user ------------------- - -QEMU is used for vhost testing enviroment. By default, standard QEMU version -preinstalled from OS repositories is used (qemu-2.11.1 for Ubuntu 18.04, -qemu-2.5.0 for Ubuntu 16.04) and the path to the QEMU binary can be adjusted -in `Constants.py`. - -FD.io CSIT performance lab is testing VPP vhost with KVM VMs using -following environment settings: - -- Tests with varying Qemu virtio queue (a.k.a. vring) sizes: [vr1024] 1024 - descriptors to optimize for packet throughput. -- Tests with varying Linux :abbr:`CFS (Completely Fair Scheduler)` - settings: [cfs] default settings, [cfsrr1] CFS RoundRobin(1) policy - applied to all data plane threads handling test packet path including - all VPP worker threads and all Qemu testpmd poll-mode threads. -- Resulting test cases are all combinations with [vr1024] and - [cfs,cfsrr1] settings. -- Adjusted Linux kernel :abbr:`CFS (Completely Fair Scheduler)` - scheduler policy for data plane threads used in CSIT is documented in - `CSIT Performance Environment Tuning wiki - `_. -- The purpose is to verify performance impact (MRR and NDR/PDR - throughput) and same test measurements repeatability, by making VPP - and VM data plane threads less susceptible to other Linux OS system - tasks hijacking CPU cores running those data plane threads. - -CSIT does support two types VM definitions: Image or Kernel. - -Image VM -~~~~~~~~ - -CSIT can use a pre-created VM image. The path to image can be adjusted in -`Constants.py`. For convenience and full compatibility CSIT repository contains -a set of scripts to prepare `Built-root `_ based -embedded Linux image with all the dependencies needed to run DPDK testpmd, DPDK -l3fwd, Linux bridge or Linux IPv4 forwarding. - -Built-root was chosen for a VM image to be lightweight and booting time -should not impact tests duration. - -VM image must have installed at least qemu-guest-agent, sshd, bridge-utils, -VirtIO support and DPDK Testpmd/L3fwd application. Username/password for the VM -must be cisco/cisco and NOPASSWD sudo access. The interface naming is based on -driver (management interface type is Intel E1000), all E1000 interfaces will be -named mgmt and all VirtIO interfaces will be named virtio. In VM -"/etc/init.d/qemu-guest-agent" must be set to "TRANSPORT=isa-serial:/dev/ttyS1" -because ttyS0 is used by serial console and ttyS1 is dedicated for -qemu-guest-agent in QEMU setup. - -Kernel VM -~~~~~~~~~ - -As an alternative to image VM, CSIT can use a kernel KVM image as a boot kernel. -This option allows better configurability of what application is running in VM -userspace. As a filesystem root9p is used which allows to map the host OS -filesystem as read only guest OS filesystem. - -Example of custom init script for the kernel VM: - -:: - - #!/bin/bash - mount -t sysfs -o "nodev,noexec,nosuid" sysfs /sys - mount -t proc -o "nodev,noexec,nosuid" proc /proc - mkdir /dev/pts - mkdir /dev/hugepages - mount -t devpts -o "rw,noexec,nosuid,gid=5,mode=0620" devpts /dev/pts || true - mount -t tmpfs -o "rw,noexec,nosuid,size=10%,mode=0755" tmpfs /run - mount -t tmpfs -o "rw,noexec,nosuid,size=10%,mode=0755" tmpfs /tmp - mount -t hugetlbfs -o "rw,relatime,pagesize=2M" hugetlbfs /dev/hugepages - echo 0000:00:06.0 > /sys/bus/pci/devices/0000:00:06.0/driver/unbind - echo 0000:00:07.0 > /sys/bus/pci/devices/0000:00:07.0/driver/unbind - echo uio_pci_generic > /sys/bus/pci/devices/0000:00:06.0/driver_override - echo uio_pci_generic > /sys/bus/pci/devices/0000:00:07.0/driver_override - echo 0000:00:06.0 > /sys/bus/pci/drivers/uio_pci_generic/bind - echo 0000:00:07.0 > /sys/bus/pci/drivers/uio_pci_generic/bind - $vnf_bin - poweroff -f - -The `$vnf_bin` variable is replaced, during runtime by the QemuUtils libraries, -by the path to NF binary and its parameters. This allows CSIT to run the -applications installed on host OS, for example VPP of the same version as -running on host OS. - -Kernel KVM image must be available on host filesystem as a prerequisite. -The path to kernel image is defined in `Constants.py`.