Skip to content
This repository has been archived by the owner on Feb 29, 2024. It is now read-only.

Commit

Permalink
Add ability to collocate pinned and unpinned instance on same host
Browse files Browse the repository at this point in the history
Add role parameter `NovaComputeCpuDedicatedSet` which allows
to set `compute/cpu_dedicated_set` parameter value to specify
list or range of physical CPU cores to reserve for allocating
PCPU resources to use for virtual machine processes.

Deprecate `NovaVcpuPinSet` option as it is deprecated from config
options in nova [1] as well.
[1] https://review.opendev.org/#/c/671793

Depends-On: I40e0ed0bba93bfcdc4cf157195c3e9fbcfce0776
Change-Id: Ibba4273526392985ede6da2ef3fec66a61407777
  • Loading branch information
ratailor committed Oct 4, 2019
1 parent e8211bd commit d68e709
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 8 deletions.
45 changes: 37 additions & 8 deletions deployment/nova/nova-compute-container-puppet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -147,20 +147,22 @@ parameters:
default: ''
tags:
- role_specific
NovaVcpuPinSet:
NovaComputeCpuSharedSet:
description: >
A list or range of physical CPU cores to reserve for virtual machine
processes.
Ex. NovaVcpuPinSet: ['4-12','^8'] will reserve cores from 4-12 excluding 8
A list or range of host CPU cores to which emulator threads can be scheduled,
if NovaVcpuPinSet is set, or to which both emulator threads and processes for
unpinned instance CPUs (VCPUs) can be scheduled, if NovaVcpuPinSet is unset.
Ex. NovaComputeCpuSharedSet: [4-12,^8,15] will reserve cores from 4-12
and 15, excluding 8.
type: comma_delimited_list
default: []
tags:
- role_specific
NovaComputeCpuSharedSet:
NovaComputeCpuDedicatedSet:
description: >
A list or range of physical CPU cores will be used for best-effort guest
vCPU resources (e.g. emulator threads in libvirt/QEMU).
Ex. NovaComputeCpuSharedSet: [4-12,^8,15] will reserve cores from 4-12
A list or range of host CPU cores to which processes for pinned instance
CPUs (PCPUs) can be scheduled.
Ex. NovaComputeCpuDedicatedSet: [4-12,^8,15] will reserve cores from 4-12
and 15, excluding 8.
type: comma_delimited_list
default: []
Expand Down Expand Up @@ -337,6 +339,31 @@ parameters:
tags:
- role_specific

# DEPRECATED: the following options are deprecated and are currently maintained
# for backwards compatibility. They will be removed in future release.
NovaVcpuPinSet:
description: >
A list or range of host CPU cores to which processes for unpinned instance
CPUs (VCPUs) can be scheduled, if NovaCpuSharedSet is set, or to which
both emulator threads and processes for unpinned instance CPUs (VCPUs)
can be scheduled, if NovaCpuSharedSet is unset.
Ex. NovaVcpuPinSet: ['4-12','^8'] will reserve cores from 4-12 excluding 8
type: comma_delimited_list
default: []
tags:
- role_specific

parameter_groups:
- label: deprecated
description: |
The following parameters are deprecated and will be removed. They should not
be relied on for new deployments. If you have concerns regarding deprecated
parameters, please contact the TripleO development team on IRC or the
Openstack mailing list.
parameters:
- NovaVcpuPinSet


resources:

ContainersCommon:
Expand Down Expand Up @@ -382,6 +409,7 @@ resources:
- map_replace:
- nova::compute::vcpu_pin_set: NovaVcpuPinSet
nova::compute::cpu_shared_set: NovaComputeCpuSharedSet
nova::compute::cpu_dedicated_set: NovaComputeCpuDedicatedSet
nova::compute::reserved_host_memory: NovaReservedHostMemory
nova::compute::neutron_physnets_numa_nodes_mapping: NeutronPhysnetNUMANodesMapping
nova::compute::neutron_tunnel_numa_nodes: NeutronTunnelNUMANodes
Expand Down Expand Up @@ -409,6 +437,7 @@ resources:
- values:
NovaVcpuPinSet: {get_param: NovaVcpuPinSet}
NovaComputeCpuSharedSet: {get_param: NovaComputeCpuSharedSet}
NovaComputeCpuDedicatedSet: {get_param: NovaComputeCpuDedicatedSet}
NovaReservedHostMemory: {get_param: NovaReservedHostMemory}
NeutronPhysnetNUMANodesMapping: {get_param: NeutronPhysnetNUMANodesMapping}
NeutronTunnelNUMANodes: {get_param: NeutronTunnelNUMANodes}
Expand Down
13 changes: 13 additions & 0 deletions releasenotes/notes/cpu-resources-f8b511d39c6e0cfe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
features:
- |
Add new role parameter ``NovaComputeCpuDedicatedSet`` to specify
list or range of physical CPU cores to reserve to be used for
allocating PCPU resources to virtual machines.
Defaults to []
deprecations:
- |
The ``NovaVcpuPinSet`` parameter is deprecated and superseded by
``NovaComputeCpuSharedSet`` and ``NovaComputeCpuDedicatedSet``
parameters, which are used to define list or range of VCPU and PCPU
resources for virtual machine processes.

0 comments on commit d68e709

Please sign in to comment.