libvirt: Virt driver pinning guest vCPUs to host pCPUs (partial)
This feature aims to improve the libvirt driver so that it is able to strictly
pin guest vCPUS to host pCPUs. This provides the concept of "dedicated CPU"
guest instances.
Blueprint information
- Status:
- Complete
- Approver:
- John Garbutt
- Priority:
- Low
- Drafter:
- Daniel Berrange
- Direction:
- Approved
- Assignee:
- Daniel Berrange
- Definition:
- Approved
- Series goal:
- Accepted for kilo
- Implementation:
-
Implemented
- Milestone target:
-
2015.1.0
- Started by
- Joe Gordon
- Completed by
- John Garbutt
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Virt driver pinning guest vCPUs to host pCPUs
Gerrit topic: https:/
Addressed by: https:/
libvirt: introduce separate class for cpu tune XML config
Addressed by: https:/
libvirt: add support for per-vCPU pinning in guest XML
Addressed by: https:/
libvirt: add helpers for parsing/formatting CPU range specs
Addressed by: https:/
virt: move get_cpuset_ids into nova.virt.hardware
Addressed by: https:/
virt: split CPU spec parsing code out into helper method
Addressed by: https:/
virt: add method for formatting CPU sets to strings
Addressed by: https:/
libvirt: convert cpuset XML handling to use set instead of string
Gerrit topic: https:/
All the above code seems to have merged, a quick read through the spec seems to suggest this is at least partially complete. Please document what proportion of functionality has merged here, and what is left for a future release. --johnthetubaguy 22nd August 2014
Ah, so nothing useful merged here it seemed, so this has missed juno now. Feature Proposal Freeze means this must not land in juno, because it appears like the code is not all currently ready to be reviewed. To be able to merge in kilo, we would first need to merge a kilo spec. More details on the exact process will be available on the ML shortly. --johnthetubaguy 22nd August 2014
Gerrit topic: https:/
Addressed by: https:/
Add hardware CPU pinning types and pinning logic
Addressed by: https:/
Add NUMA support for CPU pinning logic
Addressed by: https:/
Add method for getting the CPU pinning constraint
Addressed by: https:/
Add cpu_pinning column to the compute_node table
Addressed by: https:/
Add cpu_pinning to instance_extra table
Addressed by: https:/
Add InstanceCPUPinning and related objects
Addressed by: https:/
Add cpu_pinning to Instance object.
Addressed by: https:/
libvirt: Add method for getting host cpu_pinning
Addressed by: https:/
Expose numa_topology to the resource tracker
Addressed by: https:/
Stash CPU policy related extra_spec in system_metadata
Addressed by: https:/
Hook CPU pinning checking into claims
(ndipanov 28.10.2014) - the spec is now merged http://
Addressed by: https:/
Make hardware topology extraction hacks more general
Addressed by: https:/
Method for getting NUMA usage from an instance
Addressed by: https:/
Make resource tracker always use Flavor objects
Addressed by: https:/
Make resource tracker track CPU pinning usage
Addressed by: https:/
Make HostManager track CPU pinning usage
Addressed by: https:/
Add the CPUPinningFilter
Addressed by: https:/
Save insance CPU pinning after a successful claim
Addressed by: https:/
API boot process sets CPU pinning for instances
Addressed by: https:/
libvirt: Consider CPU pinning when booting
Addressed by: https:/
objects: Add DictOfBooleansField and ListOfSetsOfInt
Addressed by: https:/
Add NUMACPUPinningCell object
Addressed by: https:/
Add InstanceNUMACPU
Addressed by: https:/
Add pinning to InstanceNUMATop
Addressed by: https:/
Add methods for calculating CPU pinning
Addressed by: https:/
Add method for getting the CPU pinning constraint
Addressed by: https:/
Adds NUMA CPU Pinning object modeling
Addressed by: https:/
Add cpu pinning check to numa_fit_
Addressed by: https:/
Make numa_usage_
Addressed by: https:/
Make libvirt driver expose sibling info in NUMA topology
Addressed by: https:/
Make get_best_
Addressed by: https:/
libvirt: un-cruft _get_guest_
Addressed by: https:/
libvirt: Fix NUMA memnode assignments to host cells
Addressed by: https:/
libvirt: Consider CPU pinning when booting
Addressed by: https:/
Add method for getting the CPU pinning constraint
Seems like everything has merged, are we done now? --johnthetubaguy 17th December 2014
OK, there are patches left to review, moving to kilo-2 --johnthetubaguy 17th December 2014
Gerrit topic: https:/
Addressed by: https:/
Add virt-driver CPU thread pinning
Addressed by: https:/
trivial: Change file permissions for spec
Addressed by: https:/
Add virt-driver CPU thread pinning
Work Items
Dependency tree

* Blueprints in grey have been implemented.