Public bug reported: In the patch[*] that introduced the Nova configuration attribute `[libvirt]/cpu_model_extra_flags`, we have restricted the choices to be only 'PCID' -- to alleviate the immediate guest performance degradation as a result of applying the "Meltdown" CVE fixes.
Now remove that restriction to allow adding and removing multiple CPU flags, making way for other use cases. Use cases: - Ability to use 1GB huge pages with Haswell model as one use case for extra flags: cpu_model=Haswell-noTSX-IBRS cpu_model_extra_flags="pdpe1gb" - Nested Virtualization -- an operator can specify the Intel 'vmx' or AMD 'svm' flags in the level-1 Nova guest. [*] http://git.openstack.org/cgit/openstack/nova/commit/?h=master& id=6b601b7 -- libvirt: Allow to specify granular CPU feature flags A potential example of specifying multiple CPU feature flags ------------------------------------------------------------ If you specify: [libvirt] cpu_mode=custom cpu_model=IvyBridge cpu_model_extra_flags="+pcid,-mtrr,pdpe1gb" Then, Nova should generate the below XML: <cpu match='exact'> <model fallback='forbid'>IvyBridge</model> <vendor>Intel</vendor> <feature policy='require' name='pcid'/> <feature policy='require' name='pdpe1gb'/> </cpu> The +/- for individual flags in nova.conf will be optional. If nothing is specified, assume '+'. You might ask: "Why would you want to remove a CPU flag though?" One scenario for that is: An Operator wants to generate a baseline CPU config. And a certain CPU flag is causing performance issue or other nuisance, and if the Operator isolated the problem to _that_ specific CPU flag, then she may want to remove the flag. ** Affects: nova Importance: Undecided Assignee: Kashyap Chamarthy (kashyapc) Status: New ** Tags: libvirt ** Changed in: nova Assignee: (unassigned) => Kashyap Chamarthy (kashyapc) ** Tags added: libvirt ** Description changed: In the patch[*] that introduced the Nova configuration attribute `[libvirt]/cpu_model_extra_flags`, we have restricted the choices to be only 'PCID' -- to alleviate the immediate guest performance degradation as a result of applying the "Meltdown" CVE fixes. Now remove that restriction to allow adding and removing multiple CPU flags, making way for other use cases. Use cases: - - Ability to use 1GB huge pages with Haswell model as one use case for - extra flags: + - Ability to use 1GB huge pages with Haswell model as one use case for + extra flags: - cpu_model=Haswell-noTSX-IBRS - cpu_model_extra_flags="pdpe1gb" + cpu_model=Haswell-noTSX-IBRS + cpu_model_extra_flags="pdpe1gb" - - Nested Virtualization -- an operator can specify the Intel 'vmx' or - AMD 'svm' flags in the level-1 Nova guest. + - Nested Virtualization -- an operator can specify the Intel 'vmx' or + AMD 'svm' flags in the level-1 Nova guest. - [*] http://git.openstack.org/cgit/openstack/nova/commit/?h=master&id=6b601b7 - -- libvirt: Allow to specify granular CPU feature flags - + [*] + http://git.openstack.org/cgit/openstack/nova/commit/?h=master&id=6b601b7 + -- libvirt: Allow to specify granular CPU feature flags A potential example of specifying multiple CPU feature flags ------------------------------------------------------------ If you specify: - [libvirt] - cpu_mode=custom - cpu_model=IvyBridge - cpu_model_extra_flags="+pcid,-mtrr,pdpe1gb" + [libvirt] + cpu_mode=custom + cpu_model=IvyBridge + cpu_model_extra_flags="+pcid,-mtrr,pdpe1gb" Then, Nova should generate the below XML: - <cpu match='exact'> - <model fallback='forbid'>IvyBridge</model> - <vendor>Intel</vendor> - <feature policy='require' name='pcid'/> - <feature policy='require' name='pdpe1gb'/> - </cpu> + <cpu match='exact'> + <model fallback='forbid'>IvyBridge</model> + <vendor>Intel</vendor> + <feature policy='require' name='pcid'/> + <feature policy='require' name='pdpe1gb'/> + </cpu> The +/- for individual flags in nova.conf will be optional. If nothing is specified, assume '+'. You might ask: "Why would you want to remove a CPU flag though?" One scenario for that is: An Operator wants to generate a baseline CPU config. And a certain CPU flag is causing performance issue or other nuisance, and if the Operator isolated the problem to _that_ specific CPU flag, then she may want to remove the flag. ** Description changed: In the patch[*] that introduced the Nova configuration attribute `[libvirt]/cpu_model_extra_flags`, we have restricted the choices to be only 'PCID' -- to alleviate the immediate guest performance degradation as a result of applying the "Meltdown" CVE fixes. Now remove that restriction to allow adding and removing multiple CPU flags, making way for other use cases. Use cases: - Ability to use 1GB huge pages with Haswell model as one use case for extra flags: cpu_model=Haswell-noTSX-IBRS cpu_model_extra_flags="pdpe1gb" - Nested Virtualization -- an operator can specify the Intel 'vmx' or AMD 'svm' flags in the level-1 Nova guest. - [*] - http://git.openstack.org/cgit/openstack/nova/commit/?h=master&id=6b601b7 - -- libvirt: Allow to specify granular CPU feature flags + [*] http://git.openstack.org/cgit/openstack/nova/commit/?h=master& + id=6b601b7 -- libvirt: Allow to specify granular CPU feature flags + A potential example of specifying multiple CPU feature flags ------------------------------------------------------------ If you specify: [libvirt] cpu_mode=custom cpu_model=IvyBridge cpu_model_extra_flags="+pcid,-mtrr,pdpe1gb" Then, Nova should generate the below XML: <cpu match='exact'> <model fallback='forbid'>IvyBridge</model> <vendor>Intel</vendor> <feature policy='require' name='pcid'/> <feature policy='require' name='pdpe1gb'/> </cpu> The +/- for individual flags in nova.conf will be optional. If nothing is specified, assume '+'. You might ask: "Why would you want to remove a CPU flag though?" One scenario for that is: An Operator wants to generate a baseline CPU config. And a certain CPU flag is causing performance issue or other nuisance, and if the Operator isolated the problem to _that_ specific CPU flag, then she may want to remove the flag. -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1766208 Title: Lift the restriction on choices for `cpu_model_extra_flags` config attribute Status in OpenStack Compute (nova): New Bug description: In the patch[*] that introduced the Nova configuration attribute `[libvirt]/cpu_model_extra_flags`, we have restricted the choices to be only 'PCID' -- to alleviate the immediate guest performance degradation as a result of applying the "Meltdown" CVE fixes. Now remove that restriction to allow adding and removing multiple CPU flags, making way for other use cases. Use cases: - Ability to use 1GB huge pages with Haswell model as one use case for extra flags: cpu_model=Haswell-noTSX-IBRS cpu_model_extra_flags="pdpe1gb" - Nested Virtualization -- an operator can specify the Intel 'vmx' or AMD 'svm' flags in the level-1 Nova guest. [*] http://git.openstack.org/cgit/openstack/nova/commit/?h=master& id=6b601b7 -- libvirt: Allow to specify granular CPU feature flags A potential example of specifying multiple CPU feature flags ------------------------------------------------------------ If you specify: [libvirt] cpu_mode=custom cpu_model=IvyBridge cpu_model_extra_flags="+pcid,-mtrr,pdpe1gb" Then, Nova should generate the below XML: <cpu match='exact'> <model fallback='forbid'>IvyBridge</model> <vendor>Intel</vendor> <feature policy='require' name='pcid'/> <feature policy='require' name='pdpe1gb'/> </cpu> The +/- for individual flags in nova.conf will be optional. If nothing is specified, assume '+'. You might ask: "Why would you want to remove a CPU flag though?" One scenario for that is: An Operator wants to generate a baseline CPU config. And a certain CPU flag is causing performance issue or other nuisance, and if the Operator isolated the problem to _that_ specific CPU flag, then she may want to remove the flag. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1766208/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

