[Spice-devel,BUG] Spice Mouse Mode:client mode: save then restore

Submitted by Zhou Peng on March 8, 2012, 10:19 a.m.

Details

Message ID CAH-7YMkSO_neMEKfoxKwMJex-=E7SWjxk=9VwWn1GOKCtYsH3w@mail.gmail.com
State New
Headers show

Not browsing as part of any series.

Commit Message

Zhou Peng March 8, 2012, 10:19 a.m.
= How to reproduce =
$ virsh create win7template.xml
$ virsh save win7template win7template.ckp
$ virsh restore win7template.ckp

= Phenomenon =
Unexpected:
Mouse works wrongly:
  * Seems many mouse click events delayed or discarded
  * Mouse icon position incorrect in coordinate
Expected:
  * keyboard works well
  * Mouse not captured

= VM config related in libvirt =
    <input type='tablet' bus='usb'/>
    <graphics type='spice' port='9999' listen='192.168.12.236'>
      <mouse mode='client'/>
    </graphics>
    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0'/>
      <address type='virtio-serial' controller='1' bus='0' port='3'/>
    </channel>
    <video>
      <model type='qxl' vram='65536' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
function='0x0'/>
    </video>

    NB. Libvirt don't support <mouse mode='client'/> option at the
moment, patched[attached] by myself.
          It's equal to agent-mouse='off' in qemu-kvm argv

