Back to bug 1394402

Who When What Removed Added
Andrew Theurer 2016-11-11 21:20:28 UTC CC atheurer, dshaks, fbaudin, krister, yrachman
Aniss Loughlam 2016-11-14 19:36:24 UTC Priority unspecified medium
CC aloughla
Severity unspecified medium
Flavio Leitner 2016-11-18 18:56:51 UTC CC fleitner
Flags needinfo?(atheurer)
Daniel Berrangé 2016-11-23 12:04:54 UTC CC berrange
Frederic Herrmann 2016-11-30 12:24:49 UTC CC fherrman
Flavio Leitner 2016-12-01 22:46:38 UTC Assignee ovs-team atheurer
Yariv 2016-12-06 21:33:59 UTC Flags needinfo?(atheurer)
Andrew Theurer 2016-12-07 22:37:22 UTC Flags needinfo?(atheurer) needinfo?(atheurer)
Yariv 2016-12-08 20:52:57 UTC Status NEW ASSIGNED
CC dnavale
Summary Documentation: provide steps to achieve zero-loss networking with DPDK, openvswitch, vhostuser, and testpmd [Doc] provide steps to achieve zero-loss networking with DPDK, openvswitch, vhostuser, and testpmd
Flags needinfo?(dnavale)
Maxim Babushkin 2016-12-14 15:04:19 UTC CC mbabushk
Doc Text 1) In order to reduce as much as possible any interruptions to allocated cpus while running either openvswitch, VM-vcpu, or the inside-VM VNF threads, cpus should be isolated.
However, CPUAffinity cannot remove or prevent all kernel threads from running on these cpus. To prevent [most] of the kernel threads, one must use the boot option "isolcpus=<cpulist>". This uses the same cpu list as nohz_full and rcu_nocbs. Isolcpus is engaged right at kernel boot, and thus can prevent many kernel threads from be scheduled on those cpus.
This could be run on both hypervisor and guest server as well.

#!/bin/bash
isol_cpus=`awk '{ for (i = 1; i <= NF; i++) if ($i ~ /nohz/) print $i };'
/proc/cmdline | cut -d"=" -f2`

if [ ! -z "$isol_cpus" ]; then
grubby --update-kernel=grubby --default-kernel --args=isolcpus=$isol_cpus
fi


2) The following re-pin the emulator thread action is not recommended unless the user experiences specific performance problems.

#!/bin/bash
cpu_list=`grep -e "^CPUAffinity=.*" /etc/systemd/system.conf | sed -e 's/CPUAffinity=//' -e 's/ /,/'`
if [ ! -z "$cpu_list" ]; then
virsh_list=`virsh list| sed -e '1,2d' -e 's/\s\+/ /g' | awk -F" " '{print $2}'`
if [ ! -z "$virsh_list" ]; then
for vm in $virsh_list; do virsh emulatorpin $vm --cpulist $cpu_list; done
fi
fi
Lucy Bopf 2016-12-15 01:34:46 UTC CC lbopf
Flags needinfo?(dnavale) needinfo?(yrachman)
Franck Baudin 2017-01-05 07:54:10 UTC Doc Type If docs needed, set a value Known Issue
Franck Baudin 2017-01-05 07:56:37 UTC Target Release --- 10.0 (Newton)
Version 7.3 10.0 (Newton)
CC nyechiel
Component openvswitch openvswitch-dpdk
Hardware Unspecified x86_64
Assignee atheurer ovs-team
QA Contact network-qe
Target Milestone rc async
Product Red Hat Enterprise Linux 7 Red Hat OpenStack
OS Unspecified Linux
RHEL Program Management 2017-01-05 08:06:36 UTC Keywords ZStream
Flavio Leitner 2017-01-05 19:32:48 UTC Flags needinfo?(fbaudin)
Franck Baudin 2017-01-06 15:09:15 UTC Assignee ovs-team atheurer
Flags needinfo?(yrachman) needinfo?(fbaudin)
Deepti Navale 2017-01-08 22:31:45 UTC Doc Text 1) In order to reduce as much as possible any interruptions to allocated cpus while running either openvswitch, VM-vcpu, or the inside-VM VNF threads, cpus should be isolated.
However, CPUAffinity cannot remove or prevent all kernel threads from running on these cpus. To prevent [most] of the kernel threads, one must use the boot option "isolcpus=<cpulist>". This uses the same cpu list as nohz_full and rcu_nocbs. Isolcpus is engaged right at kernel boot, and thus can prevent many kernel threads from be scheduled on those cpus.
This could be run on both hypervisor and guest server as well.

#!/bin/bash
isol_cpus=`awk '{ for (i = 1; i <= NF; i++) if ($i ~ /nohz/) print $i };'
/proc/cmdline | cut -d"=" -f2`

if [ ! -z "$isol_cpus" ]; then
grubby --update-kernel=grubby --default-kernel --args=isolcpus=$isol_cpus
fi


2) The following re-pin the emulator thread action is not recommended unless the user experiences specific performance problems.

#!/bin/bash
cpu_list=`grep -e "^CPUAffinity=.*" /etc/systemd/system.conf | sed -e 's/CPUAffinity=//' -e 's/ /,/'`
if [ ! -z "$cpu_list" ]; then
virsh_list=`virsh list| sed -e '1,2d' -e 's/\s\+/ /g' | awk -F" " '{print $2}'`
if [ ! -z "$virsh_list" ]; then
for vm in $virsh_list; do virsh emulatorpin $vm --cpulist $cpu_list; done
fi
fi
In order to reduce any interruptions to the allocated CPUs while running either Open vSwitch, virtual machine CPUs or the VNF threads within the virtual machines as much as possible, CPUs should be isolated. However, CPUAffinity cannot remove or prevent all kernel threads from running on these CPUs. To prevent most of the kernel threads, you must use the boot option 'isolcpus=<cpulist>'. This uses the same CPU list as 'nohz_full' and 'rcu_nocbs'. The 'isolcpus' is engaged right at the kernel boot, and can thus prevent many kernel threads from being scheduled on the CPUs. This could be run on both the hypervisor and guest server.

