Support vcpu_pin_set in the XenAPI driver
We already have the setting in libvirt:
cfg.StrOpt(
This change moves the setting back into the general area of the config, rather than the libvirt specific section.
The reason this is useful, is because you can often improve the performance of Xen on NUMA servers by pinning the Dom0 vCPU to particular physical CPUs. However, if you do this, you need to ensure no other VMs want to use those vCPUs, else they are likely to get starved of resources, and strange things may happen.
More details on XenServer's pinning API can be found here:
http://
And details on dom0 pinning can be found here:
http://
So to determine the best value for vcpu_pin_set, you need to list all the pCPU cores that you have not assigned to Dom0.
In XenAPI we have the ability to specify a "mask" that defines which physical cores the VM can be scheduled to. Using the vcpu_pin_set as the mask will then ensure the VMs vCPU only get scheduled on physical CPUs that are not reserved for Dom0.
Note, while XenAPI does not support expressions like "4-12,^8" we convert this to the appropriate mask in the code.
Blueprint information
- Status:
- Complete
- Approver:
- Russell Bryant
- Priority:
- Low
- Drafter:
- John Garbutt
- Direction:
- Approved
- Assignee:
- John Garbutt
- Definition:
- Approved
- Series goal:
- Accepted for icehouse
- Implementation:
- Implemented
- Milestone target:
- 2014.1
- Started by
- Russell Bryant
- Completed by
- John Garbutt
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
xenapi: add support for vcpu_pin_set