All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Zeffertt <alex.zeffertt@eu.citrix.com>
To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: pciback bug "secondary bus reset failed"
Date: Mon, 24 May 2010 16:53:01 +0100	[thread overview]
Message-ID: <4BFAA0DD.3060900@eu.citrix.com> (raw)

Hi,

I'm trying to passthrough a PCI network card to a domU guest, but I'm hitting a 
bug that prevents the IRQ being unbound from dom0.

Here are the steps I am taking:

  * configure Xen to pass $pci (0000:06:00.0) through to guest VM
  * unbind from current driver in dom0 and rebind to pciback:

      echo -n $pci > /sys/bus/pci/devices/$pci/driver/unbind
      modprobe pciback
      echo -n $pci > /sys/bus/pci/drivers/pciback/new_slot
      echo -n $pci > /sys/bus/pci/drivers/pciback/bind

  * start guest VM

I then get the following on the dom0 console

   pciback 0000:06:00.0: secondary bus reset failed for device - all functions \
   need to be co-assigned - err: 6
   pciback 0000:06:00.0: FLR functionality not supported; attempts to use \
   secondary bus reset unsuccessful;
   pciback 0000:06:00.0: FLR not performed for device

I don't understand the above, but the upshot is that pirq_guest_unbind() does 
not get called.  Later when the guest does an "ifconfig up" the IRQ gets sent to 
dom0 instead of the domU, and this causes the following to appear on the dom0 
console:

   irq 21: nobody cared (try booting with the "irqpoll" option)
   Pid: 0, comm: swapper Tainted: G          2.6.27.42-0.1.1.xs5.6.0.44.111158xen
    #1
    [<c0154517>] __report_bad_irq+0x27/0x90
    [<c015487c>] note_interrupt+0x2fc/0x330
    [<f009e92d>] ? usb_hcd_irq+0x4d/0xe0 [usbcore]
    [<c0153951>] ? handle_IRQ_event+0x31/0x90
    [<c0155204>] handle_level_irq+0xe4/0x110
    [<c0107733>] do_IRQ+0x43/0x90

I have ioapic_ack=old on the Xen command line.  This causes Xen to EOI the 
interrupt straight away instead of waiting for a guest to EOI and forwarding 
that on to the IO APIC.  If I remove this then since no guest handles the 
interrupt, all lower priority IRQs get blocked forever and I lose access to my 
hard disk!

Any help would be much appreciated.

Regards,

Alex Zeffertt

             reply	other threads:[~2010-05-24 15:53 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-24 15:53 Alex Zeffertt [this message]
2010-05-24 16:30 ` pciback bug "secondary bus reset failed" Pasi Kärkkäinen
2010-05-24 16:53   ` Alex Zeffertt
2010-05-25  1:03     ` Weidong Han
2010-05-25  8:42       ` Alex Zeffertt
2010-05-25  8:50         ` Ian Campbell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BFAA0DD.3060900@eu.citrix.com \
    --to=alex.zeffertt@eu.citrix.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.