Allow ability to disable individual CPU features via `cpu_model_extra_flags`
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Invalid
|
Medium
|
Unassigned |
Bug Description
What?
-----
When using a custom CPU model, Nova currently allows enabling
individual CPU flags/features via the config attribute,
`cpu_model_
[libvirt]
cpu_mode=custom
cpu_
cpu_
The above only lets you enable the CPU features. This RFE is to also
allow _disabling_ individual CPU features.
Why?
---
A couple of reasons:
- An Operator wants to generate a baseline CPU config (that facilates
live migration) across his Compute node pool. However, a certain
CPU flag is causing an inteolerable performance issue for their
guest workloads. If the Operator isolated the problem to _that_
specific CPU flag, then she would like to disable the flag.
- More importantly, a specific CPU flag might trigger a CPU
vulnerability. In such a case, the mitigation for it could be to
simply _disable_ the offending CPU flag.
Allowing disabling of individual CPU flags via Nova would enable the
above use cases.
How?
----
By allowing the notion of '+' / '-' to indicate whether to enable to
disable a given CPU flag.
E.g. if you specify the below in 'nova.conf' (on the Compute nodes):
[libvirt]
cpu_mode=custom
cpu_
cpu_
Then, when you start an instance, Nova should generate the below XML:
<cpu match='exact'>
<model fallback=
<
<feature policy='require' name='pcid'/>
<feature policy='disable' name='mtrr'/>
<feature policy='require' name='ssbd'/>
</cpu>
Note that the requirement to specify '+' / '-' for individual flags
should be optional. If neither is specified, then we should assume '+',
and enable the feature (as shown above for the 'ssbd' flag).
Changed in nova: | |
status: | New → Invalid |
Changed in nova: | |
status: | Invalid → Triaged |
importance: | Wishlist → Medium |
This is a feature request, not really a bug, so a specless blueprint would be more appropriate for this.