= Qemu log related =
2012-03-08 10:08:14.256+0000: starting up
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
QEMU_AUDIO_DRV=spice /usr/bin/qemu-kvm -S -M pc-0.14 -cpu qemu32
-enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name
win7template -uuid 1696585d-307c-3e1e-815c-9849bb322dd1 -nodefconfig
-nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/win7template.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime
-no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2
-device virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0x4 -drive
file=/home/ifs-repos/source/f2886f2f-800b-c232-8e4d-13404c6d96b5.img,if=none,id=drive-ide0-0-0,format=raw
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1
-netdev tap,fd=14,id=hostnet0 -device
rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:27:ed:2f,bus=pci.0,addr=0x3
-chardev pty,id=charserial0 -device
isa-serial,chardev=charserial0,id=serial0 -chardev
spicevmc,id=charchannel0,name=vdagent -device
virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0,name=com.redhat.spice.0
-device usb-tablet,id=input0 -spice
port=9999,tls-port=0,addr=192.168.12.236,agent-mouse=on,disable-ticketing,x509-dir=/etc/pki/libvirt-spice
-vga qxl -global qxl-vga.vram_size=67108864 -device
virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
Domain id=20 is tainted: high-privileges
char device redirected to /dev/pts/0
do_spice_init: starting 0.10.0
spice_server_add_interface: SPICE_INTERFACE_KEYBOARD
spice_server_add_interface: SPICE_INTERFACE_MOUSE
spice_server_add_interface: SPICE_INTERFACE_QXL
red_worker_main: begin
ensure_display_channel_created: create display channel
ensure_cursor_channel_created: create cursor channel
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_handle_main_link:
reds_disconnect:
reds_show_new_channel: channel 1:0, connected successfully, over Non Secure link
main_channel_link: add main channel client
reds_handle_main_link: NEW Client 0x7f0d78cf8370 mcc 0x7f0d78cf7660
connect-id 1804289383
main_channel_handle_parsed: net test: latency 1.098000 ms, bitrate
91204631 bps (86.979514 Mbps)
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_show_new_channel: channel 4:0, connected successfully, over Non Secure link
red_dispatcher_set_cursor_peer:
handle_dev_cursor_connect: cursor connect
red_connect_cursor: add cursor channel client
listen_to_new_client_channel: NEW ID = 0
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_show_new_channel: channel 2:0, connected successfully, over Non Secure link
red_dispatcher_set_display_peer:
handle_dev_display_connect: connect
handle_new_display_channel: add display channel client
handle_new_display_channel: New display (client 0x7f0d78cf8370) dcc
0x7f0d3406c260 stream 0x7f0d78d311b0
handle_new_display_channel: jpeg disabled
handle_new_display_channel: zlib-over-glz disabled
listen_to_new_client_channel: NEW ID = 0
reds_show_new_channel: channel 3:0, connected successfully, over Non Secure link
inputs_connect: inputs channel client create
display_channel_client_wait_for_init: creating encoder with id == 0
display_channel_release_item: not pushed (101)
spice_server_add_interface: SPICE_INTERFACE_TABLET
handle_dev_set_mouse_mode: mouse mode 2
spice_server_char_device_add_interface: CHAR_DEVICE vdagent
main_channel_handle_parsed: agent start
handle_dev_stop: stop
spice_server_migrate_switch:
reds_mig_switch: warning: reds_mig_switch called without migrate_info set
2012-03-08 10:09:11.281+0000: shutting down
qemu: terminating on signal 15 from pid 24610
2012-03-08 10:09:19.995+0000: starting up
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
QEMU_AUDIO_DRV=spice /usr/bin/qemu-kvm -S -M pc-0.14 -cpu qemu32
-enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name
win7template -uuid 1696585d-307c-3e1e-815c-9849bb322dd1 -nodefconfig
-nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/win7template.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime
-no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2
-device virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0x4 -drive
file=/home/ifs-repos/source/f2886f2f-800b-c232-8e4d-13404c6d96b5.img,if=none,id=drive-ide0-0-0,format=raw
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1
-netdev tap,fd=15,id=hostnet0 -device
rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:27:ed:2f,bus=pci.0,addr=0x3
-chardev pty,id=charserial0 -device
isa-serial,chardev=charserial0,id=serial0 -chardev
spicevmc,id=charchannel0,name=vdagent -device
virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0,name=com.redhat.spice.0
-device usb-tablet,id=input0 -spice
port=9999,tls-port=0,addr=192.168.12.236,agent-mouse=on,disable-ticketing,x509-dir=/etc/pki/libvirt-spice
-vga qxl -global qxl-vga.vram_size=67108864 -incoming fd:13 -device
virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
Domain id=21 is tainted: high-privileges
char device redirected to /dev/pts/0
do_spice_init: starting 0.10.0
spice_server_add_interface: SPICE_INTERFACE_KEYBOARD
spice_server_add_interface: SPICE_INTERFACE_MOUSE
spice_server_add_interface: SPICE_INTERFACE_QXL
red_worker_main: begin
ensure_display_channel_created: create display channel
ensure_cursor_channel_created: create cursor channel
red_dispatcher_loadvm_commands:
handle_dev_loadvm_commands: loadvm_commands
spice_server_char_device_add_interface: CHAR_DEVICE vdagent
spice_server_add_interface: SPICE_INTERFACE_TABLET
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_handle_main_link:
reds_disconnect:
reds_show_new_channel: channel 1:0, connected successfully, over Non Secure link
main_channel_link: add main channel client
reds_handle_main_link: NEW Client 0x7f9a988b2030 mcc 0x7f9a988b20a0
connect-id 1804289383
main_channel_handle_parsed: agent start
handle_dev_set_mouse_mode: mouse mode 2
main_channel_handle_parsed: net test: latency 1.091000 ms, bitrate
91571652 bps (87.329533 Mbps)
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_show_new_channel: channel 4:0, connected successfully, over Non Secure link
red_dispatcher_set_cursor_peer:
handle_dev_cursor_connect: cursor connect
red_connect_cursor: add cursor channel client
listen_to_new_client_channel: NEW ID = 0
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_show_new_channel: channel 2:0, connected successfully, over Non Secure link
red_dispatcher_set_display_peer:
handle_dev_display_connect: connect
handle_new_display_channel: add display channel client
handle_new_display_channel: New display (client 0x7f9a988b2030) dcc
0x7f9a9571c010 stream 0x7f9a988b1b40
handle_new_display_channel: jpeg disabled
handle_new_display_channel: zlib-over-glz disabled
listen_to_new_client_channel: NEW ID = 0
reds_show_new_channel: channel 3:0, connected successfully, over Non Secure link
inputs_connect: inputs channel client create
display_channel_client_wait_for_init: creating encoder with id == 0
display_channel_release_item: not pushed (101)
qemu: terminating on signal 15 from pid 24610
2012-03-08 10:09:40.006+0000: shutting down

