Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Part moved to "Virtual machines on SEAPATH" page

...

  • /sys/module/kvm/parameters/halt_poll_ns = 0
    /sys/kernel/ktimer_lockless_check = 1
    /sys/kernel/mm/ksm/run = 2

  • Kernel parameters :
    isolcpus=managed_irq,domain,{isolated_cores}
    intel_pstate=disable
    nosoftlockup
    tsc=reliable
    nohz=on
    nohz_full={isolated_cores}
    rcu_nocbs={isolated_cores}
    irqaffinity={non_isolated_cores}
    processor.max_cstate=1
    intel_idle.max_cstate=1
    cpufreq.default_governor=performance
    rcu_nocb_poll

  • kernel thread priorities :
    group.ksoftirqd=0:f:2:*:^\[ksoftirqd
    group.ktimers=0:f:2:*:^\[ktimers
    group.rcuc=0:f:4:*:^\[rcuc
    group.rcub=0:f:4:*:^\[rcub
    group.ktimersoftd=0:f:3:*:^\[ktimersoftd

  • configures irqbalance with isolated_cores list

  • configures workqueue with isolated_cores list

  • kernel.hung_task_timeout_secs = 600
    kernel.nmi_watchdog = 0
    kernel.sched_rt_runtime_us = -1
    vm.stat_interval = 10
    kernel.timer_migration = 0

VM configuration

The official documentation on the XML format of libvirt is here.

Resources

On the XML configuration of a virtual machine, the resource can be specified to know which slice should be used (more details here). So, the virtual machine will only have acces to the CPU associated with the slice.

Possible values:

  • /machine/nort
  • /machine/rt

Example, for a virtual machine with the real-time:

Code Block
languagexml
<resource>
	<partition>/machine/rt</partition>
</resource>

CPU tunning

In the project, this element will be used to limite the virtual machine (more details here).

  • The emulatorpin element specifies which of host physical CPUs the emulator, a subset of a domain not including vCPU or iothreads will be pinned to.
  • The vcpupin element specifies which of host's physical CPUs the domain vCPU will be pinned to. It's used to reserved one or more CPUs for a critical virtual machine. So, it's important not use this CPU on another VM.
  • The vcpusched element specifies the scheduler type for a particular vCPU. A priority can be setting. In the project, all values greats than 10, it's for the host; equals to 10, it's for the RCU and less than 10, it's to set the priority of the RT vCPU among themselves.