Re: PCI-DMA: Out of IOMMU space on x86-64 (Athlon64x2), with solution

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

 



On Thu, Mar 02 2006, Andi Kleen wrote:
> On Thursday 02 March 2006 15:14, Jens Axboe wrote:
> 
> [...]
> 
> Ok great we agree on everything then.

Seems so :)

> > > > 
> > > > I would not want to call wake_up() unless I have to. Would a
> > > > 
> > > >         smp_mb();
> > > >         if (waitqueue_active(&iommu_wq))
> > > >                 ...
> > > > 
> > > > not be sufficient?
> > > 
> > > Probably, but one would need to be careful to not miss events this way.
> > 
> > Definitely, as far as I can see the above should be enough...
> 
> Ok - you just need to give me a wait queue then and I would be happy
> to add the wakeups to the low level code
> 
> (or you can just do it yourself	if you prefer, shouldn't be very
> difficult ... - just needs to be done for both swiotlb and GART iommu.
> The other architectures can follow then. At the beginning using an
> ARCH_HAS_* ifdef might be a good idea for easier transition for
> everybody) 

I'd prefer adding that wait queue in the iommu code, it's where it
belongs. Didn't we agree on just a global waitqueue? The the interface
for block/net/whatever-consume would just be something like:

        iommu_wait();

which would return when we have enough space, hopefully. A subsystem
specific waitqueue would have the handy side of supplying a callback on
the wake up, which would be a nicer design. But isn't the enough
wait_for_resources() call sufficient for this?

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux