Bug 903910

Summary: RHEL7 does not have equivalent functionality for __com.redhat_qxl_screendump
Product: Red Hat Enterprise Linux 7 Reporter: juzhang <juzhang>
Component: qemu-kvmAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: acathrow, armbru, hhuang, knoel, mazhang, michen, mrezanin, pbonzini, qiguo, qzhang, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-1.5.3-36.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-13 12:00:38 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:    
Bug Blocks: 720747, 895240, 987757    
Attachments:
Description Flags
The ppm image got from __com.redhat_qxl_screendump
none
Successfully get the ppm image via __com.redhat_qxl_screendump by qemu-kvm1.5.4
none
Proposed documentation patch none

Description juzhang 2013-01-25 03:25:07 UTC
Description of problem:
KVM QE compared the list of cmd line and devices difference between rhel6.4 and rhel7.0. Found lot of vnc and spice related commands are different. From KVM QE POV,  RHEL7 vnc & spice related commands result should much closer RHEL not upstream.

Display options -vnc & -spice
RHEL6.4
__com.redhat_set_password(set password for vnc or spice)
 __com.redhat_qxl_screendump(save screen from qxl device 'id' into PPM image 'filename')
 __com.redhat_spice_migrate_info(send migration info to spice client)

RHEL7.0
set_password(set password for vnc or spice)
no command for saving screen from qxl device 'id' into PPM image 'filename'
client_migrate_info(send migration info to spice client)

Version-Release number of selected component (if applicable):
Host Kernel
#uname -r
3.7.0-0.30.el7.x86_64
qemu-kvm version
qemu-kvm-1.3.0-3.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.
2.
3.
  
Actual results:
Display options -vnc & -spice
RHEL6.4
__com.redhat_set_password(set password for vnc or spice)
 __com.redhat_qxl_screendump(save screen from qxl device 'id' into PPM image 'filename')
 __com.redhat_spice_migrate_info(send migration info to spice client)

RHEL7.0
set_password(set password for vnc or spice)
no command for saving screen from qxl device 'id' into PPM image 'filename'
client_migrate_info(send migration info to spice client)

Expected results:
RHEL7 vnc & spice related commands result should much closer RHEL not upstream

Additional info:

Comment 1 Gerd Hoffmann 2013-01-29 14:44:39 UTC
RHEL-6 has the upstream commands (set_password, client_migrate_info) too.
They should be prefered even on RHEL-6.  They will not be forward-ported
to RHEL-7.

Bringing __com.redhat_qxl_screendump to RHEL-7 is a valid request though as upstream has no command for that (yet?).

Comment 2 Gerd Hoffmann 2013-04-05 13:34:41 UTC
Status update:

__com.redhat_qxl_screendump will not come back in rhel-7.

qemu console subsystem gets reworked upstream, screen dumps from any gfx device will be possible when done, no need for a special qxl hack.  First chunk of patches is merged, /me hopes to get it finished in time for qemu 1.5.

Not clear yet how the interface will look like, probably the normal screendump monitor command gets an optional parameter.

Comment 3 Gerd Hoffmann 2013-05-14 14:21:55 UTC
Status update:

qemu console subsystem rewrite is in 1.5, screendump monitor command update didn't made it and will be defered to 1.6.

So I'll go backport the new/updated upstream monitor command once merged upstream.  Failing that there is the fallback option to reimplement __com.redhat_qxl_screendump on rhel-7 (should be easy on top of the console subsystem rewrite).

Comment 6 Qian Guo 2013-08-07 11:28:08 UTC
Created attachment 783834 [details]
The ppm image got from  __com.redhat_qxl_screendump

Comment 11 Miroslav Rezanina 2013-08-20 08:45:51 UTC
Fix included in qemu-kvm-1.5.2-4.el7

Comment 12 Qian Guo 2013-08-21 07:05:04 UTC
Created attachment 788727 [details]
Successfully get the ppm image via __com.redhat_qxl_screendump by qemu-kvm1.5.4

Comment 15 Markus Armbruster 2013-12-10 18:52:17 UTC
I'm afraid the backport lost command documentation.  RHEL-6 has it in qemu-monitor.hx.  RHEL-7 needs it in qmp-commands.hx.  Without it, the command isn't documented in qemu-doc.{info,html}.

Comment 16 Markus Armbruster 2013-12-10 19:23:33 UTC
Err, make that qemu-doc.html.  We don't actually ship qemu-doc.info.

Add qmp-commands.txt.  Command is missing there in RHEL-6.

Comment 17 Markus Armbruster 2013-12-10 19:24:37 UTC
Created attachment 834887 [details]
Proposed documentation patch

