Bug 1182388
| Summary: | adding the panic device should be permitted but have no effect for POWER | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Luyao Huang <lhuang> |
| Component: | libvirt | Assignee: | Andrea Bolognani <abologna> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 7.1 | CC: | dgibson, dyuan, dzheng, gsun, michen, mzhan, ngu, rbalakri, weizhan, xuhan, ypu |
| Target Milestone: | rc | Keywords: | Upstream |
| Target Release: | --- | ||
| Hardware: | ppc64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-1.2.17-1.el7 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2015-11-19 06:08:05 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: | |||
|
Description
Luyao Huang
2015-01-15 01:53:38 UTC
The issue has been resolved by the following commit:
commit 7bd769e0ab86d7345c6331f3a4ca9b0317efae2b
Author: Andrea Bolognani <abologna>
Date: Thu May 28 16:39:12 2015 +0200
qemu: Allow panic device for pSeries guests
The guest firmware provides the same functionality as the pvpanic
device, which is not available in QEMU on pSeries, so the domain
XML should be allowed to contain the <panic> element.
On the other hand, unlike the pvpanic device, the guest firmware
can't be configured, so report an error if an address has been
provided in the XML.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1182388
v1.2.16-4-g7bd769e
This bug can be reproduced with following package version
libvirt-1.2.16-1.el7.ppc64le
qemu-kvm-rhev-2.3.0-5.el7.ppc64le
kernel-3.10.0-282.el7.ppc64le
Retest it with the following package version, this bug is fixed.
libvirt-1.2.17-1.el7.ppc64le
qemu-kvm-rhev-2.3.0-5.el7.ppc64le
kernel-3.10.0-282.el7.ppc64le
Scenarios:
1. Edit with <panic> in XML and guest can be started.
...
<panic/>
...
# virsh start dzhengvm1
Domain dzhengvm1 started
2. Edit with <panic></panic> and guest can be started.
...
<panic></panic>
...
# virsh start dzhengvm1
Domain dzhengvm1 started
3. Add <address> element between <panic> and guest fails to start.
<panic>
<address type='isa' iobase='0x505'/>
</panic>
# virsh start dzhengvm1
error: Failed to start domain dzhengvm1
error: unsupported configuration: setting the panic device address is not supported for pSeries guests
4. Set auto_dump_path in qemu.conf and the dump file can be created in the specified directory.
4.1 Edit qemu.conf and set auto_dump_path= "/var/lib/libvirt/qemu/dump2"
4.2 Edit XML with <on_crash>coredump-restart</on_crash>
4.3 Restart libvirtd and start guest. Within the guest, stop kdump service and make it crash.
# systemctl stop kdump
# echo c>/proc/sysrq-trigger
4.4 Check the dump file is created in "/var/lib/libvirt/qemu/dump2", and crash tool can analyse it correctly.
4.5 The guest state is changed from running (booted)=> crashed (panicked) => running (crashed)
4.6 Edit XML with <on_crash>coredump-destroy</on_crash> and retry step 4.3 and 4.4, and guest state is changed from running (booted) to crashed (panicked) to shut off (crashed).
5. Set bypass_cache for the auto dump in qemu.conf
5.1 Edit qemu.conf and set auto_dump_bypass_cache=0 , keep auto_dump_bypass_cache as default (disabled) and auto_dump_bypass_cache=1 respectively.
5.2 Edit XML with <on_crash>coredump-restart</on_crash> and <on_crash>coredump-destroy</on_crash> respectively.
5.3 Restart libvirtd and start guest. Within the guest, stop kdump service and make it crash.
5.4 When coredump-restart, the guest state is changed from running (booted)=> crashed (panicked) => running (crashed).
when coredump-destroy, the guest state is changed from running (booted)=> crashed (panicked) => shut off (crashed).
5.5 Before the guest finish crashing, execute the command on another terminal.
# cat /proc/$(lsof -w /var/lib/libvirt/qemu/dump/*|awk '/libvirt_i/{print $2}')/fdinfo/*1*
In case auto_dump_bypass_cache=0 and default value(disabled),
pos: 4211090448
flags: 0200001 ===> the third value is '0' as expected.
In case auto_dump_bypass_cache=1,
pos: 4107272192
flags: 0600001 ===> the third value is '0', but expected value is '4'. It is an issue. See bug
https://bugzilla.redhat.com/show_bug.cgi?id=1240494
6. Check the dumped images can be analysed with crash tool successfully
6.1 Start the guest and execute # virsh dump guest /tmp/dump
6.2 Ensure kernel-debuginfo and kernel-debuginfo-common are in same version as the kernel version in the guest.
In host:
[root@ibm-p8-kvm-01-qe tmp]# rpm -qa|grep kernel-debuginfo
kernel-debuginfo-common-ppc64le-3.10.0-282.el7.ppc64le
kernel-debuginfo-3.10.0-282.el7.ppc64le
In guest:
[root@localhost ~]# uname -r
3.10.0-282.el7.ppc64le
6.3 Run crash tool on host, but crash throws error.
# crash /usr/lib/debug/lib/modules/3.10.0-282.el7.ppc64le/vmlinux /tmp/dump
crash 7.1.1-2.el7
...
This program has absolutely no warranty. Enter "help warranty" for details.
crash: invalid or unsupported host architecture for KVM: PPC64
See the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=1240497
7. on_crash event test scenarios
7.1 Edit XML with <on_crash>coredump-destroy</on_crash> and start guest.
7.2 In guest, stop kdump and crash the guest
7.3 The guest status is changed to crashed (panicked) and then shut off (crashed).
7.4 Dump file is created in specified directory.
7.5 Try with <on_crash>coredump-restart</on_crash>, and restart libvirtd after guest os is crashed and dump file is created. The guest state should be crashed (panicked) for a moment and finally
7.6 Try with <on_crash>restart</on_crash>, other result is same with 7.5 except for no dump file created.
7.7 Try with <on_crash>destroy</on_crash>, other result is same with 7.1 except for no dump file created.
7.8 Try with <on_crash>preserve</on_crash>, the guest keeps in crashed status and no dump file is created. The guest can be destroyed successfully.
7.9 Do virsh dump on guest and the guest is still in running state.
7.10 Restart libvirtd, , the guest's status is right for different on_crash settings
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-2015-2202.html |