Bug 918907
| Summary: | provide backwards-compatible RHEL specific machine types in QEMU - CPU features | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Paolo Bonzini <pbonzini> | |
| Component: | qemu-kvm | Assignee: | Eduardo Habkost <ehabkost> | |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Virtualization Bugs <virt-bugs> | |
| Severity: | unspecified | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 7.0 | CC: | acathrow, ajia, areis, bdas, berrange, ehabkost, hhuang, jshortt, juzhang, kraxel, laine, michen, mrezanin, pbonzini, qzhang, scui, virt-maint | |
| Target Milestone: | rc | Keywords: | FutureFeature | |
| Target Release: | 7.0 | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | qemu-kvm-1.5.3-44.el7 | Doc Type: | Deprecated Functionality | |
| Doc Text: |
RHEL7.0 will not provide the rhel5 machine-types.
Similarly, the "cpu64-rhel5" CPU model won't be
available on RHEL-7.
|
Story Points: | --- | |
| Clone Of: | 895959 | |||
| : | 1011623 1011626 (view as bug list) | Environment: | ||
| Last Closed: | 2014-06-13 09:41:10 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | 977864, 983991 | |||
| Bug Blocks: | 841379, 895959, 983997, 984008, 984010, 1011623, 1011626 | |||
|
Description
Paolo Bonzini
2013-03-07 08:17:26 UTC
RHEL-6 bugs/patches to keep in mind while implementing and testing this one: * Bug 814426 - "rdtscp" flag defined on SandyBridge and Opteron models, but not supported by the kernel * Bug 874400 - "rdtscp" flag defined on Opteron_G5 model and cann't be exposed to guest I'm working on it using the new "qemu_cpu..full_dump" test cases on virt-test. Fix included in qemu-kvm-1.5.3-2.el7 Reopening, I have found additional compatibility issues on some CPU models (mainly AMD CPU models). Fix included in qemu-kvm-1.5.3-7.el7 There's additional fixes for this bz - reverting to post. Fix included in qemu-kvm-1.5.3-10.el7 So, about the results:
kvm64 and cpu64-rhel6 CPU models: this is a known bug in the RHEL6 CPU models. We won't carry the bug forward when migrating, so this can be added to the config file:
diff --git a/qemu/tests/cfg/qemu_cpu.cfg b/qemu/tests/cfg/qemu_cpu.cfg
index fce9031..f2a0186 100644
--- a/qemu/tests/cfg/qemu_cpu.cfg
+++ b/qemu/tests/cfg/qemu_cpu.cfg
@@ -287,6 +287,15 @@
ignore_cpuid_leaves += " 0x80000001,0x0,edx,14"
ignore_cpuid_leaves += " 0x80000001,0x0,edx,17"
+ #KNOWN BUG: RHEL-6 has broken feature aliases on
+ # 0x80000001.EDX and they were not fixed, so ignore them:
+ machine.rhel.rhel600, machine.rhel.rhel610, machine.rhel.rhel620, machine.rhel.rhel630, machine.rhel.rhel640:
+ cpu.amd.athlon, cpu.amd.cpu64_rhel6, cpu.intel.kvm64:
+ # mtrr, mca, pse36
+ ignore_cpuid_leaves += " 0x80000001,0x0,edx,12"
+ ignore_cpuid_leaves += " 0x80000001,0x0,edx,14"
+ ignore_cpuid_leaves += " 0x80000001,0x0,edx,17"
+
# bz#819562: broken passthrough mode of CPUID leaf 7
machine.rhel.rhel620:
ignore_cpuid_leaves += " 7,0"
athlon CPU model: the bits 12, 14, 17 can be ignored like above, but there are differences in the 3dnowext and 3dnow bits. I will investigate the cause, and it will probably require a new RHEL-7 compat patch.
About the remaining athlon CPU model differences: the RHEl-6 athlon CPU model already have 3dnow and 3dnowext, so this is likely to be a bug in the CPU model dumps instead of on RHEL-7. I need to run some tests on RHEl-6 to find it out. RHEL-6 has old code that (incorrectly) disables 3dnow and 3dnowext unconditionally and without any warning. So, we need to disable it on the rhel6.* machine-type compat code as well. I will submit a patch soon. Fix included in qemu-kvm-1.5.3-38.el7 You need the following update to the virt-test config:
diff --git a/qemu/tests/cfg/qemu_cpu.cfg b/qemu/tests/cfg/qemu_cpu.cfg
index 56be533..8ab9330 100644
--- a/qemu/tests/cfg/qemu_cpu.cfg
+++ b/qemu/tests/cfg/qemu_cpu.cfg
@@ -297,7 +297,7 @@
#KNOWN BUG: RHEL-6 has broken feature aliases on
# 0x80000001.EDX and they were not fixed, so ignore them:
machine.rhel.rhel600, machine.rhel.rhel610, machine.rhel.rhel620, machine.rhel.rhel630, machine.rhel.rhel640, machine.rhel.rhel650:
- cpu.amd.athlon, cpu.amd.cpu64_rhel6, cpu.intel.kvm64:
+ cpu.amd.athlon, cpu.amd.cpu64_rhel6, cpu.intel.kvm64, cpu.amd.qemu64:
# vme, mtrr, mca, pse36
ignore_cpuid_leaves += " 0x80000001,0x0,edx,1"
ignore_cpuid_leaves += " 0x80000001,0x0,edx,12"
The results look good now, but while investigating bug 1056428 I have found another issue. Patch submitted: Subject: [RHEL7 qemu-kvm PATCH 1/2] pc: Disable RDTSCP unconditionally on rhel6.* machine-types Date: Wed, 22 Jan 2014 23:02:20 -0200 Message-Id: <1390438941-18726-2-git-send-email-ehabkost> (In reply to Eduardo Habkost from comment #36) > The results look good now, but while investigating bug 1056428 I have found > another issue. Patch submitted: > > Subject: [RHEL7 qemu-kvm PATCH 1/2] pc: Disable RDTSCP unconditionally on > rhel6.* machine-types > Date: Wed, 22 Jan 2014 23:02:20 -0200 > Message-Id: <1390438941-18726-2-git-send-email-ehabkost> Hi, Eduardo To verify this after it's included in the internal build, do we need to check the flag "rdtscp" will not be exposed to guest running on rhel7. And even with "-cpu Opteron_G5,enforce", there should no any warning? Help fix me if it's wrong. Thank you. Qunfang (In reply to Qunfang Zhang from comment #37) > (In reply to Eduardo Habkost from comment #36) > > The results look good now, but while investigating bug 1056428 I have found > > another issue. Patch submitted: > > > > Subject: [RHEL7 qemu-kvm PATCH 1/2] pc: Disable RDTSCP unconditionally on > > rhel6.* machine-types > > Date: Wed, 22 Jan 2014 23:02:20 -0200 > > Message-Id: <1390438941-18726-2-git-send-email-ehabkost> > > Hi, Eduardo > > To verify this after it's included in the internal build, do we need to > check the flag "rdtscp" will not be exposed to guest running on rhel7. And > even with "-cpu Opteron_G5,enforce", there should no any warning? Help fix > me if it's wrong. That's correct. rdtscp should be disabled on all CPU models for all rhel6.* machine-types. On rhel7.0.0 machine-type, rdtscp should be disabled on all AMD CPU models (but it will stay enabled on SandyBridge and Haswell CPU model). (But as this bug is about rhel6 machine-types, Bug 1056428 can be used to track the rhel7.0.0 changes) (In reply to Eduardo Habkost from comment #38) ...... > That's correct. rdtscp should be disabled on all CPU models for all rhel6.* > machine-types. > > On rhel7.0.0 machine-type, rdtscp should be disabled on all AMD CPU models > (but it will stay enabled on SandyBridge and Haswell CPU model). (But as > this bug is about rhel6 machine-types, Bug 1056428 can be used to track the > rhel7.0.0 changes) Thanks a lot for the confirmation. Fix included in qemu-kvm-1.5.3-44.el7 Verified the scenarios Eduardo suggested in comment 38 with qemu-kvm-1.5.3-45.el7.x86_64, all the results are expected as below: Intel Haswell host: (1) -cpu Haswell -M pc Guest: Has "rdtscp" flag (2) -cpu Haswell -M rhel6.5.0 Guest: No "rdtscp" flag Intel SandyBridge host: (1) -cpu SandyBridge -M pc Guest: Has "rdtscp" flag (2) -cpu SandyBridge -M rhel6.5.0 Guest: No "rdtscp" flag AMD host with "rdtscp" flag: (1) -cpu Opteron_G5 -M pc Guest: No "rdtscp" flag (2) -cpu Opteron_G5 -M rhel6.5.0 Guest: No "rdtscp" flag (3) -cpu Opteron_G4 -M pc Guest: No "rdtscp" flag (4) -cpu Opteron_G4 -M rhel6.5.0 Guest: No "rdtscp" flag (5) -cpu Opteron_G3 -M rhel6.5.0 Guest: No "rdtscp" flag (6) -cpu Opteron_G2 -M rhel6.5.0 Guest: No "rdtscp" flag Based on comment 15, comment 34, comment 41, this bug is fixed. This request was resolved in Red Hat Enterprise Linux 7.0. Contact your manager or support representative in case you have further questions about the request. |