Version User Scope of changes
Feb 11 2008, 3:20 PM EST (current) wcoekaer 19 words added
Nov 20 2007, 10:22 AM EST wcoekaer 13 words added, 13 words deleted

Changes

Key:  Additions   Deletions
This note describes the options that exist with Oracle VM to bind guest or virtual machineCPUs to physical CPUs or cores.

IMPORTANT : for Oracle licensing policies and support around hard-partitioning please go to the licensing website.
OracleVM hard partitioning

the hypervisor has the following commands to be used for binding CPUs :


xm vcpu-set <domain> <count> configures number of virtual CPUs a guest or virtual machine <domain> sees

xm vcpu-list <domain> lists the virtual cpu information of a given guest or virtual machine (or all if you omit <domain>

xm vcpu-pin <domain> <virtual cpu> <real cpus> pins virtual cpus to run only on specific cpus. defaults to all . pinning cpus means that xen enforces and controls which physical processor can/will be used to schedule/rn virtual cpus on (no matter how many virtual cpus you choose)


alternatively, this can be hardcoded in the vm.cfg file for each guest or virtual machine :

vm.cfg examples :
cpus = '0-3'
or
cpus = '0,1'

in the first case, only CPUs (or cores in actuality) 0 1 2 3 can be used for the guest
in the second case, cores 0 and 1

if I have a guest that has 4 virtual CPUs and put cpus = '0' in the vm.cfg file, then all 4 vCPUs will be scheduled on the same physical core

if I have a guest that has 4 virtual CPUs andwant them to run on 2 cores, the I could have cpus = '0,1' in my config


examples on an 8 core system :

[root@ca-ostest256 ~]# xm vcpu-list guest1
Name ID VCPU CPU State Time(s) CPU Affinity
guest1 4 0 4 -b- 8645.7 any cpu
guest1 4 1 4 -b- 9843.6 any cpu

2 virtual CPUs and they can run on any of the 8 cores.



[root@ca-ostest256 ~]# xm vcpu-list guest1
Name ID VCPU CPU State Time(s) CPU Affinity
guest1 26 0 0 -b- 8646.6 0
guest1 26 1 0 -b- 9844.3 0

2 virtual CPUs and they can run only on physical core 0



[root@ca-ostest256 ~]# xm vcpu-list guest1
Name ID VCPU CPU State Time(s) CPU Affinity
guest1 26 0 0 -b- 8647.8 0
guest1 26 1 1 -b- 9845.0 1

2 virtual CPUs and they can run on 2 physical cores 0, 1



if I put cpus='0' on my guest config and I have 2 virtual CPUs then at startup of the guest :

Name ID VCPU CPU State Time(s) CPU Affinity
guest1 45 0 0 r-- 4.3 0
guest1 45 1 - --p 0.0 0



NOTE : on live migration, when using xm vcpu-pin or when you modify the config file using cpus = '', the settings are lost and you need to repin the cpus on the other physical machine.


Top Contributors