Bug 1329045
| Summary: | Guest got killed when restart libvirtd if guest has cmt event enabled but host doesn't support CMT | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Fangge Jin <fjin> | ||||
| Component: | libvirt | Assignee: | Peter Krempa <pkrempa> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | medium | ||||||
| Version: | 7.3 | CC: | dyuan, mzhan, pkrempa, rbalakri, yafu, zpeng | ||||
| Target Milestone: | rc | ||||||
| Target Release: | --- | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | libvirt-1.3.5-1.el7 | Doc Type: | Bug Fix | ||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2016-11-03 18:43:32 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: | |||||||
| Attachments: |
|
||||||
Fixed upstream:
commit edadd46c05b1eb93479a88017783bae648709bfa
Author: Peter Krempa <pkrempa>
Date: Wed Apr 27 14:58:32 2016 +0200
qemu: process: Fix failure semantics for perf events
For strange reasons if a perf event type was not supported or failed to
be enabled at VM start libvirt would ignore the failure.
On the other hand on restart if the event could not be re-enabled
libvirt would fail to reconnect to the VM and kill it.
Both don't make really sense. Fix it by failing to start the VM if the
event is not supported and change the event to disabled if it can't be
reconnected (unlikely).
(plus a few cleanups to make this patch happen)
Reproduce the bug with libvirt-1.3.3-2.el7.x86_64. steps as comment 0. Test pass with version libvirt-1.3.5-1.el7.x86_64. Steps: 1.On a host that doesn't support Intel CMT, define a guest with cmt enabled: #virsh edit rhel7.3 ... <perf> <event name='cmt' enabled='yes'/> </perf> ... 2.Start the guest: #virsh start rhel7.3 error: Failed to start domain rhel7.3 error: Failed to open file '/sys/devices/intel_cqm/type': No such file or directory 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/RHSA-2016-2577.html |
Created attachment 1149277 [details] libvirtd and qemu log Description of problem: On a host that doesn't support CMT, define&start a guest with cmt event enabled: # virsh list Id Name State ---------------------------------------------------- 10 windows running # virsh dumpxml windows ... <perf> <event name='cmt' enabled='yes'/> </perf> ... Then restart libvirtd, guest will be killed. # systemctl restart libvirtd # virsh list Id Name State ---------------------------------------------------- Version-Release number of selected component (if applicable): libvirt-1.3.3-2.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1. On a host that doesn't support Intel CMT, define&start a guest with cmt enabled: # cat /tmp/windows.xml ... <perf> <event name='cmt' enabled='yes'/> </perf> # virsh define /tmp/windows.xml # virsh start windows # virsh list Id Name State ---------------------------------------------------- 10 windows running # virsh dumpxml windows ... <perf> <event name='cmt' enabled='yes'/> </perf> ... # virsh perf windows cmt : disabled 2. # systemctl restart libvirtd # virsh list Id Name State ---------------------------------------------------- 3. Another scenario is that migrating a guest with cmt event enabled from a host that supports CMT to a host that doesn't support CMT, after migration, restart libvirtd on target host, the guest will be killed. Actual results: Guest start successfully but then got killed when restart libvirtd Expected results: Guest fails to start, and reports error: error : virFileReadAll:1375 : Failed to open file '/sys/devices/intel_cqm/type': No such file or directory Additional info: