Re: [Qemu-devel] [PATCH 2 of 5] add can_dma/post_dma for direct IO

Anthony Liguori
2008-12-12T19:18:48Z

Blue Swirl wrote:
> On 12/12/08, Andrea Arcangeli <aarcange@redhat.com> wrote:
>
>> From: Andrea Arcangeli <aarcange@redhat.com>
>>
>> Add can_dma and post_dma methods needed before/after direct IO to guest
>> physical memory.
>>
>> Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
>>
>
>
>> + /* nonlinear range */
>> + if (pd_first != pd)
>> + return NULL;
>>
>
> In my tests on Sparc32, IOMMU can map a linear DVMA range to several
> non-linear physical pages, so this case should be handled correctly.
>

I think we should go back to Fabrice's earliest suggestion here. We
should just have a simple map/unmap lock/unlock API for physical
memory. That should be the base API IMHO.

As long the map function goes from guest physical => host virtual, it
can work for everything we care about.

This is orthogonal to an API dealing with scatter/gather lists and
translation to and from them.

Regards,

Anthony Liguori