Dedicated CPUs placement policy
This feature aims to enhance the libvirt driver to provide dedicated CPUs placement policy for guests. Give opportunity to split emulator threads from vCPUs or make them running together on pCPUs dedicated
Emulator is term used to define a subset of running guest which does not include I/O threads or vCPUs. In some workflows like realtime or NFV we may want to dedicate pCPUs to handle emulator and dedicated pCPUs to handle vCPUs (I/O threads is not currently take into account)
The flavor extra specs will support the specification of guest vCPUs placement policy.
hw:cpu_policy.N = <cpu|emulator|cpu, emulator>
With N refer to guest vCPUs.
If no cpu policy is configured the current and default implementation will run, means pCPUs will be dedicated to vCPUs and emulator threads will be pinned to union of all pCPUs.
If a cpu policy placement is requested a topology should be defined according the examples:
For flavor with requesting 1 vCPU
hw:cpu_policy = dedicated
hw:cpu_policy.0 = cpu, emulator
In this example a pCPU will be dedicated to handle guest vCPU + emulator threads
For flavor with requesting 2 vCPUs
hw:cpu_policy = dedicated
hw:cpu_policy.0 = cpu
hw:cpu_policy.1 = emulator
In this example a pCPU will be didicated to handle guest vCPU and an other pCPU will be dedicated to handle emulator theads.
This topology can also take advantage of numa topology and cpu pinning.
Blueprint information
- Status:
- Complete
- Approver:
- John Garbutt
- Priority:
- Undefined
- Drafter:
- Sahid Orentino
- Direction:
- Needs approval
- Assignee:
- Sahid Orentino
- Definition:
- Obsolete
- Series goal:
- Proposed for trunk
- Implementation:
- Unknown
- Milestone target:
- next
- Started by
- Completed by
- Sahid Orentino
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
virt: dedicated CPUs placement policy