On Sun, Jun 27, 2010 at 12:20 AM, FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> wrote: > On Thu, 24 Jun 2010 10:53:52 -0400 > Matt Turner <mattst88@xxxxxxxxx> wrote: > >> > Seems that the IOMMU can't find 128 pages. It's likely due to: >> > >> > - out of the IOMMU space (possibly someone doesn't free the IOMMU >> > space). >> > >> > or >> > >> > - the mapping parameters (such as align) aren't appropriate so the >> > IOMMU can't find space. >> > >> > >> >> Is this the cause of the bug we're seeing in the report [1]? >> >> >> >> Anyone know what's going wrong here? >> > >> > >> > I've attached a patch to print the debug info about the mapping >> > parameters. >> > >> > >> > diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c >> > index d1dbd9a..17cf0d8 100644 >> > --- a/arch/alpha/kernel/pci_iommu.c >> > +++ b/arch/alpha/kernel/pci_iommu.c >> > @@ -187,6 +187,10 @@ iommu_arena_alloc(struct device *dev, struct pci_iommu_arena *arena, long n, >> > /* Search for N empty ptes */ >> > ptes = arena->ptes; >> > mask = max(align, arena->align_entry) - 1; >> > + >> > + printk("%s: %p, %p, %d, %ld, %lx, %u\n", __func__, dev, arena, arena->size, >> > + n, mask, align); >> > + >> > p = iommu_arena_find_pages(dev, arena, n, mask); >> > if (p < 0) { >> > spin_unlock_irqrestore(&arena->lock, flags); >> >> Using this patch, I log the attached output. > > Your system has 1GB iommu address space. I guess that it's enough for > KSM? I would definitely think so. The video card I'm using here is a 64MB Radeon 9100 PCI, with a 128MB BAR. > The parameters in the log looks good. But you got this log before you > started X? Yes, that's right. I'll see if I can isolate where the first -ENOMEM is coming from. Thanks Fujita for helping with this! Matt -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html