Bug 1035954

Summary: lock mode memoryBacking will make qemu-kvm crashed
Product: Red Hat Enterprise Linux 7 Reporter: Jincheng Miao <jmiao>
Component: libvirtAssignee: Jiri Denemark <jdenemar>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: medium    
Version: 7.0CC: acathrow, dyuan, gsun, honzhang, jdenemar, juzhang, mzhan, zhwang
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-1.1.1-15.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-13 11:35:16 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 Jincheng Miao 2013-11-29 02:36:23 UTC
Description of problem:
'lock' mode memoryBacking will make qemu-kvm crashed.

Version-Release number of selected component (if applicable):
libvirt-1.1.1-13.el7.x86_64
qemu-kvm-rhev-1.5.3-20.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1. define a guest with this:
# virsh edit kvm-rhel6.5-x86_64-qcow2-virtio
...
  <memory unit='KiB'>3049024</memory>  // the memory of guest is enough
  <currentMemory unit='KiB'>3049024</currentMemory>
  <memoryBacking>
  <locked/>
  </memoryBacking>
...

2. start it
# virsh start kvm-rhel6.5-x86_64-qcow2-virtio

3. after grub stage, guest will shutdown.
check out qemu.log
# tail /var/log/libvirt/qemu/kvm-rhel6.5-x86_64-qcow2-virtio.log
2013-11-28 09:39:23.710+0000: 30844: debug : virCommandHandshakeChild:388 : Handshake with parent is done
char device redirected to /dev/pts/1 (label charserial0)
GLib (gthread-posix.c): Unexpected error from C library during 'malloc': Resource temporarily unavailable.  Aborting.
2013-11-28 09:39:36.517+0000: shutting down

Actual results:
guest start fails

Expected results:
guest start success

Additional info:
Starting guest only using qemu command line will not crash.

Comment 2 Jiri Denemark 2013-12-02 09:53:13 UTC
You also need to set memtune/hard_limit. But as I can see, there's no documentation about it, which needs to be fixed.

Comment 3 Jiri Denemark 2013-12-09 16:53:01 UTC
The documentation is now fixed upstream by v1.2.0-72-g24fbbb8:

commit 24fbbb82636ee00a5f5ac3c960459696e96f2911
Author: Jiri Denemark <jdenemar>
Date:   Mon Dec 9 15:42:15 2013 +0100

    docs: Enhance memoryBacking/locked documentation
    
    Mention the need to set memtune/hard_limit.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1035954

Comment 6 Jincheng Miao 2013-12-16 04:15:30 UTC
we can see the patch is applied http://libvirt.org/formatdomain.html#elementsMemoryBacking

When I add hard_limit to 2894304KiB, the guest can boot:
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <memtune>
    <hard_limit unit='KiB'>2894304</hard_limit>
  </memtune>
  <memoryBacking>
    <locked/>
  </memoryBacking>

So I change the status to VERIFIED.

Comment 7 Ludek Smid 2014-06-13 11:35:16 UTC
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.