Bug 518701 - RFE: [LTC 6.0] Add async qemu machine protocol (qmp) to libvirt [202014]
Summary: RFE: [LTC 6.0] Add async qemu machine protocol (qmp) to libvirt [202014]
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libvirt
Version: 6.0
Hardware: All
OS: All
Target Milestone: beta
: 6.0
Assignee: Daniel Veillard
QA Contact: Virtualization Bugs
Depends On:
Blocks: 356741 554559
TreeView+ depends on / blocked
Reported: 2009-08-21 18:00 UTC by IBM Bug Proxy
Modified: 2010-11-11 16:20 UTC (History)
12 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Last Closed: 2010-11-11 16:20:12 UTC

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
IBM Linux Technology Center 55543 None None None Never

Description IBM Bug Proxy 2009-08-21 18:00:29 UTC
=Comment: #0=================================================
Emily J. Ratliff <ratliff@austin.ibm.com> - 
1. Feature Overview:
Feature Id:	[202014]
a. Name of Feature:	Add async qemu machine protocol (qmp) to libvirt
b. Feature Description
Switch libvirt to use qmp to manipulate qemu/kvm VMs

2. Feature Details:
Sponsor:	LTC

Arch Specificity: Both
Affects Kernel Modules: Yes
Delivery Mechanism: Direct from community
Category:	Xen
Request Type:	Driver - New - Open Source
d. Upstream Acceptance:	Submitted
Sponsor Priority	2
f. Severity: Medium
IBM Confidential:	no
Code Contribution:	3rd party code
g. Component Version Target:	latest libvirt

3. Business Case
Switching to qmp provides a more reliable protocol on top of which we can build a more robust,
asynchronous communication channel for managing VMs.  The result provides management applications
which consume libvirt greater control over VM bahavior.

4. Primary contact at Red Hat: 
John Jarvis

5. Primary contacts at Partner:
Project Management Contact:
Stephanie Glass, sglass@us.ibm.com, 512-838-9284

Technical contact(s):
Ryan Harper, raharper@us.ibm.com

IBM Manager:
Warren Grunbok II, grunbok@us.ibm.com

Comment 2 Daniel Veillard 2009-10-08 13:35:38 UTC
This is still open, the libvirt code to communicate with KVM console
will be modified in time for 6.0 to allow asynchronous handling of
operations, and avoid blocking. But for qmp itself it's unlikely to
be implemented for 6.0 GA, there have been multiple proposals to improve
communication at the QEmu level too.
Basically this is in a large part undecided upstream, and probably
won't be handled specifically with qmp even though the expected improvement
may still be seen in 6.0. Still adding a Conditional NACK Upstream based
on the status quo in QEmu and libvirt upstream


Comment 3 Daniel Berrangé 2009-11-12 18:38:56 UTC
There is basic boilerplate / proof of concept code started for libvirt:


Further work is temporarily blocked, pending finalization of the QEMU implementation / protocol spec.

Comment 4 Daniel Berrangé 2009-11-26 18:45:06 UTC
A fully functional implementation is now available


though it will require a few tweaks as upstream QEMU has not quite finalized their command naming

Comment 5 Hugh Brock 2009-12-21 17:18:57 UTC
Need a QA ack please!

Comment 6 Daniel Veillard 2010-01-21 17:34:19 UTC
libvirt-0.7.6-0.pre20100121.el6 has been built in RHEL-6-candidate
and includes the feature, based on JSON interface,


Comment 8 John Jarvis 2010-02-02 20:35:51 UTC
IBM is signed up to test and provide feedback.

Comment 9 IBM Bug Proxy 2010-05-11 20:10:56 UTC
------- Comment From mdroth@linux.vnet.ibm.com 2010-05-11 16:06 EDT-------
Verified indirectly by bypassing libvirt and making sure the command-line it is using is the proper parameters to enable a QMP monitor socket.

[root@bc1cn3 ~]# uname -a
Linux bc1cn3.phx.austin.ibm.com 2.6.32-22.el6.x86_64 #1 SMP Tue Apr 20 12:10:42 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

[root@bc1cn3 ~]# rpm -q redhat-release

[root@bc1cn3 temp]# /usr/libexec/qemu-kvm -S -M rhel6.0.0 -enable-kvm -m 2048 -smp 1,sockets=1,cores=1,threads=1 -name test -uuid a4cdeb43-cfe8-5d61-4561-fee58b8fdb81 -nodefaults -chardev socket,id=monitor,host=localhost,port=5950,server,nowait -mon chardev=monitor,mode=control -rtc base=utc -boot c -drive file=/root/temp/rhel54_64_base.raw,if=none,id=drive-virtio-disk0,boot=on,format=raw -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -vnc -k en-us -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
char device redirected to /dev/pts/2

[root@bc1cn3 ~]# telnet localhost 5950
Trying ::1...
Connected to localhost.
Escape character is '^]'.
{"QMP": {"version": {"qemu": "0.12.1", "package": " (qemu-kvm-"}, "capabilities": []}}
{ "execute" : "query-block" }
{"error": {"class": "CommandNotFound", "desc": "The command query-block has not been found", "data": {"name": "query-block"}}}
{ "execute" : "qmp_capabilities" }
{"return": {}}
{ "execute" : "query-block" }
{"return": [{"device": "drive-virtio-disk0", "locked": false, "removable": false, "inserted": {"ro": false, "drv": "raw", "encrypted": false, "file": "/root/temp/rhel54_64_base.raw"}, "type": "hd"}, {"device": "drive-ide0-1-0", "locked": false, "removable": true, "type": "cdrom"}]}

Comment 10 dyuan 2010-06-21 07:15:34 UTC
According to comment 9, change the bug status to verified.

Comment 11 releng-rhel@redhat.com 2010-11-11 16:20:12 UTC
Red Hat Enterprise Linux 6.0 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.

Note You need to log in before you can comment on or make changes to this bug.