[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 13 Jul 2005, at 20:51, David Muench wrote:

Well, life got in the way and I didn't try this fix until just now..
But it works! I'm going to get my mythtv setup moved into the domU so
I can test it completely, but it seems to work perfectly.

Thank you very, very much. Is removing the conditionals a permanent
solution that can be commited, or is there anything else you'd like me
to test?

I believe the code as checked in is strictly correct, but maybe we can relax things a little. What happens if you leave the direction tests in dma_map_single and dma_unmap_single, but remove them from dma_sync_single_for_cpu and dma_sync_single_for_device?

If the above works, leave the direction tests in the new modified form; otherwise revert to the previous working state (ie. direction tests removed from all four functions). Either way, another thing that is interesting to try is the following:
(1) At the start of dma_sync_single_for_cpu add:
 if (direction == DMA_TO_DEVICE)
    dma_sync_single_for_device(dev, dma_handle, size, direction);
(2) At the start of dma_sync_single_for_device add:
 if (direction == DMA_FROM_DEVICE)
    dma_sync_single_for_cpu(dev, dma_handle, size, direction);

This will make the sync functions behave as they do in the ARM architecture, which also uses bounce buffers but has at least been looked over by the core kernel DMA guys.

 -- Keir

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.