qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] balloon driver on winxp guest start failed


From: hkran
Subject: Re: [Qemu-devel] balloon driver on winxp guest start failed
Date: Thu, 20 Oct 2011 15:55:15 +0800
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110617 Red Hat/3.1.11-2.el6_1 Thunderbird/3.1.11

On 10/17/2011 08:55 PM, Vadim Rozenfeld wrote:
On Fri, 2011-10-14 at 17:49 +0800, hkran wrote:
On 10/14/2011 04:55 AM, Vadim Rozenfeld wrote:
On Thu, 2011-10-13 at 15:47 +0100, Stefan Hajnoczi wrote:
On Thu, Oct 13, 2011 at 5:00 AM, hkran<address@hidden>   wrote:
On 10/12/2011 07:09 PM, hkran wrote:
I used balloon driver for windows  virtio-win-0.1-15.iso (from
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/)

following the install guard , I installed the balloon driver like this:

devcon.exe install d:\wxp\x86\balloon.inf
"PCI\VEN_1AF4&DEV_1002&SUBSYS_00051AF4&REV_00"
   then reboot guest Os, but the status of driver installed is always
incorrect, that show me the driver start failed (code 10) in the device
manager.
Seems like a resource allocation problem
I typed the following cmds in the monitor command line:

(qemu) device_add virtio-balloon
(qemu) info balloon
balloon: actual=2048
(qemu) balloon 1024
(qemu) info balloon
balloon: actual=2048
(qemu) info balloon
balloon: actual=2048

And I also tried it by using "qemu -balloon virtio" param  when getting
qemu up, the status is worse, the winxp guest froze at boot screen.

Am I using balloon driver in a correct way?



For the boot failure case, I take more looks into it.  I open the trace
output and see the following when boot failed
Balloon driver, built on Oct 13 2011 10:46:59
^M<-- DriverEntry
^Mfile z:\source\kvm-guest-drivers-windows\balloon\sys\driver.c line 151
^M-->   BalloonDeviceAdd
^M<-- BalloonDeviceAdd
^M-->   BalloonEvtDevicePrepareHardware
^M<->   Port   Resource [0000C0A0-0000C0C0]
^M<-- BalloonEvtDevicePrepareHardware
^M-->   BalloonEvtDeviceD0Entry
^M-->   BalloonInit
^M-->   VIRTIO_BALLOON_F_STATS_VQ
^M<-- BalloonInit
^M-->   BalloonInterruptEnable
^M<-- BalloonInterruptEnable

here, the system is blocked.

I compare it with the logfile in the normal case that I hot-plugin the
balloon device, and then find the system blocked before calling at
BalloonInterruptDpc.

What about ISR? Can you try changing balloon size and check if balloon
ISR was invoked or not?
Is it meaning that we open the interrupt of balloon device too soon when
booting the system?
I suggest CCing Vadim on virtio Windows driver questions.  Not sure if
he sees every qemu-devel email.

Stefan

To make the issue clearer, I do more tests about that. Now I use the
package virtio-win-prewhql-0.1-15-sources.zip from
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/src/
The problem that the balloon driver status is incorrect was not
reproduced any longer, but boot failure still be there.
more tests told me as if the failure will occur only in the case where
virtio-serial and balloon are all attached when qemu booting:

(qemu) address@hidden ~]$
/home/huikai/qemu15/bin/qemu-system-x86_64 --enable-kvm -m 2048   -drive
file=/home/huikai/xp_shanghai.img,if=virtio -net user  -net
nic,model=viga qxl -localtime -chardev stdio,id=muxstdio -mon
chardev=muxstdio -usb -usbdevice tablet -device virtio-serial,id=vs0
-chardev socket,path=/tmp/foo,server,nowait,id=foo -device
virtserialport,bus=vs0.0,chardev=foo,name=helloworld -serial
file:/tmp/xp_1014_6.log -balloon virtio,id=ball1

the trace:

