report: edits to methodology_kvm_vms_vhost_user 32/19432/2
authorMaciek Konstantynowicz <mkonstan@cisco.com>
Wed, 8 May 2019 13:57:19 +0000 (14:57 +0100)
committerMaciek Konstantynowicz <mkonstan@cisco.com>
Wed, 8 May 2019 16:02:59 +0000 (17:02 +0100)
Change-Id: Iaa2cd0bbe6171ac800489b897ddae079332b48ee
Signed-off-by: Maciek Konstantynowicz <mkonstan@cisco.com>
docs/report/introduction/methodology_kvm_vms_vhost_user.rst

index dae1e5a..79f1134 100644 (file)
@@ -1,63 +1,74 @@
 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`.
+QEMU is used for KVM VM vhost-user testing enviroment. By default,
+standard QEMU version is used, preinstalled from OS repositories
+(qemu-2.11.1 for Ubuntu 18.04, qemu-2.5.0 for Ubuntu 16.04). 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
+FD.io CSIT performance lab is testing VPP vhost-user 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 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.
+  settings: i) [cfs] default settings, ii) [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
   <https://wiki.fd.io/view/CSIT/csit-perf-env-tuning-ubuntu1604>`_.
-- 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.
+Testing with different CFS settings enables verifying the impact of
+making VPP and VM data plane threads less susceptible to other Linux OS
+system tasks hijacking CPU cores running those data plane threads.
 
-Image VM
+CSIT supports two types of VMs: 
+
+- **Image-VM**: used for all functional, VPP_device, and regular
+  performance tests except NFV density tests.
+
+- **Kernel-VM**: new VM type introduced for NFV density tests to provide
+  greater in-VM application install flexibility and to further reduce
+  test execution time by simpler VM lifecycle management.
+
+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 <https://buildroot.org/>`_ 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<n> and all VirtIO interfaces will be named virtio<n>. 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
+CSIT can use a pre-created VM image. The path to the image can be
+adjusted in `Constants.py`. For convenience and full compatibility CSIT
+repository contains a set of scripts to prepare `Built-root
+<https://buildroot.org/>`_ 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 make it lightweight and with
+fast booting time to limit impact on tests duration.
+
+In order to execute CSIT tests, VM image must have following software
+installed: qemu-guest-agent, sshd, bridge-utils, VirtIO support and DPDK
+Testpmd/L3fwd applications. Username/password for the VM must be
+``cisco``/``cisco`` and ``NOPASSWD`` sudo access. The interface naming
+is based on the driver (management interface type is Intel E1000), all
+E1000 interfaces will be named ``mgmt<n>`` and all VirtIO interfaces
+will be named ``virtio<n>``. 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.
+CSIT can use a kernel KVM image as a boot kernel, as an alternative to
+image VM. This option allows better configurability of what application
+is running in VM userspace. Using root9p filesystem allows mapping the
+host-OS filesystem as read only guest-OS filesystem.
 
-Example of custom init script for the kernel VM:
+Example of custom init script for the kernel-VM:
 
 ::
 
@@ -79,10 +90,10 @@ Example of custom init script for the kernel VM:
   $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.
+QemuUtils library during runtime replaces the ``$vnf_bin`` variable by
+the path to NF binary and its parameters. This allows CSIT to run any
+application installed on host OS, for example the same version of VPP
+as running on the host-OS.
 
-Kernel KVM image must be available on host filesystem as a prerequisite.
-The path to kernel image is defined in `Constants.py`.
+Kernel-VM image must be available in the host filesystem as a
+prerequisite. The path to kernel-VM image is defined in `Constants.py`.