mirror of https://github.com/xemu-project/xemu.git
target-i386: Reenable RDTSCP support on Opteron_G[345] CPU models CPU models
The missing functionality was added ~3 years ago with the Linux commit 46896c73c1a4 ("KVM: svm: add support for RDTSCP") so reenable RDTSCP support on those CPU models. Opteron_G2 - being family 15, model 6, doesn't have RDTSCP support (the real hardware doesn't have it. K8 got RDTSCP support with the NPT models, i.e., models >= 0x40). Document the host's minimum required kernel version, while at it. Signed-off-by: Borislav Petkov <bp@suse.de> Message-ID: <20181212200803.GG6653@zn.tnic> [ehabkost: moved compat properties code to pc.c] Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
a2b107dbbd
commit
483c6ad426
|
@ -112,6 +112,9 @@ struct hpet_fw_config hpet_cfg = {.count = UINT8_MAX};
|
|||
|
||||
GlobalProperty pc_compat_3_1[] = {
|
||||
{ "intel-iommu", "dma-drain", "off" },
|
||||
{ "Opteron_G3" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
||||
{ "Opteron_G4" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
||||
{ "Opteron_G5" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
||||
};
|
||||
const size_t pc_compat_3_1_len = G_N_ELEMENTS(pc_compat_3_1);
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
* QEMU System emulator for non PC targets::
|
||||
* QEMU Guest Agent::
|
||||
* QEMU User space emulator::
|
||||
* System requirements::
|
||||
* Implementation notes::
|
||||
* Deprecated features::
|
||||
* Supported build platforms::
|
||||
|
@ -2813,6 +2814,18 @@ Act as if the host page size was 'pagesize' bytes
|
|||
Run the emulation in single step mode.
|
||||
@end table
|
||||
|
||||
@node System requirements
|
||||
@chapter System requirements
|
||||
|
||||
@section KVM kernel module
|
||||
|
||||
On x86_64 hosts, the default set of CPU features enabled by the KVM accelerator
|
||||
require the host to be running Linux v4.5 or newer.
|
||||
|
||||
The OpteronG[345] CPU models require KVM support for RDTSCP, which was
|
||||
added with Linux 4.5 which is supported by the major distros. And even
|
||||
if RHEL7 has kernel 3.10, KVM there has the required functionality there
|
||||
to make it close to a 4.5 or newer kernel.
|
||||
|
||||
@include qemu-tech.texi
|
||||
|
||||
|
|
|
@ -2736,7 +2736,6 @@ static X86CPUDefinition builtin_x86_defs[] = {
|
|||
CPUID_DE | CPUID_FP87,
|
||||
.features[FEAT_1_ECX] =
|
||||
CPUID_EXT_CX16 | CPUID_EXT_SSE3,
|
||||
/* Missing: CPUID_EXT2_RDTSCP */
|
||||
.features[FEAT_8000_0001_EDX] =
|
||||
CPUID_EXT2_LM | CPUID_EXT2_NX | CPUID_EXT2_SYSCALL,
|
||||
.features[FEAT_8000_0001_ECX] =
|
||||
|
@ -2760,9 +2759,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
|
|||
.features[FEAT_1_ECX] =
|
||||
CPUID_EXT_POPCNT | CPUID_EXT_CX16 | CPUID_EXT_MONITOR |
|
||||
CPUID_EXT_SSE3,
|
||||
/* Missing: CPUID_EXT2_RDTSCP */
|
||||
.features[FEAT_8000_0001_EDX] =
|
||||
CPUID_EXT2_LM | CPUID_EXT2_NX | CPUID_EXT2_SYSCALL,
|
||||
CPUID_EXT2_LM | CPUID_EXT2_NX | CPUID_EXT2_SYSCALL |
|
||||
CPUID_EXT2_RDTSCP,
|
||||
.features[FEAT_8000_0001_ECX] =
|
||||
CPUID_EXT3_MISALIGNSSE | CPUID_EXT3_SSE4A |
|
||||
CPUID_EXT3_ABM | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM,
|
||||
|
@ -2787,10 +2786,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
|
|||
CPUID_EXT_POPCNT | CPUID_EXT_SSE42 | CPUID_EXT_SSE41 |
|
||||
CPUID_EXT_CX16 | CPUID_EXT_SSSE3 | CPUID_EXT_PCLMULQDQ |
|
||||
CPUID_EXT_SSE3,
|
||||
/* Missing: CPUID_EXT2_RDTSCP */
|
||||
.features[FEAT_8000_0001_EDX] =
|
||||
CPUID_EXT2_LM | CPUID_EXT2_PDPE1GB | CPUID_EXT2_NX |
|
||||
CPUID_EXT2_SYSCALL,
|
||||
CPUID_EXT2_SYSCALL | CPUID_EXT2_RDTSCP,
|
||||
.features[FEAT_8000_0001_ECX] =
|
||||
CPUID_EXT3_FMA4 | CPUID_EXT3_XOP |
|
||||
CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE |
|
||||
|
@ -2818,10 +2816,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
|
|||
CPUID_EXT_AES | CPUID_EXT_POPCNT | CPUID_EXT_SSE42 |
|
||||
CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_FMA |
|
||||
CPUID_EXT_SSSE3 | CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3,
|
||||
/* Missing: CPUID_EXT2_RDTSCP */
|
||||
.features[FEAT_8000_0001_EDX] =
|
||||
CPUID_EXT2_LM | CPUID_EXT2_PDPE1GB | CPUID_EXT2_NX |
|
||||
CPUID_EXT2_SYSCALL,
|
||||
CPUID_EXT2_SYSCALL | CPUID_EXT2_RDTSCP,
|
||||
.features[FEAT_8000_0001_ECX] =
|
||||
CPUID_EXT3_TBM | CPUID_EXT3_FMA4 | CPUID_EXT3_XOP |
|
||||
CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE |
|
||||
|
|
Loading…
Reference in New Issue