Comment 18 Miroslav Rezanina 2014-01-14 18:41:44 UTC
Fix included in qemu-kvm-1.5.3-36.el7

Comment 20 mazhang 2014-01-21 08:50:49 UTC
Reproduced this bug.

Host:
qemu-kvm-1.3.0-3.el7.x86_64
ipxe-roms-qemu-20130517-2.gitc4bce43.el7.noarch
qemu-img-1.3.0-3.el7.x86_64
qemu-kvm-tools-1.3.0-3.el7.x86_64
qemu-kvm-common-1.3.0-3.el7.x86_64
qemu-kvm-debuginfo-1.3.0-3.el7.x86_64
kernel-3.7.0-0.36.el7.x86_64

Result:
Not found command "__com.redhat_qxl_screendump"
{"QMP": {"version": {"qemu": {"micro": 0, "minor": 3, "major": 1}, "package": ""}, "capabilities": []}}
{"execute":"qmp_capabilities"}
{"return": {}}
{"execute": "query-commands"}
{"return": [{"name": "query-target"}, {"name": "query-cpu-definitions"}, {"name": "query-machines"}, {"name": "device-list-properties"}, {"name": "qom-list-types"}, {"name": "change-vnc-password"}, {"name": "nbd-server-stop"}, {"name": "nbd-server-add"}, {"name": "nbd-server-start"}, {"name": "qom-get"}, {"name": "qom-set"}, {"name": "qom-list"}, {"name": "query-block-jobs"}, {"name": "query-balloon"}, {"name": "query-migrate-capabilities"}, {"name": "migrate-set-capabilities"}, {"name": "query-migrate"}, {"name": "query-uuid"}, {"name": "query-name"}, {"name": "query-spice"}, {"name": "query-vnc"}, {"name": "query-mice"}, {"name": "query-status"}, {"name": "query-kvm"}, {"name": "query-pci"}, {"name": "query-cpus"}, {"name": "query-blockstats"}, {"name": "query-block"}, {"name": "query-chardev"}, {"name": "query-events"}, {"name": "query-commands"}, {"name": "query-version"}, {"name": "human-monitor-command"}, {"name": "qmp_capabilities"}, {"name": "add_client"}, {"name": "expire_password"}, {"name": "set_password"}, {"name": "block_set_io_throttle"}, {"name": "block_passwd"}, {"name": "query-fdsets"}, {"name": "remove-fd"}, {"name": "add-fd"}, {"name": "closefd"}, {"name": "getfd"}, {"name": "set_link"}, {"name": "balloon"}, {"name": "drive-mirror"}, {"name": "blockdev-snapshot-sync"}, {"name": "transaction"}, {"name": "block-job-complete"}, {"name": "block-job-resume"}, {"name": "block-job-pause"}, {"name": "block-job-cancel"}, {"name": "block-job-set-speed"}, {"name": "block-commit"}, {"name": "block-stream"}, {"name": "block_resize"}, {"name": "netdev_del"}, {"name": "netdev_add"}, {"name": "dump-guest-memory"}, {"name": "client_migrate_info"}, {"name": "migrate_set_downtime"}, {"name": "migrate_set_speed"}, {"name": "query-migrate-cache-size"}, {"name": "migrate-set-cache-size"}, {"name": "migrate_cancel"}, {"name": "migrate"}, {"name": "xen-set-global-dirty-log"}, {"name": "xen-save-devices-state"}, {"name": "inject-nmi"}, {"name": "pmemsave"}, {"name": "memsave"}, {"name": "cpu"}, {"name": "send-key"}, {"name": "device_del"}, {"name": "device_add"}, {"name": "system_powerdown"}, {"name": "system_reset"}, {"name": "system_wakeup"}, {"name": "cont"}, {"name": "stop"}, {"name": "screendump"}, {"name": "change"}, {"name": "eject"}, {"name": "quit"}]}


Verified this bug with qemu-kvm-1.5.3-38.el7.x86_64.

Result:
{"QMP": {"version": {"qemu": {"micro": 3, "minor": 5, "major": 1}, "package": " (qemu-kvm-1.5.3-38.el7)"}, "capabilities": []}}
{"execute":"qmp_capabilities"}                                                  
{"return": {}}
{"execute":"__com.redhat_qxl_screendump","arguments":{"id":"video1","filename":"v1.ppm"}}
{"return": {}}

# ll v1.ppm 
-rw-r--r--. 1 root root 921615 Jan 21 16:48 v1.ppm

So this bug has been fixed.

Comment 22 Ludek Smid 2014-06-13 12:00:38 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.