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 590641 - "unable to allocate interrupt" error is seen in guest after passthough a VF to guest.
Summary: "unable to allocate interrupt" error is seen in guest after passthough a VF t...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.0
Hardware: All
OS: Linux
low
medium
Target Milestone: rc
: ---
Assignee: Don Dutile (Red Hat)
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-05-10 11:51 UTC by Johnny Liu
Modified: 2013-01-09 22:34 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-07-07 09:41:13 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Johnny Liu 2010-05-10 11:51:15 UTC
Description of problem:
During SRIOV testing, after passthough a VF to guest, "unable to allocate interrupt" error is seen in dmesg output.

Version-Release number of selected component (if applicable):
kernel-2.6.32-24.el6.x86_64
libvirt-0.8.1-2.el6.x86_64
qemu-kvm-0.12.1.2-2.51.el6.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Trun on intel_iommu for kernel parameter, and in host, check it:
# dmesg|grep -i iommu
Command line: ro root=UUID=195c500b-a745-4d6d-9462-8be4845849c6 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet nmi_watchdog=0 intel_iommu=on
Kernel command line: ro root=UUID=195c500b-a745-4d6d-9462-8be4845849c6 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=256M@0M rhgb quiet nmi_watchdog=0 intel_iommu=on
Intel-IOMMU: enabled
IOMMU e4100000: ver 1:0 cap c90780106f0462 ecap f02076
IOMMU fed90000: ver 1:0 cap c90780106f0462 ecap f02076
IOMMU 0xe4100000: using Queued invalidation
IOMMU 0xfed90000: using Queued invalidation
IOMMU: Setting RMRR:
IOMMU: Setting identity map for device 0000:00:1a.2 [0xcefd7000 - 0xcefd8000]
IOMMU: Setting identity map for device 0000:00:1a.1 [0xcefd6000 - 0xcefd7000]
IOMMU: Setting identity map for device 0000:00:1a.0 [0xcefd5000 - 0xcefd6000]
IOMMU: Setting identity map for device 0000:00:1d.2 [0xcefd4000 - 0xcefd5000]
IOMMU: Setting identity map for device 0000:00:1d.1 [0xcefd3000 - 0xcefd4000]
IOMMU: Setting identity map for device 0000:00:1d.0 [0xcefd2000 - 0xcefd3000]
IOMMU: Setting identity map for device 0000:00:1a.7 [0xcefd1000 - 0xcefd2000]
IOMMU: Setting identity map for device 0000:00:1d.7 [0xcefd0000 - 0xcefd1000]
IOMMU: Prepare 0-16MiB unity mapping for LPC
IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0x1000000]

2. unload igb module, and reload igbvf module.
( I use the intel 82576 network interface card which supports the SR-IOV function )
# modprobe -r igb
# modprobe igb max_vfs=7


3. Add this VF xml info to VM config xml to passthrough a VF to guest:
    <hostdev mode='subsystem' type='pci' managed='no'>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x10' function='0x0'/>
      </source>
    </hostdev>

4. Detach and reset this VF device from host:
# virsh nodedev-dettach pci_0000_03_10_0
# virsh nodedev-reset pci_0000_03_10_0

5. Start the guest, and log into it to check

Actual results:
The VF is seen in guest, but failed to load VF driver:
# lspci |grep -i 82576
00:05.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)

During booting up, the following error is seen:
# dmesg|grep igbvf
igbvf 0000:00:05.0: Failed to initialize MSI-X interrupts.
igbvf 0000:00:05.0: Intel(R) 82576 Virtual Function
igbvf 0000:00:05.0: Address: e2:e0:c1:31:6e:ba
igbvf 0000:00:05.0: MAC: 1
igbvf 0000:00:05.0: Unable to allocate interrupt, Error: -1
igbvf 0000:00:05.0: Unable to allocate interrupt, Error: -1
 
Try to restart network, the error still is seen:
# service network restart
...
Bringing up interface eth1:  
Determining IP information for eth1... igbvf 0000:00:05.0: Unable to allocate interrupt, Error: -1
failed; no link present.  Check cable?
                                                           [FAILED]


Expected results:
VF should work fine in guest.

Additional info:
Log file:
LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -S -M rhel6.0.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name demo -uuid 5aa734be-9211-c3d8-8aa8-4b89b19a5da8 -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/demo.monitor,server,nowait -mon chardev=monitor,mode=control -rtc base=utc -boot c -drive file=/var/lib/libvirt/images/demo.img,if=none,id=drive-ide0-0-0,boot=on -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,fd=22,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:59:5f:86,bus=pci.0,addr=0x4 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -vnc 127.0.0.1:0 -k en-us -vga cirrus -device pci-assign,host=03:10.0,id=hostdev0,bus=pci.0,addr=0x5 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 
char device redirected to /dev/pts/1

Comment 2 RHEL Program Management 2010-05-10 13:24:03 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.

Comment 3 Daniel Berrangé 2010-05-11 10:57:07 UTC
The logs show that device assignment completely successfully from libvirt's POV. Suspect any bug is in the KVM side of things.

Comment 4 Don Dutile (Red Hat) 2010-07-06 17:31:20 UTC
Please re-test w/latest (beta2) kernel & qemu-kvm pkg's.
This looks like a failure that was fixed recently.

Comment 5 dyuan 2010-07-07 01:42:13 UTC
re-test with qemu-kvm-0.12.1.2-2.90.el6 and kernel-2.6.32-42.el6, this failure is fixed.


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