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

Re: [Xen-devel] pci-passthrough loses msi-x interrupts ability after domain destroy

Hi Jan and al,

----- On Sep 21, 2017, at 9:12 AM, Jan Beulich JBeulich@xxxxxxxx wrote:

> And did you verify that the OS actually makes an attempt to clear
> this mask-all flag? If such an attempt doesn't have the intended
> effect, finding the problem location in the code and sending a
> fix can't be that difficult. If otoh the guest doesn't do this, then
> we'd need to figure out whether we leave the device in a wrong
> state after de-assigning it from the original guest instance (albeit,
> as Roger said, the reset the device is supposed to go through
> would be expected to clear it).

> I can certainly see an OS not
> necessarily expecting the bit to be set when first gaining control
> of the device. For this, look at the lspci output for the device in
> Dom0 between shutting down and then restarting the guest.
> Jan

Thanks for the good hints and reset patches.

I tried the various device reset patches posted on this discussion
(do_flr, Christopher's "more thorough" reset_device) but without luck.

After reset, I could notice that lspci shows the device's Masked
state has been cleared but a newly started guest will still fail
to receive any interrupts.

However, I just found a sequence that makes the device survive a guest
destruction: issuing a remove_slot, unbind, bind, new_slot on that
specific device in pciback's sysfs corner, then re-creating the
domain. This allows interrupts flowing back into both windows and
linux domains, without involving an additional reset step.

It's a quick fix for me, but I'm wondering what path differs between
the two methods, and how what it leads to could become part of the
standard reset path.


Xen-devel mailing list



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