Virtio-Serial driver started...built on Oct 14 2011 15:58:02
^M<-->  VIOSerialEvtDeviceAdd
^M<-->  VIOSerialInitInterruptHandling
^MBalloon driver, built on Oct 13 2011 17:34:56
^M<-- DriverEntry
^M-->  BalloonDeviceAdd
^M<-- BalloonDeviceAdd
^M-->  BalloonEvtDevicePrepareHardware
^M<->  Port   Resource [0000C0A0-0000C0C0]
^M<-- BalloonEvtDevicePrepareHardware
^M-->  BalloonEvtDeviceD0Entry
^M-->  BalloonInit
^M-->  VIRTIO_BALLOON_F_STATS_VQ
^M<-- BalloonInit
^M-->  BalloonInterruptEnable
^M<-- BalloonInterruptEnable
^M<-->  VIOSerialEvtDevicePrepareHardware
^MIO Port Info  [0000C080-0000C0A0]
^MWe have multiport host
^MVirtIOConsoleConfig->max_nr_ports 31
^M<-->  VIOSerialEvtDeviceD0Entry
^M<-->  VIOSerialInitAllQueues
^M<-->  VIOSerialFillQueue
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89B13A50
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89B13638
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89C07E08
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89C07C50
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89C07A98
... ...
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89BD14B8
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89B826E8
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89BE4450
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89BE2398
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89C53468
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89C37E18
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89C374C0
^M-->  VIOSerialFreeBuffer  buf = 89C374C0, buf->va_buf = 89983000
^MVIOSerialRenewAllPorts
^M<-->  VIOSerialFillQueue
^M-->  VIOSerialAllocateBuffer
^M-->  VIOSerialAddInBuf  buf = 89C374C0
^M-->  VIOSerialFreeBuffer  buf = 89C374C0, buf->va_buf = 89983000
^MSetting VIRTIO_CONFIG_S_DRIVER_OK flag
^M

not any more output here.

What does "info pci" say?
Best,
Vadim.



when windows hung, info pci output:
(qemu) info pci
  Bus  0, device   0, function 0:
    Host bridge: PCI device 8086:1237
      id ""
  Bus  0, device   1, function 0:
    ISA bridge: PCI device 8086:7000
      id ""
  Bus  0, device   1, function 1:
    IDE controller: PCI device 8086:7010
      BAR4: I/O at 0xc0c0 [0xc0cf].
      id ""
  Bus  0, device   1, function 2:
    USB controller: PCI device 8086:7020
      IRQ 5.
      BAR4: I/O at 0xc040 [0xc05f].
      id ""
  Bus  0, device   1, function 3:
    Bridge: PCI device 8086:7113
      IRQ 9.
      id ""
  Bus  0, device   2, function 0:
    VGA controller: PCI device 1013:00b8
      BAR0: 32 bit prefetchable memory at 0xfc000000 [0xfdffffff].
      BAR1: 32 bit memory at 0xfebf0000 [0xfebf0fff].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
      id ""
  Bus  0, device   3, function 0:
    Ethernet controller: PCI device 1af4:1000
      IRQ 11.
      BAR0: I/O at 0xc060 [0xc07f].
      BAR1: 32 bit memory at 0xfebf1000 [0xfebf1fff].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
      id ""
  Bus  0, device   4, function 0:
    Class 1920: PCI device 1af4:1003
      IRQ 5.
      BAR0: I/O at 0xc080 [0xc09f].
      BAR1: 32 bit memory at 0xfebf2000 [0xfebf2fff].
      id "vs0"
  Bus  0, device   5, function 0:
    RAM controller: PCI device 1af4:1002
      IRQ 11.
      BAR0: I/O at 0xc0a0 [0xc0bf].
      id "ball1"
  Bus  0, device   6, function 0:
    SCSI controller: PCI device 1af4:1001
      IRQ 10.
      BAR0: I/O at 0xc000 [0xc03f].
      BAR1: 32 bit memory at 0xfebf3000 [0xfebf3fff].
      id ""
(qemu)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]