From 0e627645f1423b2c429a0d5873b6c90f24e0ed24 Mon Sep 17 00:00:00 2001 From: pmikus Date: Wed, 7 Dec 2016 13:19:59 +0100 Subject: [PATCH] Fix: Nested VM performance optimizations - Fix he issue with packet loss by workaround - Fix the isolcpu patch Change-Id: Ia9945963a63fceef5ce00d9cbcd0228c81783a47 Signed-off-by: pmikus --- .../disk-image-builder/nested/image-patches/06-dpdk-support | 12 ++++++++++++ .../disk-image-builder/nested/image-patches/07-isolate-cpu | 8 ++++---- 2 files changed, 16 insertions(+), 4 deletions(-) mode change 100644 => 100755 resources/tools/disk-image-builder/nested/image-patches/07-isolate-cpu diff --git a/resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support b/resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support index fb166ef2cf..5990f0925b 100755 --- a/resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support +++ b/resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support @@ -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. diff --git a/resources/tools/disk-image-builder/nested/image-patches/07-isolate-cpu b/resources/tools/disk-image-builder/nested/image-patches/07-isolate-cpu old mode 100644 new mode 100755 index 72d94160be..401966deac --- a/resources/tools/disk-image-builder/nested/image-patches/07-isolate-cpu +++ b/resources/tools/disk-image-builder/nested/image-patches/07-isolate-cpu @@ -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 -- 2.16.6