Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 760483

Summary: parameter vectors can't be analysed correctly
Product: Red Hat Enterprise Linux 6 Reporter: Xiaomei Gao <xigao>
Component: qemu-kvmAssignee: Virtualization Maintenance <virt-maint>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: unspecified    
Version: 6.2CC: acathrow, bcao, bsarathy, dawu, juzhang, mdeng, michen, mkenneth, tburke, virt-maint, vrozenfe
Target Milestone: rcKeywords: Reopened
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-08 11:16:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

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.