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

Blue Swirl
2008-12-12T20:05:20Z

On 12/12/08, Anthony Liguori <anthony@codemonkey.ws> wrote:
> 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.

Beautiful!

> 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.

So again we tried to solve too many problems at once.