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

[Xen-users] irq error when pci passthrough to a domU

  • To: xen-users@xxxxxxxxxxxxxxxxxxx
  • From: falcon falcon <falconyyj@xxxxxxxxx>
  • Date: Wed, 15 Jul 2009 16:12:35 +0800
  • Delivery-date: Wed, 15 Jul 2009 01:13:23 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=jaWkNbhLn7oRPrjMGWg9X9hSvWlvzqBES5118vfAsnyKwAIpcw5oJZBphJNRJGd2E6 Uc8Ss0WmiTsvHVdiLyTIEYjHtv53ODaZKCTDWVnkvEFHtewvDOSsvVBJEs/+etS/d/pq MYP46I7asDqdXV6sLsaFbxAx81uKSUOCitLVg=
  • List-id: Xen user discussion <xen-users.lists.xensource.com>

Hi, all:

I'm working to pass pci device(a scsi disk) to a domU(CentOS), and my xen version is 3.3.0.  I have completed the configuration work and the domU can access this pci device now. It can identify the scsi disk and can call the related device driver. But when the driver setups irq, error occurs:

PCI: Enabling device 0000:02:06.1 (0000 -> 0003)

----------- [cut here ] --------- [please bite here ] ---------

Kernel BUG at ...oprj/linux-2.6.18-xen.hg/drivers/xen/core/evtchn.c:830

invalid opcode: 0000 [1] SMP


Modules linked in:

Pid: 1, comm: swapper Not tainted #5

RIP: e030:[<ffffffff80375ecd>]  [<ffffffff80375ecd>] evtchn_get_xen_pirq+0x1d/0x40

RSP: e02b:ffff880001941af0  EFLAGS: 00010097

RAX: 00000000ffffffff RBX: 0000000000000011 RCX: 0000000000000000

RDX: 0000000000000000 RSI: ffff88001fbb9640 RDI: 0000000000000011

RBP: ffff880001941af0 R08: ffff88001fbb9640 R09: 0000000000000015

R10: 0000000000000020 R11: 0000000000000002 R12: 0000000000000011

R13: 0000000000000880 R14: 0000000000000011 R15: ffffffff805170bc

FS:  0000000000000000(0000) GS:ffffffff80516000(0000) knlGS:0000000000000000

CS:  e033 DS: 0000 ES: 0000

Process swapper (pid: 1, threadinfo ffff880001940000, task ffff88000193f510)

Stack:  ffff880001941b90 ffffffff803762cf ffff880001941ae0 000002b000000001

 000000000000033a ffff88000194c000 0000000000000000 ffff88000194c000

 0000000000000000 0000000000000000 ffff880001941c20 ffffffff8022e5f7

Call Trace:

 [<ffffffff803762cf>] startup_pirq+0x3f/0x270

 [<ffffffff8022e5f7>] printk+0x67/0x70

 [<ffffffff802532af>] setup_irq+0x13f/0x1e0

 [<ffffffff803bda70>] ahd_linux_isr+0x0/0x1f0

 [<ffffffff802533f7>] request_irq+0xa7/0xe0

 [<ffffffff803bfb5f>] ahd_pci_map_int+0x4f/0x80

 [<ffffffff803b60c5>] ahd_pci_config+0xde5/0xe50

 [<ffffffff803bfd44>] ahd_linux_pci_dev_probe+0x174/0x250

 [<ffffffff80344c8a>] kobject_get+0x1a/0x30

 [<ffffffff80353b6c>] pci_match_device+0x1c/0xe0

 [<ffffffff80353cad>] pci_device_probe+0x5d/0xa0

 [<ffffffff803717d5>] driver_probe_device+0x65/0xd0

 [<ffffffff803718c0>] __driver_attach+0x0/0xa0

 [<ffffffff80371923>] __driver_attach+0x63/0xa0

 [<ffffffff8037107f>] bus_for_each_dev+0x4f/0x80

 [<ffffffff803716dc>] driver_attach+0x1c/0x20

 [<ffffffff80370c0d>] bus_add_driver+0x8d/0x170

 [<ffffffff80371c33>] driver_register+0x93/0xa0


I check the related resource code, and find that these error messages comes from the following function:

int evtchn_get_xen_pirq(int irq)
        if (identity_mapped_irq(irq))
                return irq;
        BUG_ON(type_from_irq(irq) != IRQT_PIRQ);
        return index_from_irq(irq);

This function is in drviers/xen/core/evtchn.c. It looks like the irq type is not right. Does anyone who know about it? Think you! 

Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.