Re: [PATCH RFC 5/8] xen: introduce XENMEM_get_dma_buf andxen_put_dma_buf

From: Stefano Stabellini
Date: Thu Aug 01 2013 - 11:13:50 EST


On Wed, 31 Jul 2013, Konrad Rzeszutek Wilk wrote:
> Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> wrote:
> >Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> >---
> >include/xen/interface/memory.h | 62
> >++++++++++++++++++++++++++++++++++++++++
> > 1 files changed, 62 insertions(+), 0 deletions(-)
> >
> >diff --git a/include/xen/interface/memory.h
> >b/include/xen/interface/memory.h
> >index 2ecfe4f..ffd7f4e 100644
> >--- a/include/xen/interface/memory.h
> >+++ b/include/xen/interface/memory.h
> >@@ -263,4 +263,66 @@ struct xen_remove_from_physmap {
> > };
> > DEFINE_GUEST_HANDLE_STRUCT(xen_remove_from_physmap);
> >
> >+#define XENMEM_get_dma_buf 26
> >+/*
> >+ * This hypercall is similar to XENMEM_exchange: it exchanges the
> >pages
>
> Could you elaborate why the existing hyper call won't work?

Two reasons:

- the existing XENMEM_exchange hypercall does not copy back the mfns
into the out field for autotranslate guests;

- the existing XENMEM_exchange hypercall does not guarantee that the
hypervisor won't change the p2m mappings for the exchanged pages while
the guest is using them. Keep in mind that Xen never promises to keep
the p2m mapping stable for autotranslate guests in general.
In practice it won't happen unless you use uncommon features like memory
sharing or paging.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/