Messages in this thread | | | Date | Thu, 2 Mar 2006 14:10:43 +0100 | From | Jens Axboe <> | Subject | Re: PCI-DMA: Out of IOMMU space on x86-64 (Athlon64x2), with solution |
| |
On Thu, Mar 02 2006, Andi Kleen wrote: > On Thursday 02 March 2006 13:30, Jens Axboe wrote: > > > I'd much rather prefer punting and letting the upper layer decide how to > > handle it. Who knows, it may have to do something active like kicking > > pending io in action at the controller level. > > But how would you wait for new space to be available then? > > You need at least a wait queue from the IOMMU code to hook into I suspect.
There are two cases as far as I can see:
- We have in-driver pending stuff, so we can just retry the operation later when some of that completes. - We are unlucky enough that someone else holds all the resources, we have nothing to wait for.
The first case is easy, just punt and retry when some of your io completes. The last case requires a way to wait on the iommu as you describe, which the driver needs to do somewhere safe.
-- Jens Axboe
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |