On Mon, Jun 25, 2018 at 07:25:21PM -0300, Eduardo Habkost wrote: > From: Babu Moger <[email protected]> > > Enabling TOPOEXT feature might cause compatibility issues if > older kernels does not set this feature. Lets set this feature > unconditionally. > > Signed-off-by: Babu Moger <[email protected]> > Message-Id: <[email protected]> > [ehabkost: rewrite comment and commit message] > Signed-off-by: Eduardo Habkost <[email protected]> > --- > target/i386/kvm.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/target/i386/kvm.c b/target/i386/kvm.c > index 445e0e0b11..2d174f3a91 100644 > --- a/target/i386/kvm.c > +++ b/target/i386/kvm.c > @@ -372,6 +372,13 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, > uint32_t function, > if (host_tsx_blacklisted()) { > ret &= ~(CPUID_7_0_EBX_RTM | CPUID_7_0_EBX_HLE); > } > + } else if (function == 0x80000001 && reg == R_ECX) { > + /* > + * It's safe to enable TOPOEXT even if it's not returned by > + * GET_SUPPORTED_CPUID. Unconditionally enabling TOPOEXT here allows > + * us to keep CPU models including TOPOEXT runnable on older kernels. > + */ > + ret |= CPUID_EXT3_TOPOEXT; > } else if (function == 0x80000001 && reg == R_EDX) { > /* On Intel, kvm returns cpuid according to the Intel spec, > * so add missing bits according to the AMD spec:
This commit breaks KVM (not TCG) with -cpu host on: AMD Phenom(tm) 9600B Quad-Core Processor More details including full qemu command line etc in this bug: https://bugzilla.redhat.com/show_bug.cgi?id=1613277 Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW
