Thread (62 messages) flat view 62 messages, 8 authors, 2009-07-02

Re: [PATCH 0/10] DMA-API debugging facility

From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Date: 2008-11-22 10:17:27
Also in: lkml

On Sat, 22 Nov 2008 10:33:18 +0100
Joerg Roedel [off-list ref] wrote:
On Sat, Nov 22, 2008 at 12:27:43PM +0900, FUJITA Tomonori wrote:
quoted
On Fri, 21 Nov 2008 18:45:51 +0100
Ingo Molnar [off-list ref] wrote:
quoted
* Joerg Roedel [off-list ref] wrote:
quoted
On Fri, Nov 21, 2008 at 05:24:29PM +0000, David Woodhouse wrote:
quoted
On Fri, 2008-11-21 at 18:20 +0100, Joerg Roedel wrote:
quoted
Ok, I will move the generic bits to lib/ and include/linux and let
architectures decide if they want to use it.
Once you've done that, I'll try to hook it up on PowerPC to make 
sure it works there.
Ok, cool. Thanks
i'll give it a whirl on x86 once the allocation bug is resolved. x86 
testing will be the most interesting in practice, because most drivers 
there are developed with no dynamic DMA in mind. (many of the x86 
drivers were developed before IOMMUs were supported in Linux)
Yeah, one of the problems due to this is that some drivers wrongly
assume that the dma mapping operations never fail (they do DMA with a
wrong address). With VT-d and AMD IOMMU, the dma mapping operations
fail just because of OOM.
At least AMD IOMMU code will not fail because of memory shortage. All
necessary data structures, including the pagetables, are preallocated.
The only place were it might fail is dma_alloc_coherent. But that is not
specific to that driver.
Oops, you are right. Somehow I wrongly thought that AMD IOMMU
allocates pte on the fly like VT-d.

quoted
Some time ago, I hooked the fault injection mechanism to the dma
mapping operations (I linked struct fault_attr to struct pci_dev so
you can make dma_map_single/sg fail with a particular pci device). It
might interest some people:

git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git dmafault
This would also be helpful to find bugs in drivers together with this
code. Do you plan to submit it?
Yeah, with your debug mechanism, this might be more helpful because
the debug mechanism can catch drivers that don't handle dma mapping
failure properly. I'll submit this after you finish the debug
mechanism.

Thanks,
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help