= Related packages =
Guest:
win7:
vdagend-win32_20111124.zip
virtio-serial_20110725.zip
qxl-0.10-20112808.zip

Host:
3.2.5-3.fc16.x86_64
spice-server-0.10.0-1.fc16.x86_64
qemu-kvm-0.15.1-3.fc16.x86_64


Expecting to be fixed, thanks.

Patch hide | download patch | download mbox

Signed-off-by: Zhou Peng <zhoupeng@nfs.iscas.ac.cn>

spice agent-mouse support

Usage:
<graphics type='spice'>
  <mouse mode='client'|'server'/>
<graphics/>

diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 6fcca94..b63f6a0 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -2809,6 +2809,13 @@  qemu-kvm -net nic,model=? /dev/null
               to <code>no</code>, <span class="since">since
               0.9.3</span>.
             </p>
+            <p>
+              Mouse mode is set by the <code>mouse<code/> element,
+              setting it's <code>mode<code/> attribute to one of
+              <code>server</code> or <code>client</code> ,
+              <span class="since">since 0.9.11</span>. If no mode is
+              specified, the spice default will be used (client mode).
+            </p>
           </dd>
           <dt><code>"rdp"</code></dt>
           <dd>
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 3908733..bb0df03 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1776,6 +1776,17 @@ 
                 <empty/>
               </element>
             </optional>
+            <optional>
+              <element name="mouse">
+                <attribute name="mode">
+                  <choice>
+                    <value>server</value>
+                    <value>client</value>
+                  </choice>
+                </attribute>
+                <empty/>
+              </element>
+            </optional>
           </interleave>
         </group>
         <group>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f9654f1..aa31fe6 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -460,6 +460,12 @@  VIR_ENUM_IMPL(virDomainGraphicsSpicePlaybackCompression,
               "on",
               "off");
 
+VIR_ENUM_IMPL(virDomainGraphicsSpiceMouseMode,
+              VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_LAST,
+              "default",
+              "server",
+              "client");
+
 VIR_ENUM_IMPL(virDomainGraphicsSpiceStreamingMode,
               VIR_DOMAIN_GRAPHICS_SPICE_STREAMING_MODE_LAST,
               "default",
@@ -5710,6 +5716,26 @@  virDomainGraphicsDefParseXML(xmlNodePtr node,
                     VIR_FREE(copypaste);
 
                     def->data.spice.copypaste = copypasteVal;
+                } else if (xmlStrEqual(cur->name, BAD_CAST "mouse")) {
+                    const char *mode = virXMLPropString(cur, "mode");
+                    int modeVal;
+
+                    if (!mode) {
+                        virDomainReportError(VIR_ERR_XML_ERROR, "%s",
+                                             _("spice mouse missing mode"));
+                        goto error;
+                    }
+
+                    if ((modeVal = virDomainGraphicsSpiceMouseModeTypeFromString(mode)) <= 0) {
+                        virDomainReportError(VIR_ERR_XML_ERROR,
+                                             _("unknown mouse mode value '%s'"),
+                                             mode);
+                        VIR_FREE(mode);
+                        goto error;
+                    }
+                    VIR_FREE(mode);
+
+                    def->data.spice.mousemode = modeVal;
                 }
             }
             cur = cur->next;
@@ -11401,7 +11427,8 @@  virDomainGraphicsDefFormat(virBufferPtr buf,
         }
         if (!children && (def->data.spice.image || def->data.spice.jpeg ||
                           def->data.spice.zlib || def->data.spice.playback ||
-                          def->data.spice.streaming || def->data.spice.copypaste)) {
+                          def->data.spice.streaming || def->data.spice.copypaste ||
+                          def->data.spice.mousemode)) {
             virBufferAddLit(buf, ">\n");
             children = 1;
         }
