Bug 760483 - parameter vectors can't be analysed correctly
Summary: parameter vectors can't be analysed correctly
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.2
Hardware: x86_64
OS: Linux
unspecified
low
Target Milestone: rc
: ---
Assignee: Virtualization Maintenance
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-12-06 10:02 UTC by Xiaomei Gao
Modified: 2013-01-10 00:35 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-12-08 11:16:38 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Xiaomei Gao 2011-12-06 10:02:09 UTC
Description of problem:

if parameter vectors is set more than 32 , it can't be analysed correctly when booting guest with serial driver 

Version-Release number of selected component (if applicable):
#uname -r
2.6.32-220.el6.x86_64

#rpm -qa | grep qemu-kvm
qemu-kvm-0.12.1.2-2.210.el6.x86_64

guest version: win2008-32

How reproducible:
mostly

Steps to Reproduce:
1.boot a guest:
/usr/libexec/qemu-kvm -m 4G -smp 2 -cpu cpu64-rhel6,+x2apic -drive file=/mnt/xigao/win2008-32-virtio.raw,format=raw,if=none,id=drive-virtio-0-0,werror=stop,rerror=stop,cache=none -device virtio-blk-pci,drive=drive-virtio-0-0,id=virtio-0-0,bus=pci.0,addr=0x3,bootindex=1 -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,mac=ff:10:20:2d:31:21,bus=pci.0,addr=0x4,id=net0 -uuid `uuidgen` -rtc base=localtime,clock=host,driftfix=slew -no-kvm-pit-reinjection -monitor stdio -name win2008-32 -spice port=8000,disable-ticketing -vga qxl -balloon none -usb -device usb-tablet -device virtio-serial-pci,id=virtio-serial0,max_ports=10,vectors=33,bus=pci.0,addr=0x5,id=bus1 -chardev socket,id=channel0,server,nowait,path=/tmp/tty1 -device virtserialport,chardev=channel0,name=com.redhat.rhevm.vdsm1,bus=virtio-serial0.0,nr=1

2.info qtree:
(qemu) info qtree
bus: main-system-bus
  type System
  dev: i440FX-pcihost, id ""
    bus: pci.0
      type PCI
      dev: virtio-serial-pci, id "virtio-serial0"
        dev-prop: vectors = 0---------------------------->vectors is set 0
        dev-prop: class = 0x780
        dev-prop: indirect_desc = on
        dev-prop: event_idx = on
        dev-prop: max_ports = 10
        dev-prop: flow_control = 1
        bus-prop: addr = 05.0
        bus-prop: romfile = <null>
        bus-prop: rombar = 1
        bus-prop: multifunction = off
        class Class 0780, addr 00:05.0, pci id 1af4:1003 (sub 1af4:0003)
        bar 0: i/o at 0xc0e0 [0xc0ff]

3. when setting vectors up to certain value in CLI,vectors also show other value(max_ports+1) 
-device virtio-serial-pci,id=virtio-serial0,max_ports=10,vectors=999999999999999999999,bus=pci.0,addr=0x5,id=bus1 -chardev socket,id=channel0,server,nowait,path=/tmp/tty1 -device virtserialport,chardev=channel0,name=com.redhat.rhevm.vdsm1,bus=virtio-serial0.0,nr=1

4 info qtree:
(qemu) info qtree
bus: main-system-bus
  type System
  dev: i440FX-pcihost, id ""
    bus: pci.0
      type PCI
      dev: virtio-serial-pci, id "virtio-serial0"
        dev-prop: vectors = 11---------------------------->max_ports+1
        dev-prop: class = 0x780
        dev-prop: indirect_desc = on
        dev-prop: event_idx = on
        dev-prop: max_ports = 10
        dev-prop: flow_control = 1
        bus-prop: addr = 05.0
        bus-prop: romfile = <null>
        bus-prop: rombar = 1
        bus-prop: multifunction = off
        class Class 0780, addr 00:05.0, pci id 1af4:1003 (sub 1af4:0003)
        bar 0: i/o at 0xc0e0 [0xc0ff]
        bar 1: mem at 0xf4040000 [0xf4040fff]

  
Actual results:
parameter vectors can not  be analysed correctly

Expected results:
parameter vectors can be analysed correctly

Additional info:

Comment 2 Vadim Rozenfeld 2011-12-06 12:23:48 UTC
It is not related to Windows drivers, and it's not a bug.

Steps 1 and 2 - QEMU cannot initialize more than 32 vectors. Hence, the number of vectors is 0.

Steps 3 and 4. Parameter "vectors" defined as 32-bit integer. QEMU cannot convert
999999999999999999999 into integer and calculates number of vectors as 
max_ports + 1.

BTW, current Windows implementation of virtio-serial doesn't support MSI-X mode.
Windows will work with vioserial in IRQ mode only, no matter what value was assigned to vectors.

Best,
Vadim.

Comment 3 Mike Cao 2011-12-06 15:06:45 UTC
(In reply to comment #2)
> It is not related to Windows drivers, and it's not a bug.
> 

Yes ,It is a qemu-kvm bug .

> Steps 1 and 2 - QEMU cannot initialize more than 32 vectors. Hence, the number
> of vectors is 0.
> 
> Steps 3 and 4. Parameter "vectors" defined as 32-bit integer. QEMU cannot
> convert
> 999999999999999999999 into integer and calculates number of vectors as 
> max_ports + 1.
> 
> BTW, current Windows implementation of virtio-serial doesn't support MSI-X
> mode.
> Windows will work with vioserial in IRQ mode only, no matter what value was
> assigned to vectors.

BTW ,what about virtio-balloon,virtio-netkVM  and virtio-blk ? (/me think virtio-netKVM support MSI-X, but not sure )

Thanks ,
Mike

> 
> Best,
> Vadim.

Comment 4 Vadim Rozenfeld 2011-12-06 18:14:56 UTC
(In reply to comment #3)
> (In reply to comment #2)
> > It is not related to Windows drivers, and it's not a bug.
> > 
> 
> Yes ,It is a qemu-kvm bug .
> 
> > Steps 1 and 2 - QEMU cannot initialize more than 32 vectors. Hence, the number
> > of vectors is 0.
> > 
> > Steps 3 and 4. Parameter "vectors" defined as 32-bit integer. QEMU cannot
> > convert
> > 999999999999999999999 into integer and calculates number of vectors as 
> > max_ports + 1.
> > 
> > BTW, current Windows implementation of virtio-serial doesn't support MSI-X
> > mode.
> > Windows will work with vioserial in IRQ mode only, no matter what value was
> > assigned to vectors.
> 
> BTW ,what about virtio-balloon,virtio-netkVM  and virtio-blk ? (/me think
> virtio-netKVM support MSI-X, but not sure )

Yes, net and block support MSI-X. Even more, they both have MSI-X enabled by default on W2K8 and higher. MSI-X is not supported on XP & W2K3.
Balloon by design doesn't support MSI-X on any platform. 

Cheers,
Vadim.

> 
> Thanks ,
> Mike
> 
> > 
> > Best,
> > Vadim.


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