#!/bin/bash
isol_cpus=`awk '{ for (i = 1; i <= NF; i++) if ($i ~ /nohz/) print $i };'
/proc/cmdline | cut -d"=" -f2`

if [ ! -z "$isol_cpus" ]; then
grubby --update-kernel=grubby --default-kernel --args=isolcpus=$isol_cpus
fi


2) The following snippet re-pins the emulator thread action and is not recommended unless you experience specific performance problems.

#!/bin/bash
cpu_list=`grep -e "^CPUAffinity=.*" /etc/systemd/system.conf | sed -e 's/CPUAffinity=//' -e 's/ /,/'`
if [ ! -z "$cpu_list" ]; then
virsh_list=`virsh list| sed -e '1,2d' -e 's/\s\+/ /g' | awk -F" " '{print $2}'`
if [ ! -z "$virsh_list" ]; then
for vm in $virsh_list; do virsh emulatorpin $vm --cpulist $cpu_list; done
fi
fi
atelang 2017-02-02 13:12:44 UTC Keywords Triaged
CC atelang
Deepti Navale 2017-02-22 06:21:58 UTC Doc Text In order to reduce any interruptions to the allocated CPUs while running either Open vSwitch, virtual machine CPUs or the VNF threads within the virtual machines as much as possible, CPUs should be isolated. However, CPUAffinity cannot remove or prevent all kernel threads from running on these CPUs. To prevent most of the kernel threads, you must use the boot option 'isolcpus=<cpulist>'. This uses the same CPU list as 'nohz_full' and 'rcu_nocbs'. The 'isolcpus' is engaged right at the kernel boot, and can thus prevent many kernel threads from being scheduled on the CPUs. This could be run on both the hypervisor and guest server.

#!/bin/bash
isol_cpus=`awk '{ for (i = 1; i <= NF; i++) if ($i ~ /nohz/) print $i };'
/proc/cmdline | cut -d"=" -f2`

if [ ! -z "$isol_cpus" ]; then
grubby --update-kernel=grubby --default-kernel --args=isolcpus=$isol_cpus
fi


2) The following snippet re-pins the emulator thread action and is not recommended unless you experience specific performance problems.

#!/bin/bash
cpu_list=`grep -e "^CPUAffinity=.*" /etc/systemd/system.conf | sed -e 's/CPUAffinity=//' -e 's/ /,/'`
if [ ! -z "$cpu_list" ]; then
virsh_list=`virsh list| sed -e '1,2d' -e 's/\s\+/ /g' | awk -F" " '{print $2}'`
if [ ! -z "$virsh_list" ]; then
for vm in $virsh_list; do virsh emulatorpin $vm --cpulist $cpu_list; done
fi
fi
In order to reduce any interruptions to the allocated CPUs while running either Open vSwitch, virtual machine CPUs or the VNF threads within the virtual machines as much as possible, CPUs should be isolated. However, CPUAffinity cannot prevent all kernel threads from running on these CPUs. To prevent most of the kernel threads, you must use the boot option 'isolcpus=<cpulist>'. This uses the same CPU list as 'nohz_full' and 'rcu_nocbs'. The 'isolcpus' is engaged right at the kernel boot, and can thus prevent many kernel threads from being scheduled on the CPUs. This could be run on both the hypervisor and guest server.

#!/bin/bash
isol_cpus=`awk '{ for (i = 1; i <= NF; i++) if ($i ~ /nohz/) print $i };'
/proc/cmdline | cut -d"=" -f2`

if [ ! -z "$isol_cpus" ]; then
grubby --update-kernel=grubby --default-kernel --args=isolcpus=$isol_cpus
fi


2) The following snippet re-pins the emulator thread action and is not recommended unless you experience specific performance problems.

#!/bin/bash
cpu_list=`grep -e "^CPUAffinity=.*" /etc/systemd/system.conf | sed -e 's/CPUAffinity=//' -e 's/ /,/'`
if [ ! -z "$cpu_list" ]; then
virsh_list=`virsh list| sed -e '1,2d' -e 's/\s\+/ /g' | awk -F" " '{print $2}'`
if [ ! -z "$virsh_list" ]; then
for vm in $virsh_list; do virsh emulatorpin $vm --cpulist $cpu_list; done
fi
fi
atelang 2017-05-22 03:54:05 UTC Flags needinfo?(atheurer)
Edu Alcaniz 2017-05-29 15:32:47 UTC CC ealcaniz
David Juran 2017-09-04 13:15:07 UTC CC djuran
Lon Hohberger 2017-09-18 22:22:39 UTC CC apevec, chrisw, rhos-maint, srevivo
Component openvswitch-dpdk openvswitch
Andrew Theurer 2017-10-30 12:07:13 UTC Flags needinfo?(atheurer)
Flavio Leitner 2017-11-16 21:58:21 UTC Status ASSIGNED CLOSED
Resolution --- CURRENTRELEASE
Last Closed 2017-11-16 16:58:21 UTC
Sandra McCann 2017-11-21 19:34:27 UTC Blocks 1516017

Back to bug 1394402