Konrad Rzeszutek Wilk
2013-Dec-13 16:09 UTC
[RFC PATCH] Xen PCI back - do slot and bus reset (v0).
Hey, While I was trying to narrow down the state of GPU passthrough (still not finished) and figuring what needs to be done I realized that Xen PCIback did not reset my GPU properly (when I crashed the Windows guest by mistake). It does an FLR reset or Power one - if the device supports it. But it seems that some of these GPUs are liars and actually don''t do the power part properly. One way to fix this is by doing a slot (aka device) and bus reset. Of course to do that - you need to make sure that all of the functions of a device are under the ownership of xen-pciback. Otherwise you might accidently reset your sound card while it is being used. These RFC patches cleanup pci back a bit and also make it possible for Xen pciback to do the whole gamma of ''reset'' for PCI devices: FLR, power management, AER, slot and bus reset if neccessary. Thanks go to Gordan Bobic for educating me on how to "reprogram" and GFX460 in a Quardro 4000M and also reporting oddities when a PCI device was reset but it looked like it was not reset. drivers/xen/xen-pciback/pci_stub.c | 142 +++++++++++++++++++++++++++++++------ drivers/xen/xen-pciback/xenbus.c | 5 +- 2 files changed, 124 insertions(+), 23 deletions(-) Konrad Rzeszutek Wilk (5): xen-pciback: Cleanup up pcistub_put_pci_dev xen-pciback: First reset, then free. xen-pciback: Document when we FLR an PCI device. xen/pciback: Move the FLR code to a function. xen/pciback: PCI reset slot or bus
Gordan Bobic
2013-Dec-13 16:52 UTC
Re: [RFC PATCH] Xen PCI back - do slot and bus reset (v0).
On 12/13/2013 04:09 PM, Konrad Rzeszutek Wilk wrote:> Hey, > > While I was trying to narrow down the state of GPU passthrough > (still not finished) and figuring what needs to be done I realized > that Xen PCIback did not reset my GPU properly (when I crashed the > Windows guest by mistake). It does an FLR reset or Power one - if > the device supports it. But it seems that some of these GPUs > are liars and actually don''t do the power part properly.Some cards (IIRC Fermi based Nvidia cards) support neither the required power states nor FLR, although you can use setpci to force a powered off state on the card without an error being triggered. Unfortunately, it seems to be a null operation, and the card doesn''t end up getting reset.> One way to fix this is by doing a slot (aka device) and bus reset. > Of course to do that - you need to make sure that all of the > functions of a device are under the ownership of xen-pciback. > Otherwise you might accidently reset your sound card while it is > being used.>> These RFC patches cleanup pci back a bit and also make it possible > for Xen pciback to do the whole gamma of ''reset'' for PCI devices: > FLR, power management, AER, slot and bus reset if neccessary. > > Thanks go to Gordan Bobic for educating me on how to "reprogram" > and GFX460 in a Quardro 4000M and also reporting oddities when > a PCI device was reset but it looked like it was not reset.You''re welcome. :) Gordan