Bug 1184125
| Summary: | -cpu host: cache CPUID passthrough may not make sense depending on VM CPU topology | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Eduardo Habkost <ehabkost> |
| Component: | qemu-kvm-rhev | Assignee: | Eduardo Habkost <ehabkost> |
| Status: | CLOSED ERRATA | QA Contact: | Guo, Zhiyi <zhguo> |
| Severity: | high | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 7.2 | CC: | ailan, benoit.canet, chayang, drjones, ehabkost, hhuang, hrgstephen, huding, juzhang, knoel, lmiksik, lwoodman, mkenneth, mrezanin, pbonzini, rbalakri, rpacheco, virt-bugs, virt-maint |
| Target Milestone: | rc | Keywords: | Regression, Reopened |
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | qemu-kvm-rhev-2.6.0-1.el7 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | 1169577 | Environment: | |
| Last Closed: | 2016-11-07 20:19:31 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: | 1169577 | ||
| Bug Blocks: | |||
|
Description
Eduardo Habkost
2015-01-20 15:38:49 UTC
It is a regression from qemu-kvm-rhev-1.5.3, proposing exception+ flag. Upstream patch submitted: From: Eduardo Habkost <ehabkost> To: qemu-devel Subject: [PATCH] target-i386: Disable cache info passthrough by default Date: Wed, 19 Aug 2015 10:08:22 -0700 Message-Id: <1440004102-4822-1-git-send-email-ehabkost> http://article.gmane.org/gmane.comp.emulators.qemu/356417 (In reply to Eduardo Habkost from comment #4) > Upstream patch submitted: > > From: Eduardo Habkost <ehabkost> > To: qemu-devel > Subject: [PATCH] target-i386: Disable cache info passthrough by default > Date: Wed, 19 Aug 2015 10:08:22 -0700 > Message-Id: <1440004102-4822-1-git-send-email-ehabkost> > > http://article.gmane.org/gmane.comp.emulators.qemu/356417 No upstream reviews yet. Many people are on vacation. Maybe worth a ping? Or, choose others to review? New upstream patch posted to qemu-devel: Subject: [PATCH v2] target-i386: Disable cache info passthrough by default Date: Wed, 2 Sep 2015 11:19:11 -0300 Message-Id: <1441203551-15403-1-git-send-email-ehabkost> Fixed on v2.6.0 rebase. Hi Eduardo, Could you tell QE how to verify this bug? Thanks! BR/ Guo,Zhiyi (In reply to Guo, Zhiyi from comment #12) > Hi Eduardo, > > Could you tell QE how to verify this bug? Thanks! > In case it is not possible to reproduce the crash from the original bug report, you can do this: 1) Start a guest with -cpu host with a CPU topology different from the host (preferably make it very different: use a host with a large number of threads/cores per socket, and start a VM with a smaller number of threads/cores per socket, or vice-versa). 2) Check "lscpu -e" output on the guest. 2.1) On old qemu-kvm-rhev (or latest qemu-kvm-rhev using rhel7.2.0 machine-type), cache topology information will be arbitrary and may not make sense, because it is copied from host CPUID (e.g. CPUs in different sockets may appear sharing the same L1 cache ID, or CPU threads inside the same core may appear _not_ sharing the same L3 cache ID). 2.2) Using newer QEMU with rhel7.3.0 machine-type, cache information should be reasonable and match the CPU topology specified in the command-line (more exactly: different ID for L1i and L1d for each thread, same L2 ID for threads inside the same core, and no L3 cache) Reproduce the issue wiht qemu-kvm-rhev-2.3.0-31.el7_2.21.x86_64 and rhel7.3 guest.
qemu cli used:
/usr/libexec/qemu-kvm -name rhel7.3 -m 2048 \
-cpu host \
-smp 24,threads=4,cores=6,sockets=1 \
-device virtio-serial -chardev spicevmc,id=vdagent,debug=0,name=vdagent \
-spice port=3003,disable-ticketing \
-device qxl \
-serial unix:/tmp/m,server,nowait \
-device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
-drive file=/home/ss1rhel73.qcow2,if=none,id=drive-scsi-disk0,format=qcow2,cache=none,werror=stop,rerror=stop -device virtio-scsi-pci,id=scsi0 -device scsi-hd,drive=drive-scsi-disk0,bus=scsi0.0,scsi-id=0,lun=0,id=scsi-disk0,bootindex=1 \
-monitor stdio \
-netdev tap,id=idinWyYp,vhost=on -device virtio-net-pci,mac=42:ce:a9:d2:4d:d7,id=idlbq7eA,netdev=idinWyYp \
steps:
1.boot guest with qemu cli
2.inside guest, lscpu -e:
CPU NODE SOCKET CORE L1d:L1i:L2 ONLINE
0 0 0 0 0:0:0 yes
1 0 0 0 0:0:0 yes
2 0 0 0 0:0:0 yes
3 0 0 0 0:0:0 yes
4 0 0 1 1:1:0 yes
5 0 0 1 1:1:0 yes
6 0 0 1 1:1:0 yes
7 0 0 1 1:1:0 yes
8 0 0 2 2:2:1 yes
9 0 0 2 2:2:1 yes
10 0 0 2 2:2:1 yes
11 0 0 2 2:2:1 yes
12 0 0 3 3:3:1 yes
13 0 0 3 3:3:1 yes
14 0 0 3 3:3:1 yes
15 0 0 3 3:3:1 yes
16 0 0 4 4:4:2 yes
17 0 0 4 4:4:2 yes
18 0 0 4 4:4:2 yes
19 0 0 4 4:4:2 yes
20 0 0 5 5:5:2 yes
21 0 0 5 5:5:2 yes
22 0 0 5 5:5:2 yes
23 0 0 5 5:5:2 yes
Many threads have same L1i and L1d and threads inside another core have same L2 ID
Verify against qemu-kvm-rhev-2.6.0-24.el7.x86_64:
# lscpu -e
CPU NODE SOCKET CORE L1d:L1i:L2 ONLINE
0 0 0 0 0:0:0 yes
1 0 0 0 1:1:0 yes
2 0 0 0 2:2:0 yes
3 0 0 0 3:3:0 yes
4 0 0 1 4:4:1 yes
5 0 0 1 5:5:1 yes
6 0 0 1 6:6:1 yes
7 0 0 1 7:7:1 yes
8 0 0 2 8:8:2 yes
9 0 0 2 9:9:2 yes
10 0 0 2 10:10:2 yes
11 0 0 2 11:11:2 yes
12 0 0 3 12:12:3 yes
13 0 0 3 13:13:3 yes
14 0 0 3 14:14:3 yes
15 0 0 3 15:15:3 yes
16 0 0 4 16:16:4 yes
17 0 0 4 17:17:4 yes
18 0 0 4 18:18:4 yes
19 0 0 4 19:19:4 yes
20 0 0 5 20:20:5 yes
21 0 0 5 21:21:5 yes
22 0 0 5 22:22:5 yes
23 0 0 5 23:23:5 yes
different ID for L1i and L1d for each thread, same L2 ID for threads inside the same core, and no L3 cache
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2016-2673.html |