Use PCPU and VCPU resource in single VM
Create VM with dedicated CPU and shared CPU in one instance
Blueprint information
- Status:
- Complete
- Approver:
- Stephen Finucane
- Priority:
- Low
- Drafter:
- huaqiang
- Direction:
- Approved
- Assignee:
- huaqiang
- Definition:
- Approved
- Series goal:
- Accepted for victoria
- Implementation:
- Implemented
- Milestone target:
- victoria-2
- Started by
- Eric Fried
- Completed by
- Balazs Gibizer
Related branches
Related bugs
Sprints
Whiteboard
Spec: https:/
[efried 20190725] Today is spec freeze, and this spec is close, but some edits are still needed. Assuming those are completed satisfactorily, there seems to be agreement (pending formal SFE) to accept this proposal with the following caveats:
- There is a hard dependency on blueprint cpu-resources.
- cpu-resources must be code complete and merged/approved (or extremely close) by R-7 (Aug 29).
- The full code for this feature must be at least available for review by that same time (R-7, Aug 29).
- As usual, the code for this feature should be approved by feature freeze (R-5, Sep 12)
If these milestones arrive and conditions are not met, this blueprint will be deferred to U.
Deferring this out of Train since it wasn't approved and we're about 2 weeks from feature freeze. -- mriedem 20190829
Gerrit topic: https:/
Addressed by: https:/
[WIP] To create single NUMA node instance in function '_get_numa_
Addressed by: https:/
[WIP] Assign and track instance pinning cpu through 'cpu_pinning' field
Addressed by: https:/
[WIP] Add a new instance CPU allocation policy: mixed
Addressed by: https:/
[WIP] virt/libvirt: Get host pin cpuset according instance cpu_pinning
Gerrit topic: https:/
Addressed by: https:/
metadata: export the vCPU IDs that are pinning on the host CPUs
Addressed by: https:/
support unbalanced dedicatd CPU distribution on instance NUMA nodes
Addressed by: https:/
Create 'mixed' instance from PCPU and VCPU resources
Gerrit topic: https:/
Addressed by: https:/
[WIP] More tests for validating CPU policy by 'resources:PCPU' and 'resources:VCPU'
Addressed by: https:/
Create 'mixed' instance from PCPU and VCPU resources
Addressed by: https:/
Use PCPU and VCPU in one instance
[efried 20200213] Spec approved
[efried 20200220] Agreed in the Nova meeting to Direction:Approve all Definition:Approved blueprints http://
Addressed by: https:/
objects: Add online migration for legacy NUMA objects
Addressed by: https:/
Refine and introduce correct parameters for test_get_
Addressed by: https:/
scheduler: Introduce 'dedicated' and 'sharing' CPUs for InstanceNUMACell
Addressed by: https:/
Derive 'cpu_pinning_
Addressed by: https:/
Introduce 'MIXED' CPU allocation policy for instance
Addressed by: https:/
Introduce the interface of creating 'MIXED' policy instance through 'PCPU' and 'VCPU'
Addressed by: https:/
libvirt: support to create instance with dedicated and shared CPUs
Addressed by: https:/
Remove 'InstanceNUMACe
Addressed by: https:/
Refactor the code in checking available host CPUs
Addressed by: https:/
[WIP] An alternative way for keeping instance dedicated CPUs
Addressed by: https:/
hardware: Add validation for 'cpu_realtime_mask'
Addressed by: https:/
hardware: Tweak the 'cpu_realtime_mask' handling slightly
Addressed by: https:/
hardware: Update and correct typing information
Addressed by: https:/
libvirt: Add typing information
Addressed by: https:/
tests: Split instance NUMA object tests
Addressed by: https:/
objects: Replace 'cpu_pinning_
Addressed by: https:/
hardware: Don't consider overhead CPUs for unpinned instances
Addressed by: https:/
hardware: Remove handling of pre-Train compute nodes
Addressed by: https:/
hardware: Rework 'get_realtime_
Addressed by: https:/
hardware: Invert order of NUMA topology generation
Addressed by: https:/
hardware: 'numa_fit_
Addressed by: https:/
hardware: Remove '_numa_
Addressed by: https:/
WIP! objects: Add 'CPUAllocationP
Addressed by: https:/
WIP! objects: Add 'InstanceNUMACe
Addressed by: https:/
WIP! hardware: Add support for 'hw:cpu_
Addressed by: https:/
WIP! hardware: Start configuring 'InstanceNUMACe
Addressed by: https:/
tox: Integrate mypy
Addressed by: https:/
Introduce the 'CPUAllocationP
Addressed by: https:/
computer: validate cpu pinning configuration for mixed instance
Addressed by: https:/
Calculate the pinned and unpinned CPU usage for mixed instance
Addressed by: https:/
scheduler: translate the mixed instance resource demanding to placement request
Addressed by: https:/
Enable the support of mixed instance
Addressed by: https:/
Introduce 'pcpuset' field for InstanceNUMACell
Addressed by: https:/
libvirt/
Addressed by: https:/
online data migration for cpuset of dedicated instance
[20200414] we hit feature freeze in Ussuri, so it is deferred to Victoria
Addressed by: https:/
WIP: objects: Add migrate-on-load behavior for legacy NUMA objects
Addressed by: https:/
Use PCPU and VCPU in one instance
Addressed by: https:/
notification: add the pcpuset info to instance numa cell payload
Addressed by: https:/
libvirt: apply mixed instance CPU policy
Addressed by: https:/
scheduler: mixed instance CPU resource translating
Addressed by: https:/
flavor: Enable 'hw:cpu_
Addressed by: https:/
compute: bump nova-compute service version for mixed instance
Addressed by: https:/
hardware: create 'mixed' instance for realtime and shared CPUs
[2020.05.18 gibi]: spec approved for Victoria release.
Addressed by: https:/
release note: add new features introduces by use-pcpu-
Addressed by: https:/
hardware: Allow 'hw:cpu_
Addressed by: https:/
test_hardware: code formating for multiline construct
Addressed by: https:/
doc: Correct typo
Addressed by: https:/
hardware: refactor the code for CPU policy sanity check
Addressed by: https:/
[DNM] bump nova-compute version for mixed instance in API
Addressed by: https:/
test: add some notes and new tests for mixed instance
Addressed by: https:/
libvirt: Remove two-level loop
[2020-07-23 gibi]: the last must-have patch has been merged in Victoria so I'm marking this as implemented. Requesting PCPU + VCPU via 'resources:' extra specs, has been deferred since it's (a) low priority and (b) interferes with the NUMA in placement work
Addressed by: https:/
functional: Add tests for mixed CPU policy
Addressed by: https:/
objects: Fix issue in exception type
Addressed by: https:/
objects: Add 'InstanceNUMACe
Gerrit topic: https:/
Work Items
Dependency tree
* Blueprints in grey have been implemented.