On Wed, Feb 12, 2020 at 04:13:26PM +0800, Tao Xu wrote: > Add new version of Snowridge, Denverton, Opteron_G3, EPYC, and Dhyana > CPU model to remove MONITOR/MWAIT feature. > > After QEMU/KVM use "-overcommit cpu-pm=on" to expose MONITOR/MWAIT > (commit id 6f131f13e68d648a8e4f083c667ab1acd88ce4cd), the MONITOR/MWAIT > feature in these CPU model is unused. > > Signed-off-by: Tao Xu <tao3...@intel.com>
What exactly is the problem you are trying to fix? No CPU model will ever have monitor=on set by default with KVM, because kvm_default_props has a monitor=off element. > --- > target/i386/cpu.c | 38 ++++++++++++++++++++++++++++++++++++++ > 1 file changed, 38 insertions(+) > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > index 848c992cd3..6905e4eabd 100644 > --- a/target/i386/cpu.c > +++ b/target/i386/cpu.c > @@ -3731,6 +3731,14 @@ static X86CPUDefinition builtin_x86_defs[] = { > { /* end of list */ }, > }, > }, > + { > + .version = 3, > + .props = (PropValue[]) { > + /* mpx was already removed by -v2 above */ > + { "monitor", "off" }, > + { /* end of list */ }, > + }, > + }, > { /* end of list */ }, > }, > }, > @@ -3842,6 +3850,17 @@ static X86CPUDefinition builtin_x86_defs[] = { > CPUID_EXT3_ABM | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM, > .xlevel = 0x80000008, > .model_id = "AMD Opteron 23xx (Gen 3 Class Opteron)", > + .versions = (X86CPUVersionDefinition[]) { > + { .version = 1 }, > + { > + .version = 2, > + .props = (PropValue[]) { > + { "monitor", "off" }, > + { /* end of list */ }, > + }, > + }, > + { /* end of list */ }, > + }, > }, > { > .name = "Opteron_G4", > @@ -3966,6 +3985,14 @@ static X86CPUDefinition builtin_x86_defs[] = { > { /* end of list */ } > } > }, > + { > + .version = 3, > + .props = (PropValue[]) { > + /* ibpb was already enabled by -v2 above */ > + { "monitor", "off" }, > + { /* end of list */ }, > + }, > + }, > { /* end of list */ } > } > }, > @@ -4018,6 +4045,17 @@ static X86CPUDefinition builtin_x86_defs[] = { > .xlevel = 0x8000001E, > .model_id = "Hygon Dhyana Processor", > .cache_info = &epyc_cache_info, > + .versions = (X86CPUVersionDefinition[]) { > + { .version = 1 }, > + { > + .version = 2, > + .props = (PropValue[]) { > + { "monitor", "off" }, > + { /* end of list */ }, > + }, > + }, > + { /* end of list */ }, > + }, > }, > }; > > -- > 2.20.1 > > -- Eduardo