Fix: Nested VM performance optimizations 48/4148/7
authorpmikus <pmikus@cisco.com>
Wed, 7 Dec 2016 12:19:59 +0000 (13:19 +0100)
committerPeter Mikus <pmikus@cisco.com>
Mon, 12 Dec 2016 13:29:40 +0000 (13:29 +0000)
- Fix he issue with packet loss by workaround
- Fix the isolcpu patch

Change-Id: Ia9945963a63fceef5ce00d9cbcd0228c81783a47
Signed-off-by: pmikus <pmikus@cisco.com>
resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support
resources/tools/disk-image-builder/nested/image-patches/07-isolate-cpu [changed mode: 0644->0755]

index fb166ef..5990f09 100755 (executable)
@@ -34,6 +34,8 @@ fi
 
 # Set up hugepages
 echo "vm.nr_hugepages = ${NUM_HUGEPAGES}" > /etc/sysctl.conf
+echo "vm.swappiness = 0" >> /etc/sysctl.conf
+echo "kernel.randomize_va_space = 0" >> /etc/sysctl.conf
 sysctl -p
 mkdir -p /mnt/huge
 grep -q hugetlbfs /etc/fstab || echo "hugetlbfs /mnt/huge hugetlbfs mode=1770,gid=2021 0 0" >> /etc/fstab
@@ -50,10 +52,20 @@ do
   echo $dev > /sys/bus/pci/drivers/${TARGET_DRIVER}/bind
 done
 
+# RCU and IRQ affinity
 for i in $(ls /proc/irq/ | grep [0-9])
 do
   echo 1 > /proc/irq/$i/smp_affinity
 done
+echo 1 | sudo tee /sys/bus/workqueue/devices/writeback/cpumask
+
+# There is a bug causing packet loss when VM is initialized. This workaround is
+# supposed to re-initialize CPUs.
+for i in $(ls -d /sys/devices/system/cpu/cpu[1-9]/online); do
+    echo 0 | sudo tee $i
+    sleep 2
+    echo 1 | sudo tee $i
+done
 
 # Start testpmd in the background. This looks a bit convoluted; we need to redirect stdin
 # (and keep stdin active) or else testpmd will quit.
old mode 100644 (file)
new mode 100755 (executable)
index 72d9416..401966d
@@ -1,8 +1,8 @@
 #!/bin/sh
 
 patch boot/grub/menu.lst <<"_EOF"
-15c17
-<       kernel /boot/bzImage rw root=/dev/sda1 console=ttyS0,115200n8
+17c17
+<      kernel /boot/bzImage rw root=/dev/sda1 ipv6.disable=1 console=ttyS0,115200n8
 ---
->       kernel /boot/bzImage rw root=/dev/sda1 console=ttyS0,115200n8 isolcpus=1-7 nohz_full=1-7 rcu_nocbs=1-7
-_EOF
\ No newline at end of file
+>      kernel /boot/bzImage rw root=/dev/sda1 ipv6.disable=1 console=ttyS0,115200n8 isolcpus=1,2,3,4 nohz_full=1,2,3,4 rcu_nocbs=1,2,3,4 intel_pstate=disable
+_EOF