doc: Add documentation for cpu_realtime, cpu_realtime_mask
This wasn't documented anywhere but the spec [1]. Fix this. We may want to provide a more in-depth overview of using RT features of OpenStack, but that's a future work item. [1] https://specs.openstack.org/openstack/nova-specs/specs/mitaka/implemented/libvirt-real-time.html Change-Id: Id30bc8447a6b482ad114ec6ebd3d5dab20ca0e3a Closes-Bug: #1715437
This commit is contained in:
parent
7ab5ee982d
commit
bd3a4d242f
@ -474,11 +474,63 @@ NUMA topology
|
||||
greater than the available number of CPUs or memory respectively, an
|
||||
exception is raised.
|
||||
|
||||
.. _extra-specs-realtime-policy:
|
||||
|
||||
CPU real-time policy
|
||||
For the libvirt driver, you can state that one or more of your instance
|
||||
virtual CPUs (vCPUs), though not all of them, run with a real-time policy.
|
||||
When used on a correctly configured host, this provides stronger guarantees
|
||||
for worst case scheduler latency for vCPUs and is a requirement for certain
|
||||
applications.
|
||||
|
||||
.. todo::
|
||||
|
||||
Document the required steps to configure hosts and guests. There are a lot
|
||||
of things necessary, from isolating hosts and configuring the
|
||||
``vcpu_pin_set`` nova configuration option on the host, to choosing a
|
||||
correctly configured guest image.
|
||||
|
||||
.. important::
|
||||
|
||||
While most of your instance vCPUs can run with a real-time policy, you must
|
||||
mark at least one vCPU as non-real-time, to be used for both non-real-time
|
||||
guest processes and emulator overhead (housekeeping) processes.
|
||||
|
||||
.. important::
|
||||
|
||||
To use this extra spec, you must enable pinned CPUs. Refer to
|
||||
:ref:`CPU policy <extra-specs-cpu-policy>` for more information.
|
||||
|
||||
.. code:: console
|
||||
|
||||
$ openstack flavor set FLAVOR-NAME \
|
||||
--property hw:cpu_realtime=CPU-REALTIME-POLICY \
|
||||
--property hw:cpu_realtime_mask=CPU-REALTIME-MASK
|
||||
|
||||
Where:
|
||||
|
||||
CPU-REALTIME-POLICY (enum):
|
||||
One of:
|
||||
|
||||
- ``no``: (default) The guest vCPUs will not have a real-time policy
|
||||
- ``yes``: The guest vCPUs will have a real-time policy
|
||||
|
||||
CPU-REALTIME-MASK (coremask):
|
||||
A coremask indicating which vCPUs **will not** have a real-time policy. This
|
||||
should start with a ``^``. For example, a value of ``^0-1`` indicates that
|
||||
all vCPUs *except* vCPUs ``0`` and ``1`` will have a real-time policy.
|
||||
|
||||
.. note::
|
||||
|
||||
The ``hw:cpu_realtime_mask`` option is only valid if ``hw:cpu_realtime``
|
||||
is set to ``yes``.
|
||||
|
||||
Emulator threads policy
|
||||
For the libvirt driver, you can assign a separate pCPU to an instance that
|
||||
will be used for emulator threads, which are emulator processes not directly
|
||||
related to the guest OS. This pCPU will used in addition to the pCPUs used
|
||||
for the guest. This is generally required for use with a real-time OS.
|
||||
for the guest. This is generally required for use with a :ref:`real-time
|
||||
workload <extra-specs-realtime-policy>`.
|
||||
|
||||
.. important::
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user