|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] amd iommu: Dump flags of IO page faults
>>> On 07.09.12 at 12:01, Sander Eikelenboom <linux@xxxxxxxxxxxxxx> wrote:
>>> 4.1: Capabilities: [54] MSI: Enable- Count=1/1 Maskable- 64bit+
>
>> Eh... That is interesting. So which dom0 are you using? There is a c/s
>> in 4.2 to prevent recent dom0 to disable iommu interrupt (changeset
>> 25492:61844569a432) Otherwise, iommu cannot send any events including IO
>> PAGE faults. You could try to revert dom0 to an old version like 2.6
>> pv_ops to see if you really have no io page faults on 4.1
>
> Ok i will give that a try, only dom0 will have to be a 2.6 pv_ops i assume ?
You could also drop the patch below into a kernel that has
the problematic change. Will require
#define PCI_CLASS_SYSTEM_IOMMU 0x0806
to be added at a suitable spot in include/linux/pci_ids.h.
Jan
--- head.orig/drivers/pci/msi.c
+++ head/drivers/pci/msi.c
@@ -20,6 +20,7 @@
#include <linux/errno.h>
#include <linux/io.h>
#include <linux/slab.h>
+#include <xen/xen.h>
#include "pci.h"
#include "msi.h"
@@ -1022,7 +1023,13 @@ void pci_msi_init_pci_dev(struct pci_dev
/* Disable the msi hardware to avoid screaming interrupts
* during boot. This is the power on reset default so
* usually this should be a noop.
+ * But on a Xen host don't do this for IOMMUs which the hypervisor
+ * is in control of (and hence has already enabled on purpose).
*/
+ if (xen_initial_domain()
+ && (dev->class >> 8) == PCI_CLASS_SYSTEM_IOMMU
+ && dev->vendor == PCI_VENDOR_ID_AMD)
+ return;
pos = pci_find_capability(dev, PCI_CAP_ID_MSI);
if (pos)
msi_set_enable(dev, pos, 0);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |