diff --git a/0036-target-i386-cpu-Add-new-EPYC-CPU-mo.patch b/0036-target-i386-cpu-Add-new-EPYC-CPU-mo.patch new file mode 100644 index 00000000..dfd4d93a --- /dev/null +++ b/0036-target-i386-cpu-Add-new-EPYC-CPU-mo.patch @@ -0,0 +1,86 @@ +From 80810a703935dee520096b7cda635189472c755b Mon Sep 17 00:00:00 2001 +From: Brijesh Singh +Date: Tue, 15 Aug 2017 12:00:51 -0500 +Subject: [PATCH] target-i386/cpu: Add new EPYC CPU model + +Add a new base CPU model called 'EPYC' to model processors from AMD EPYC +family (which includes EPYC 76xx,75xx,74xx, 73xx and 72xx). + +The following features bits have been added/removed compare to Opteron_G5 + +Added: monitor, movbe, rdrand, mmxext, ffxsr, rdtscp, cr8legacy, osvw, + fsgsbase, bmi1, avx2, smep, bmi2, rdseed, adx, smap, clfshopt, sha + xsaveopt, xsavec, xgetbv1, arat + +Removed: xop, fma4, tbm + +Cc: Paolo Bonzini +Cc: Richard Henderson +Cc: Eduardo Habkost +Cc: Tom Lendacky +Signed-off-by: Brijesh Singh +Message-Id: <20170815170051.127257-1-brijesh.singh@amd.com> +Reviewed-by: Eduardo Habkost +Signed-off-by: Eduardo Habkost +(cherry picked from commit 2e2efc7dbe2b0adc1200b5aa286cdbed729f6751) +[BR: BSC#1052825] +Signed-off-by: Bruce Rogers +--- + target/i386/cpu.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 44 insertions(+) + +diff --git a/target/i386/cpu.c b/target/i386/cpu.c +index ddc45abd70..6617e01a72 100644 +--- a/target/i386/cpu.c ++++ b/target/i386/cpu.c +@@ -1522,6 +1522,50 @@ static X86CPUDefinition builtin_x86_defs[] = { + .xlevel = 0x8000001A, + .model_id = "AMD Opteron 63xx class CPU", + }, ++ { ++ .name = "EPYC", ++ .level = 0xd, ++ .vendor = CPUID_VENDOR_AMD, ++ .family = 23, ++ .model = 1, ++ .stepping = 2, ++ .features[FEAT_1_EDX] = ++ CPUID_SSE2 | CPUID_SSE | CPUID_FXSR | CPUID_MMX | CPUID_CLFLUSH | ++ CPUID_PSE36 | CPUID_PAT | CPUID_CMOV | CPUID_MCA | CPUID_PGE | ++ CPUID_MTRR | CPUID_SEP | CPUID_APIC | CPUID_CX8 | CPUID_MCE | ++ CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE | CPUID_DE | ++ CPUID_VME | CPUID_FP87, ++ .features[FEAT_1_ECX] = ++ CPUID_EXT_RDRAND | CPUID_EXT_F16C | CPUID_EXT_AVX | ++ CPUID_EXT_XSAVE | CPUID_EXT_AES | CPUID_EXT_POPCNT | ++ CPUID_EXT_MOVBE | CPUID_EXT_SSE42 | CPUID_EXT_SSE41 | ++ CPUID_EXT_CX16 | CPUID_EXT_FMA | CPUID_EXT_SSSE3 | ++ CPUID_EXT_MONITOR | CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3, ++ .features[FEAT_8000_0001_EDX] = ++ CPUID_EXT2_LM | CPUID_EXT2_RDTSCP | CPUID_EXT2_PDPE1GB | ++ CPUID_EXT2_FFXSR | CPUID_EXT2_MMXEXT | CPUID_EXT2_NX | ++ CPUID_EXT2_SYSCALL, ++ .features[FEAT_8000_0001_ECX] = ++ CPUID_EXT3_OSVW | CPUID_EXT3_3DNOWPREFETCH | ++ CPUID_EXT3_MISALIGNSSE | CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | ++ CPUID_EXT3_CR8LEG | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM, ++ .features[FEAT_7_0_EBX] = ++ CPUID_7_0_EBX_FSGSBASE | CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_AVX2 | ++ CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_RDSEED | ++ CPUID_7_0_EBX_ADX | CPUID_7_0_EBX_SMAP | CPUID_7_0_EBX_CLFLUSHOPT | ++ CPUID_7_0_EBX_SHA_NI, ++ /* Missing: XSAVES (not supported by some Linux versions, ++ * including v4.1 to v4.12). ++ * KVM doesn't yet expose any XSAVES state save component. ++ */ ++ .features[FEAT_XSAVE] = ++ CPUID_XSAVE_XSAVEOPT | CPUID_XSAVE_XSAVEC | ++ CPUID_XSAVE_XGETBV1, ++ .features[FEAT_6_EAX] = ++ CPUID_6_EAX_ARAT, ++ .xlevel = 0x8000000A, ++ .model_id = "AMD EPYC Processor", ++ }, + }; + + typedef struct PropValue { diff --git a/qemu-linux-user.changes b/qemu-linux-user.changes index fdbc8226..6a4fb9e8 100644 --- a/qemu-linux-user.changes +++ b/qemu-linux-user.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Sep 21 21:41:08 UTC 2017 - brogers@suse.com + +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.10 +* Patches added: + 0036-target-i386-cpu-Add-new-EPYC-CPU-mo.patch + ------------------------------------------------------------------- Thu Aug 31 18:48:32 UTC 2017 - brogers@suse.com diff --git a/qemu-linux-user.spec b/qemu-linux-user.spec index 75da3ffa..88d0a036 100644 --- a/qemu-linux-user.spec +++ b/qemu-linux-user.spec @@ -61,6 +61,7 @@ Patch0032: 0032-tests-Add-QOM-property-unit-tests.patch Patch0033: 0033-tests-Add-scsi-disk-test.patch Patch0034: 0034-slirp-fix-clearing-ifq_so-from-pend.patch Patch0035: 0035-s390-ccw-Fix-alignment-for-CCW1.patch +Patch0036: 0036-target-i386-cpu-Add-new-EPYC-CPU-mo.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. Source400: update_git.sh @@ -149,6 +150,7 @@ run cross-architecture builds. %patch0033 -p1 %patch0034 -p1 %patch0035 -p1 +%patch0036 -p1 %build ./configure \ diff --git a/qemu-testsuite.changes b/qemu-testsuite.changes index 889b292e..a84b2a96 100644 --- a/qemu-testsuite.changes +++ b/qemu-testsuite.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Thu Sep 21 21:41:05 UTC 2017 - brogers@suse.com + +- For SLE15 pre-release testing, add support for the EPYC processor. + This will be officially supported once it is included in the v2.11 + release. (bsc#1052825) + 0036-target-i386-cpu-Add-new-EPYC-CPU-mo.patch +- Fix some support statements in our SLE support documents. + ------------------------------------------------------------------- Thu Aug 31 18:48:22 UTC 2017 - brogers@suse.com diff --git a/qemu-testsuite.spec b/qemu-testsuite.spec index ba67e882..b0fc30fb 100644 --- a/qemu-testsuite.spec +++ b/qemu-testsuite.spec @@ -167,6 +167,7 @@ Patch0032: 0032-tests-Add-QOM-property-unit-tests.patch Patch0033: 0033-tests-Add-scsi-disk-test.patch Patch0034: 0034-slirp-fix-clearing-ifq_so-from-pend.patch Patch0035: 0035-s390-ccw-Fix-alignment-for-CCW1.patch +Patch0036: 0036-target-i386-cpu-Add-new-EPYC-CPU-mo.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. @@ -851,6 +852,7 @@ This package provides a service file for starting and stopping KSM. %patch0033 -p1 %patch0034 -p1 %patch0035 -p1 +%patch0036 -p1 pushd roms/ipxe %patch1100 -p1 diff --git a/qemu.changes b/qemu.changes index 889b292e..a84b2a96 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Thu Sep 21 21:41:05 UTC 2017 - brogers@suse.com + +- For SLE15 pre-release testing, add support for the EPYC processor. + This will be officially supported once it is included in the v2.11 + release. (bsc#1052825) + 0036-target-i386-cpu-Add-new-EPYC-CPU-mo.patch +- Fix some support statements in our SLE support documents. + ------------------------------------------------------------------- Thu Aug 31 18:48:22 UTC 2017 - brogers@suse.com diff --git a/qemu.spec b/qemu.spec index 9b17908f..e5b454ff 100644 --- a/qemu.spec +++ b/qemu.spec @@ -167,6 +167,7 @@ Patch0032: 0032-tests-Add-QOM-property-unit-tests.patch Patch0033: 0033-tests-Add-scsi-disk-test.patch Patch0034: 0034-slirp-fix-clearing-ifq_so-from-pend.patch Patch0035: 0035-s390-ccw-Fix-alignment-for-CCW1.patch +Patch0036: 0036-target-i386-cpu-Add-new-EPYC-CPU-mo.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. @@ -851,6 +852,7 @@ This package provides a service file for starting and stopping KSM. %patch0033 -p1 %patch0034 -p1 %patch0035 -p1 +%patch0036 -p1 pushd roms/ipxe %patch1100 -p1 diff --git a/supported.arm.txt b/supported.arm.txt index b7ebe990..d7abbdd0 100644 --- a/supported.arm.txt +++ b/supported.arm.txt @@ -11,11 +11,11 @@ Overview virtualization features as well. This document was created to assist the user in deciding which features can be relied upon to build enterprise class virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64), - for IBM System z (s390x) and for the ARM64 architecture (AArch64) are offered - at the L3 (full support) level. The bulk of this document deals with L3 - supported features and is primarily ARM64 centric. This document should be - considered a companion to the standard virtualization documentation delivered - with the product. + for IBM System z (s390x), for Power8 Systems (ppc64le) and for the ARM64 + architecture (AArch64) are offered at the L3 (full support) level. The bulk + of this document deals with L3 supported features and is primarily ARM64 + centric. This document should be considered a companion to the standard + virtualization documentation delivered with the product. KVM is implemented in linux kernel modules which enable the linux kernel to function as an integral part of the KVM hypervisor. The hypervisor-guest diff --git a/supported.ppc.txt b/supported.ppc.txt index 5e0424d3..f8d6082a 100644 --- a/supported.ppc.txt +++ b/supported.ppc.txt @@ -5,22 +5,17 @@ SLES 12 SP3 QEMU/KVM RELATED SUPPORT STATEMENTS Overview -------- - QEMU/KVM on ppc is in Tech Preview status on an OpenPower S822LC host, - otherwise, it is not supported. Usage of the word support or supported in this - document indicates "intended" support if and when support changes to level 3 - support (L3). - - The QEMU based packages included with SLES 12 SP3 provide a large variety of + The QEMU based packages included with SLES 15 provide a large variety of features, from the very latest customer requests to features of questionable quality or value. The linux kernel includes components which contribute KVM virtualization features as well. This document was created to assist the user in deciding which features can be relied upon to build enterprise class virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64), - for IBM System z (s390x) and for the ARM64 architecture (AArch64) are offered - at the L3 (full support) level. The bulk of this document deals with intended - supported features and is primarily ppc centric. This document should be - considered a companion to the standard virtualization documentation delivered - with the product. + for IBM System z (s390x), for Power8 Systems (ppc64le) and for the ARM64 + architecture (AArch64) are offered at the L3 (full support) level. The bulk + of this document deals with L3 supported features and is primarily Power8 + centric. This document should be considered a companion to the standard + virtualization documentation delivered with the product. KVM is implemented in linux kernel modules which enable the linux kernel to function as an integral part of the KVM hypervisor. The hypervisor-guest diff --git a/supported.s390.txt b/supported.s390.txt index f9d28b16..677b9393 100644 --- a/supported.s390.txt +++ b/supported.s390.txt @@ -11,11 +11,11 @@ Overview virtualization features as well. This document was created to assist the user in deciding which features can be relied upon to build enterprise class virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64), - for IBM System z (s390x) and for the ARM64 architecture (AArch64) are offered - at the L3 (full support) level. The bulk of this document deals with L3 - supported features and is primarily s390x centric. This document should be - considered a companion to the standard virtualization documentation delivered - with the product. + for IBM System z (s390x), for Power8 Systems (ppc64le) and for the ARM64 + architecture (AArch64) are offered at the L3 (full support) level. The bulk + of this document deals with L3 supported features and is primarily s390x + centric. This document should be considered a companion to the standard + virtualization documentation delivered with the product. KVM is implemented in linux kernel modules which enable the linux kernel to function as an integral part of the KVM hypervisor. The hypervisor-guest @@ -58,7 +58,7 @@ Major QEMU/KVM Supported Features Since a KVM guest runs in the context of a normal linux process, some types of execution controls are managed with linux tools. -- QEMU incorporates virtualized, 390 specific, ccw bus based firmware for +- QEMU incorporates virtualized, s390 specific, ccw bus based firmware for booting s390 guests. This firmware is automatically incorporated and doesn't need to be explicitly referenced. @@ -225,7 +225,7 @@ QEMU Command-Line and Monitor Syntax and Support -device [virtio-net-pci|virtio-blk-pci|virtio-balloon-pci|virtserialport| virtconsole|virtio-serial-pci|virtio-scsi-pci|scsi-cd|scsi-hd| scsi-generic|scsi-disk|scsi-block|virtio-rng-pci|pci-bridge| - megasas-gen2|e1000e|e1000] + megasas-gen2|e1000e|e1000|zpci] (the following are aliases of these supported devices: virtio-blk| virtio-net|virtio-serial|virtio-balloon|virtio-scsi|virtio-rng) -dfilter range, ... @@ -549,11 +549,11 @@ QEMU Command-Line and Monitor Syntax and Support z9BC-base-s390-cpu|z9BC-s390-cpu|z9EC.2-base-s390-cpu|z9EC.2-s390-cpu| z9EC.3-base-s390-cpu|z9EC.3-s390-cpu|z9EC-base-s390-cpu|z9EC-s390-cpu| zBC12-base-s390-cpu|zBC12-s390-cpu|zEC12.2-base-s390-cpu| - zEC12.2-s390-cpu|zEC12-base-s390-cpu|zEC12-s390-cpu|zpci|vmgenid| + zEC12.2-s390-cpu|zEC12-base-s390-cpu|zEC12-s390-cpu|vmgenid| vhost-user-scsi|vhost-user-scsi-pci|mmio_interface] (the following are aliases of these unsupported devices: lsi| virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet| - virtio-gpu|virtio-9p|pci-assign|ahci|e1000-82540em) + virtio-gpu|virtio-9p|pci-assign|ahci|e1000-82540em|vfio-ccw) (note that some of these device names represent supported devices and are used internally, but are not specifyable via -device even though they appear in the list of devices) diff --git a/supported.x86.txt b/supported.x86.txt index 508277fa..84d74c19 100644 --- a/supported.x86.txt +++ b/supported.x86.txt @@ -11,11 +11,11 @@ Overview virtualization features as well. This document was created to assist the user in deciding which features can be relied upon to build enterprise class virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64), - for IBM System z (s390x) and for the ARM64 architecture (AArch64) are offered - at the L3 (full support) level. The bulk of this document deals with L3 - supported features and is primarily x86 centric. This document should be - considered a companion to the standard virtualization documentation delivered - with the product. + for IBM System z (s390x), for Power8 Systems (ppc64le) and for the ARM64 + architecture (AArch64) are offered at the L3 (full support) level. The bulk + of this document deals with L3 supported features and is primarily x86 + centric. This document should be considered a companion to the standard + virtualization documentation delivered with the product. KVM is implemented in linux kernel modules which enable the linux kernel to function as an integral part of the KVM hypervisor. The hypervisor-guest