[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 3/3] Change other funcitons referring to feat
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v3 3/3] Change other funcitons referring to feature_word_info[] |
Date: |
Fri, 17 Aug 2018 17:52:17 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 10/08/2018 16:06, Robert Hoo wrote:
> x86_cpu_get_feature_words(): limit to CPUID_FEATURE_WORD only.
This should also grow support for MSR feature words.
My suggestion is that you add another patch after patch 1 that expands
the definition of X86CPUFeatureWordInfo like this, and adjusts
x86_cpu_get_feature_words() to match the new C structs. Then this
patch can add MSR feature support somewhat easily.
The QAPI definitions would then look like this:
diff --git a/qapi/misc.json b/qapi/misc.json
index d450cfef21..eae9243976 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -2663,9 +2663,9 @@
'data': [ 'EAX', 'EBX', 'ECX', 'EDX', 'ESP', 'EBP', 'ESI', 'EDI' ] }
##
-# @X86CPUFeatureWordInfo:
+# @X86CPUIDFeatureWordInfo:
#
-# Information about a X86 CPU feature word
+# Information about an X86 CPUID feature word
#
# @cpuid-input-eax: Input EAX value for CPUID instruction for that feature word
#
@@ -2678,12 +2690,45 @@
#
# Since: 1.5
##
-{ 'struct': 'X86CPUFeatureWordInfo',
+{ 'struct': 'X86CPUIDFeatureWordInfo',
'data': { 'cpuid-input-eax': 'int',
'*cpuid-input-ecx': 'int',
'cpuid-register': 'X86CPURegister32',
'features': 'int' } }
+##
+# @X86MSRFeatureWordInfo:
+#
+# Information about an X86 MSR feature word
+#
+# @index: Index of the model specific register
+#
+# @cpuid-feature: CPUID feature name that communicates the existance of the MSR
+#
+# @features: value of output register, containing the feature bits
+#
+# Since: 3.1
+##
+{ 'struct': 'X86MSRFeatureWordInfo',
+ 'data': { 'index': 'int',
+ 'cpuid-feature': 'str',
+ 'features': 'int' } }
+
+##
+# @X86CPUFeatureWordInfo:
+#
+# A discriminated record of X86 CPU feature words
+#
+# Since: 3.1
+##
+
+{ 'union': 'X86CPUFeatureWordInfo',
+ 'base': { 'type': 'X86CPUFeatureWordType' },
+ 'discriminator': 'type',
+ 'data': {
+ 'cpuid': 'X86CPUIDFeatureWordInfo',
+ 'msr': 'X86MSRFeatureWordInfo' }}
+
##
# @DummyForceArrays:
#
I'm not sure if the cpuid-feature field is useful for libvirt and
other management applications. Eduardo, what do you think?
Thanks,
Paolo
Re: [Qemu-devel] [PATCH v3 1/3] x86: Data structure changes to support MSR based features, Paolo Bonzini, 2018/08/17