[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [ivtv-devel] Problems loading ivtv in Xen - DMA issues?
On 8 Jul 2005, at 16:38, David Muench wrote: Hi Keir, Looks like it didn't quite work. I started a capture and then ended it 20 seconds later, and I still have a zero byte file. Ivtv has some new messages in dmesg though: Well, it's not clear whether this is a bug in Xen or the ivtv driver. :-) Basically, my fix for dma_map_single() introduces bounce buffers. These should work okay if: (a) I haven't screwed up the bounce-buffer code; and(b) The ivtv driver is scrupulously careful in its use of the streaming DMA interface. For example, it is not good for the driver to read/write the buffer without calling unmap, or sync_for_cpu. I see that the driver does do the right thing at least most of the time but, of course, if there are any bugs they won't actually cause problems on most architectures (i386 in particular). OTOH, the bounce buffer code is not exactly thoroughly tested, so it is feasible the bug lies there. Although the implementation is pretty simple. I think the bottom line is that this will need fixing by someone with the hardware -- probably by adding tracing to the map/sync functions to check that they are used correctly, and to sanity-check the bounce buffer code. Some more detail on how the bounce buffers are implemented. It's very similar to what arch/arm does for these streaming DMA calls: * dma_map_single() allocates a physically contiguous bounce buffer and, if dir!=DMA_FROM_DEVICE, copies the host buffer into the bounce buffer. * dma_unmap_single() copies bounce -> host (if dir!=DMA_TO_DEVICE) and then frees the bounce buffer * dma_sync_single_to_{cpu,device}() copy to/from the bounce buffer as appropriate, if teh direction argument is in the matching direction. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |