Re: Problems with alpha/pci + radeon/ttm

FUJITA Tomonori
2010-06-27T04:21:38Z

On Thu, 24 Jun 2010 10:53:52 -0400
Matt Turner <mattst88@gmail.com> 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?

The parameters in the log looks good. But you got this log before you
started X?