@@ -11420,6 +11447,9 @@  virDomainGraphicsDefFormat(virBufferPtr buf,
         if (def->data.spice.streaming)
             virBufferAsprintf(buf, "      <streaming mode='%s'/>\n",
                               virDomainGraphicsSpiceStreamingModeTypeToString(def->data.spice.streaming));
+        if (def->data.spice.mousemode)
+            virBufferAsprintf(buf, "      <mouse mode='%s'/>\n",
+                              virDomainGraphicsSpiceMouseModeTypeToString(def->data.spice.mousemode));
         if (def->data.spice.copypaste)
             virBufferAsprintf(buf, "      <clipboard copypaste='%s'/>\n",
                               virDomainGraphicsSpiceClipboardCopypasteTypeToString(def->data.spice.copypaste));
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 596be4d..a9c118a 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1003,6 +1003,14 @@  enum virDomainGraphicsSpicePlaybackCompression {
     VIR_DOMAIN_GRAPHICS_SPICE_PLAYBACK_COMPRESSION_LAST
 };
 
+enum virDomainGraphicsSpiceMouseMode {
+    VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_DEFAULT = 0,
+    VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_SERVER,
+    VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_CLIENT,
+
+    VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_LAST
+};
+
 enum virDomainGraphicsSpiceStreamingMode {
     VIR_DOMAIN_GRAPHICS_SPICE_STREAMING_MODE_DEFAULT = 0,
     VIR_DOMAIN_GRAPHICS_SPICE_STREAMING_MODE_FILTER,
@@ -1072,6 +1080,7 @@  struct _virDomainGraphicsDef {
         struct {
             int port;
             int tlsPort;
+            int mousemode;
             char *keymap;
             virDomainGraphicsAuthDef auth;
             unsigned int autoport :1;
@@ -2061,6 +2070,7 @@  VIR_ENUM_DECL(virDomainGraphicsSpiceZlibCompression)
 VIR_ENUM_DECL(virDomainGraphicsSpicePlaybackCompression)
 VIR_ENUM_DECL(virDomainGraphicsSpiceStreamingMode)
 VIR_ENUM_DECL(virDomainGraphicsSpiceClipboardCopypaste)
+VIR_ENUM_DECL(virDomainGraphicsSpiceMouseMode)
 VIR_ENUM_DECL(virDomainNumatuneMemMode)
 VIR_ENUM_DECL(virDomainSnapshotState)
 /* from libvirt.h */
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index b9baf9a..ccaa72d 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -252,6 +252,8 @@  virDomainChrDefFree;
 virDomainChrDefNew;
 virDomainChrSourceDefCopy;
 virDomainChrSourceDefFree;
+virDomainGraphicsSpiceMouseModeTypeFromString;
+virDomainGraphicsSpiceMouseModeTypeToString;
 virDomainChrSpicevmcTypeFromString;
 virDomainChrSpicevmcTypeToString;
 virDomainChrTcpProtocolTypeFromString;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 01adf0d..a8ac97b 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -5391,6 +5391,20 @@  qemuBuildCommandLine(virConnectPtr conn,
 
         VIR_FREE(netAddr);
 
+        int mm = def->graphics[0]->data.spice.mousemode;
+        if (mm) {
+            switch (mm) {
+            case VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_SERVER:
+                virBufferAsprintf(&opt, ",agent-mouse=off");
+                break;
+            case VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_CLIENT:
+                virBufferAsprintf(&opt, ",agent-mouse=on");
+                break;
+            default:
+                break;
+            }
+        }
+
         /* In the password case we set it via monitor command, to avoid
          * making it visible on CLI, so there's no use of password=XXX
          * in this bit of the code */
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-spice-agentmouse.args b/tests/qemuxml2argvdata/qemuxml2argv-spice-agentmouse.args
new file mode 100644
index 0000000..746c116
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-spice-agentmouse.args
@@ -0,0 +1,9 @@ 
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=spice \
+/usr/bin/qemu -S -M pc -m 214 -smp 1 -nodefconfig -nodefaults \
+-monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -device \
+virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0xa -hda \
+/dev/HostVG/QEMUGuest1 -chardev spicevmc,id=charchannel0,name=vdagent -device \
+virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0\
+,name=com.redhat.spice.0 -usb -spice port=5903,tls-port=5904,addr=127.0.0.1,\
+agent-mouse=off,x509-dir=/etc/pki/libvirt-spice,tls-channel=main -device \
+virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-spice-agentmouse.xml b/tests/qemuxml2argvdata/qemuxml2argv-spice-agentmouse.xml
new file mode 100644
index 0000000..facc7ac
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-spice-agentmouse.xml
@@ -0,0 +1,36 @@ 
+<domain type='qemu'>
+  <name>QEMUGuest1</name>
+  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+  <memory>219136</memory>
+  <vcpu cpuset='1-4,8-20,525'>1</vcpu>
+  <os>
+    <type arch='i686' machine='pc'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <devices>
+    <emulator>/usr/bin/qemu</emulator>
+    <disk type='block' device='disk'>
+      <source dev='/dev/HostVG/QEMUGuest1'/>
+      <target dev='hda' bus='ide'/>
+      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+    </disk>
+    <controller type='usb' index='0'/>
+    <controller type='ide' index='0'/>
+    <controller type='virtio-serial' index='1'>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
+    </controller>
+    <graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1'>
+      <mouse mode='server'/>
+      <channel name='main' mode='secure'/>
+    </graphics>
+    <channel type='spicevmc'>
+      <target type='virtio' name='com.redhat.spice.0'/>
+      <address type='virtio-serial' controller='1' bus='0' port='3'/>
+    </channel>
+    <memballoon model='virtio'/>
+  </devices>
+</domain>

Comments

On Thu, Mar 8, 2012 at 6:19 PM, Zhou Peng <ailvpeng25@gmail.com> wrote:

>    NB. Libvirt don't support <mouse mode='client'/> option at the
> moment, patched[attached] by myself.
>          It's equal to agent-mouse='off' in qemu-kvm argv
                                                         ^^
sorry,  It's equal to agent-mouse='on' in qemu-kvm argv
How about this bug pls.

Is the topic 'seamless migration with spice' by Yonit
may fix it?

Thanks,
On Thu, Mar 8, 2012 at 6:19 PM, Zhou Peng <ailvpeng25@gmail.com> wrote:
> = How to reproduce =
> $ virsh create win7template.xml
> $ virsh save win7template win7template.ckp
> $ virsh restore win7template.ckp
>
> = Phenomenon =
> Unexpected:
> Mouse works wrongly:
>  * Seems many mouse click events delayed or discarded
>  * Mouse icon position incorrect in coordinate
> Expected:
>  * keyboard works well
>  * Mouse not captured
>
> = VM config related in libvirt =
>    <input type='tablet' bus='usb'/>
>    <graphics type='spice' port='9999' listen='192.168.12.236'>
>      <mouse mode='client'/>
>    </graphics>
>    <channel type='spicevmc'>
>      <target type='virtio' name='com.redhat.spice.0'/>
>      <address type='virtio-serial' controller='1' bus='0' port='3'/>
>    </channel>
>    <video>
>      <model type='qxl' vram='65536' heads='1'/>
>      <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
> function='0x0'/>
>    </video>
>
>    NB. Libvirt don't support <mouse mode='client'/> option until 0.9.11
>          It's equal to agent-mouse=on in qemu-kvm argv
>
> = Qemu log related =
> 2012-03-08 10:08:14.256+0000: starting up
> LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
> QEMU_AUDIO_DRV=spice /usr/bin/qemu-kvm -S -M pc-0.14 -cpu qemu32
> -enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name
> win7template -uuid 1696585d-307c-3e1e-815c-9849bb322dd1 -nodefconfig
> -nodefaults -chardev
> socket,id=charmonitor,path=/var/lib/libvirt/qemu/win7template.monitor,server,nowait
> -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime
> -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2
> -device virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0x4 -drive
> file=/home/ifs-repos/source/f2886f2f-800b-c232-8e4d-13404c6d96b5.img,if=none,id=drive-ide0-0-0,format=raw
> -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1
> -netdev tap,fd=14,id=hostnet0 -device
> rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:27:ed:2f,bus=pci.0,addr=0x3
> -chardev pty,id=charserial0 -device
> isa-serial,chardev=charserial0,id=serial0 -chardev
> spicevmc,id=charchannel0,name=vdagent -device
> virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0,name=com.redhat.spice.0
> -device usb-tablet,id=input0 -spice
> port=9999,tls-port=0,addr=192.168.12.236,agent-mouse=on,disable-ticketing,x509-dir=/etc/pki/libvirt-spice
> -vga qxl -global qxl-vga.vram_size=67108864 -device
> virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
> Domain id=20 is tainted: high-privileges
> char device redirected to /dev/pts/0
> do_spice_init: starting 0.10.0
> spice_server_add_interface: SPICE_INTERFACE_KEYBOARD
> spice_server_add_interface: SPICE_INTERFACE_MOUSE
> spice_server_add_interface: SPICE_INTERFACE_QXL
> red_worker_main: begin
> ensure_display_channel_created: create display channel
> ensure_cursor_channel_created: create cursor channel
> reds_handle_read_link_done: Peer doesn't support AUTH selection
> reds_handle_main_link:
> reds_disconnect:
> reds_show_new_channel: channel 1:0, connected successfully, over Non Secure link
> main_channel_link: add main channel client
> reds_handle_main_link: NEW Client 0x7f0d78cf8370 mcc 0x7f0d78cf7660
> connect-id 1804289383
> main_channel_handle_parsed: net test: latency 1.098000 ms, bitrate
> 91204631 bps (86.979514 Mbps)
> reds_handle_read_link_done: Peer doesn't support AUTH selection
> reds_handle_read_link_done: Peer doesn't support AUTH selection
> reds_show_new_channel: channel 4:0, connected successfully, over Non Secure link
> red_dispatcher_set_cursor_peer:
> handle_dev_cursor_connect: cursor connect
> red_connect_cursor: add cursor channel client
> listen_to_new_client_channel: NEW ID = 0
> reds_handle_read_link_done: Peer doesn't support AUTH selection
> reds_show_new_channel: channel 2:0, connected successfully, over Non Secure link
> red_dispatcher_set_display_peer:
> handle_dev_display_connect: connect
> handle_new_display_channel: add display channel client
> handle_new_display_channel: New display (client 0x7f0d78cf8370) dcc
> 0x7f0d3406c260 stream 0x7f0d78d311b0
> handle_new_display_channel: jpeg disabled
> handle_new_display_channel: zlib-over-glz disabled
> listen_to_new_client_channel: NEW ID = 0
> reds_show_new_channel: channel 3:0, connected successfully, over Non Secure link
> inputs_connect: inputs channel client create
> display_channel_client_wait_for_init: creating encoder with id == 0
> display_channel_release_item: not pushed (101)
> spice_server_add_interface: SPICE_INTERFACE_TABLET
> handle_dev_set_mouse_mode: mouse mode 2
> spice_server_char_device_add_interface: CHAR_DEVICE vdagent
> main_channel_handle_parsed: agent start
> handle_dev_stop: stop
> spice_server_migrate_switch:
> reds_mig_switch: warning: reds_mig_switch called without migrate_info set
> 2012-03-08 10:09:11.281+0000: shutting down
> qemu: terminating on signal 15 from pid 24610
> 2012-03-08 10:09:19.995+0000: starting up
> LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
> QEMU_AUDIO_DRV=spice /usr/bin/qemu-kvm -S -M pc-0.14 -cpu qemu32
> -enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name
> win7template -uuid 1696585d-307c-3e1e-815c-9849bb322dd1 -nodefconfig
> -nodefaults -chardev
> socket,id=charmonitor,path=/var/lib/libvirt/qemu/win7template.monitor,server,nowait
> -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime
> -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2
> -device virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0x4 -drive
> file=/home/ifs-repos/source/f2886f2f-800b-c232-8e4d-13404c6d96b5.img,if=none,id=drive-ide0-0-0,format=raw
> -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1
> -netdev tap,fd=15,id=hostnet0 -device
> rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:27:ed:2f,bus=pci.0,addr=0x3
> -chardev pty,id=charserial0 -device
> isa-serial,chardev=charserial0,id=serial0 -chardev
> spicevmc,id=charchannel0,name=vdagent -device
> virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0,name=com.redhat.spice.0
> -device usb-tablet,id=input0 -spice
> port=9999,tls-port=0,addr=192.168.12.236,agent-mouse=on,disable-ticketing,x509-dir=/etc/pki/libvirt-spice
> -vga qxl -global qxl-vga.vram_size=67108864 -incoming fd:13 -device
> virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
> Domain id=21 is tainted: high-privileges
> char device redirected to /dev/pts/0
> do_spice_init: starting 0.10.0
> spice_server_add_interface: SPICE_INTERFACE_KEYBOARD
> spice_server_add_interface: SPICE_INTERFACE_MOUSE
> spice_server_add_interface: SPICE_INTERFACE_QXL
> red_worker_main: begin
> ensure_display_channel_created: create display channel
> ensure_cursor_channel_created: create cursor channel
> red_dispatcher_loadvm_commands:
> handle_dev_loadvm_commands: loadvm_commands
> spice_server_char_device_add_interface: CHAR_DEVICE vdagent
> spice_server_add_interface: SPICE_INTERFACE_TABLET
> reds_handle_read_link_done: Peer doesn't support AUTH selection
> reds_handle_main_link:
> reds_disconnect:
> reds_show_new_channel: channel 1:0, connected successfully, over Non Secure link
> main_channel_link: add main channel client
> reds_handle_main_link: NEW Client 0x7f9a988b2030 mcc 0x7f9a988b20a0
> connect-id 1804289383
> main_channel_handle_parsed: agent start
> handle_dev_set_mouse_mode: mouse mode 2
> main_channel_handle_parsed: net test: latency 1.091000 ms, bitrate
> 91571652 bps (87.329533 Mbps)
> reds_handle_read_link_done: Peer doesn't support AUTH selection
> reds_handle_read_link_done: Peer doesn't support AUTH selection
> reds_show_new_channel: channel 4:0, connected successfully, over Non Secure link
> red_dispatcher_set_cursor_peer:
> handle_dev_cursor_connect: cursor connect
> red_connect_cursor: add cursor channel client
> listen_to_new_client_channel: NEW ID = 0
> reds_handle_read_link_done: Peer doesn't support AUTH selection
> reds_show_new_channel: channel 2:0, connected successfully, over Non Secure link
> red_dispatcher_set_display_peer:
> handle_dev_display_connect: connect
> handle_new_display_channel: add display channel client
> handle_new_display_channel: New display (client 0x7f9a988b2030) dcc
> 0x7f9a9571c010 stream 0x7f9a988b1b40
> handle_new_display_channel: jpeg disabled
> handle_new_display_channel: zlib-over-glz disabled
> listen_to_new_client_channel: NEW ID = 0
> reds_show_new_channel: channel 3:0, connected successfully, over Non Secure link
> inputs_connect: inputs channel client create
> display_channel_client_wait_for_init: creating encoder with id == 0
> display_channel_release_item: not pushed (101)
> qemu: terminating on signal 15 from pid 24610
> 2012-03-08 10:09:40.006+0000: shutting down
>
> = Related packages =
> Guest:
> win7:
> vdagend-win32_20111124.zip
> virtio-serial_20110725.zip
> qxl-0.10-20112808.zip
>
> Host:
> 3.2.5-3.fc16.x86_64
> spice-server-0.10.0-1.fc16.x86_64
> qemu-kvm-0.15.1-3.fc16.x86_64
>
>
> Expecting to be fixed, thanks.
> --
> Zhou Peng