uint32_t tcg_features; /* Feature flags supported by TCG */
uint32_t unmigratable_flags; /* Feature flags known to be unmigratable */
uint32_t migratable_flags; /* Feature flags known to be migratable */
+ /* Features that shouldn't be auto-enabled by "-cpu host" */
+ uint32_t no_autoenable_flags;
} FeatureWordInfo;
static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
},
.cpuid_eax = KVM_CPUID_FEATURES, .cpuid_reg = R_EDX,
.tcg_features = TCG_KVM_FEATURES,
+ /*
+ * KVM hints aren't auto-enabled by -cpu host, they need to be
+ * explicitly enabled in the command-line.
+ */
+ .no_autoenable_flags = ~0U,
},
[FEAT_HYPERV_EAX] = {
.feat_names = {
*/
env->features[w] |=
x86_cpu_get_supported_feature_word(w, cpu->migratable) &
- ~env->user_features[w];
+ ~env->user_features[w] & \
+ ~feature_word_info[w].no_autoenable_flags;
}
}