[Spice-devel] [Qemu-devel] windows XP fail to enter standby mode

Alon Levy alevy at redhat.com
Sun Sep 18 00:53:14 PDT 2011


On Fri, Sep 16, 2011 at 02:28:05PM +0800, hkran wrote:
> On 09/15/2011 06:42 PM, Alon Levy wrote:
> >On Thu, Sep 15, 2011 at 05:23:01PM +0800, hkran wrote:
> >>Hi,
> >>
> >>If I select to let my guest XP enter standby mode by clicking the button
> >>manually. qemu will exit with the following message left:
> >>
> >>ioport_write: PANIC d->guest_slots[val].active failed
> >>
> >>the following is my command to start qemu:
> >>
> >>/home/huikai/qemu15/bin/qemu --enable-kvm  -m 768  -drive
> >>file=/home/huikai/winxp_dev.img,if=virtio  -net nic,model=virtio -net
> >>user -usb -usbdevice tablet -vga qxl  -localtime  -device virtio-serial
> >>-chardev spicevmc,name=vdagent,id=vdagent -device
> >>virtserialport,chardev=vdagent,name=spice0 -spice
> >>port=1234,disable-ticketing -monitor telnet:localhost:12341,server,nowait
> >>
> >>Qemu is 0.15v
> >>gxl driver isqxl-0.10-20112808.zip<http://spice-space.org/download/binaries/qxl-0.10-20112808.zip>   from http://spice-space.org/download.html
> >What bios are you using? Is there a reset event? can you paste the complete log before the PANIC?
> >
> >Thanks,
> >Alon
> >
> BIOS:
> (qemu) info roms
> addr=00000000fffe0000 size=0x020000 mem=rom name="bios.bin"

This just shows you have a bios, but where is that file from? i.e. is
it compiled by you, or from an rpm, if so which and what version?

> >the entire log:
> [root at oc0100708617 ~]# /home/huikai/qemu15/bin/qemu  --enable-kvm
> -m 768  -drive file=/home/huikai/winxp_dev.img,if=virtio  -net
> nic,model=virtio -net user -usb -usbdevice tablet  -localtime -vga
> qxl -device virtio-serial -chardev spicevmc,name=vdagent,id=vdagent
> -device virtserialport,chardev=vdagent,name=spice0 -spice
> port=1234,disable-ticketing   -monitor
> telnet:localhost:12341,server,nowait -cdrom
> /home/huikai/iso/GRMWDK_EN_7600_1.ISO
> do_spice_init: starting 0.8.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
> handle_dev_destroy_surfaces:
> handle_dev_destroy_surfaces:
> handle_dev_input: start
> spice_server_add_interface: SPICE_INTERFACE_TABLET
> handle_dev_destroy_surfaces:
> reds_handle_main_link:
> reds_show_new_channel: channel 1:0, connected successfully, over Non
> Secure link
> handle_dev_input: mouse mode 2
> reds_main_handle_message: net test: latency 1.043000 ms, bitrate
> 341333333333 bps (325520.833333 Mbps)
> reds_show_new_channel: channel 4:0, connected successfully, over Non
> Secure link
> red_dispatcher_set_cursor_peer:
> handle_dev_input: cursor connect
> reds_show_new_channel: channel 2:0, connected successfully, over Non
> Secure link
> red_dispatcher_set_peer:
> handle_dev_input: connect
> handle_new_display_channel: jpeg disabled
> handle_new_display_channel: zlib-over-glz disabled
> reds_show_new_channel: channel 3:0, connected successfully, over Non
> Secure link
> inputs_link:
> handle_dev_destroy_surfaces:
> handle_dev_destroy_surfaces:
> ioport_write: PANIC d->guest_slots[val].active failed
> 
> As for reset event, Alon, Do you know how to tell a reset event
> posted in qemu?
> In addition, if I use the default -vga std, qemu will not exit when
> VM entering standby.It seems that there is something wrong about qxl
> driver.

You can enable bios debug, that should show it. Also, you can do a reset (via
guest for instance) and see the qemu messages you get from it, and then compare.

To enable bios debugging add the following to the command line for upstream qemu:
 -chardev stdio,id=muxstdio,mux=on -mon chardev=muxstdio,mode=readline
 -device isa-debugcon,iobase=0x402,chardev=muxstdio

This assumes you don't mind/want to have the monitor on stdio, if you use a qmp or hmp
on something else the stdio (unix domain socket / tcp) then you can just forgoe
the whole mux part.

For rhel6 that device is not backported, but you can still get bios debugging information
by uncommenting theline "//#define DEBUG_BIOS" in hw/pc.c

Also you can just enable debugging for the qxl device, for the primary (-vga qxl) you need to add:
-global qxl-vga.debug=1

For instance, do system_reset from monitor after running:
qemu -vga qxl -monitor stdio -global qxl-vga.debug=1,

I don't see a reset happening. You should see something like:

qxl-0: qxl_hard_reset: start
qxl-0: qxl_reset_surfaces:
qxl-0: qxl_reset_memslots:
qxl-0: qxl_soft_reset:
qxl-0: qxl_enter_vga_mode
qxl-0: qxl_hard_reset: done

(It repeats a few times - system_reset actually calls reset more then once on each device).

> 
> >>_______________________________________________________
> >>kvm-cstl mailing list&lt;kvm-cstl at lists.linux.ibm.com>
> >>To unsubscribe from the list, change your list options
> >>or if you have forgotten your list password visit:
> >>http://lists.linux.ibm.com/mailman/listinfo/kvm-cstl
> >>
> 
> 


More information about the Spice-devel mailing list