On Wed, Sep 28, 2016 at 04:36:14PM +0800, Wanpeng Li wrote: > From: Wanpeng Li <wanpeng.li@xxxxxxxxxxx> > > Commit 96193c22a "target-i386: Move xsave component mask to features array" > leverages features array to handle XCR0 processor state component bits, > however, it introduces a regression: > > warning: host doesn't support requested feature: CPUID.0DH:EAX [bit 0] > warning: host doesn't support requested feature: CPUID.0DH:EAX [bit 1] > warning: host doesn't support requested feature: CPUID.0DH:EAX [bit 2] > > My desktop doesn't have enough advance features, so just X87,SSE,AVX > warnings are splat when I boot a guest. > > The get migratable flags logic in x86_cpu_filter_features() path will > filter out the feature flags which are unsupported and unmigratable. > However, the bits of XCR0 processor state component featureword don't > have feat_names, and some features like SSE/AVX etc have feat_names in > CPUID.01H:EDX, CPUID.01H:ECX, so they are treated as unsupported. > > This patch fix it by don't filter out XCR0 processor state components > bits though they don't have feat_names just as before commit 96193c22ab3. > > Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> > Cc: Richard Henderson <rth@xxxxxxxxxxx> > Cc: Eduardo Habkost <ehabkost@xxxxxxxxxx> > Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> > Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx> > --- > v1 -> v2: > * move the check to x86_cpu_get_migratable_flags() > > target-i386/cpu.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/target-i386/cpu.c b/target-i386/cpu.c > index 333309b..cc929ca 100644 > --- a/target-i386/cpu.c > +++ b/target-i386/cpu.c > @@ -602,7 +602,10 @@ static uint32_t x86_cpu_get_migratable_flags(FeatureWord w) > uint32_t f = 1U << i; > /* If the feature name is unknown, it is not supported by QEMU yet */ > if (!wi->feat_names[i]) { > - continue; > + if (w != FEAT_XSAVE_COMP_LO && > + w != FEAT_XSAVE_COMP_HI) { > + continue; > + } We still need to report unknown xstate components as unmigratable (otherwise -cpu host will enable them automatically). See the fix I submitted: [PATCH] target-i386: Report known CPUID[EAX=0xD,ECX=0]:EAX bits as migratable -- Eduardo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html