[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 6/8] ioreq-server: remove p2m entries when server is enabled
On Wed, 2014-04-02 at 16:11 +0100, Paul Durrant wrote: > For secondary servers, add a hvm op to enable/disable the server. The > server will not accept IO until it is enabled and the act of enabling > the server removes its pages from the guest p2m, thus preventing the guest > from directly mapping the pages and synthesizing ioreqs. > > Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> > Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> > Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > Cc: Ian Campbell <ian.campbell@xxxxxxxxxx> > Cc: Jan Beulich <jbeulich@xxxxxxxx> > --- > tools/libxc/xc_domain.c | 24 ++++++++ > tools/libxc/xenctrl.h | 5 ++ > xen/arch/x86/hvm/hvm.c | 115 > +++++++++++++++++++++++++++++++++++++- > xen/include/asm-x86/hvm/domain.h | 1 + > xen/include/public/hvm/hvm_op.h | 33 +++++++---- > 5 files changed, 164 insertions(+), 14 deletions(-) > > diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c > index 8cec171..67829c5 100644 > --- a/tools/libxc/xc_domain.c > +++ b/tools/libxc/xc_domain.c > @@ -1459,6 +1459,30 @@ int xc_hvm_destroy_ioreq_server(xc_interface *xch, > return rc; > } > > +int xc_hvm_set_ioreq_server_state(xc_interface *xch, > + domid_t domid, > + ioservid_t id, > + int enabled) > +{ > + DECLARE_HYPERCALL; > + DECLARE_HYPERCALL_BUFFER(xen_hvm_set_ioreq_server_state_t, arg); > + int rc; > + > + arg = xc_hypercall_buffer_alloc(xch, arg, sizeof(*arg)); > + if ( arg == NULL ) > + return -1; > + > + hypercall.op = __HYPERVISOR_hvm_op; > + hypercall.arg[0] = HVMOP_set_ioreq_server_state; > + hypercall.arg[1] = HYPERCALL_BUFFER_AS_ARG(arg); > + arg->domid = domid; > + arg->id = id; > + arg->enabled = enabled; > + rc = do_xen_hypercall(xch, &hypercall); > + xc_hypercall_buffer_free(xch, arg); > + return rc; > +} Newlines for clarity please. I'm not really looking at the actual interface here. I'm assuming they are a pretty straight exposure of the underlying hypercall and relying on the hypervisor guys to agree that is a sane interface. > diff --git a/xen/include/public/hvm/hvm_op.h b/xen/include/public/hvm/hvm_op.h > index c6ceea5..a39290e 100644 > --- a/xen/include/public/hvm/hvm_op.h > +++ b/xen/include/public/hvm/hvm_op.h > @@ -296,10 +296,10 @@ > DEFINE_XEN_GUEST_HANDLE(xen_hvm_get_ioreq_server_info_t); > > #define HVMOP_map_io_range_to_ioreq_server 19 > struct xen_hvm_map_io_range_to_ioreq_server { > - domid_t domid; /* IN - domain to be serviced */ > - ioservid_t id; /* IN - handle from > HVMOP_register_ioreq_server */ > - int is_mmio; /* IN - MMIO or port IO? */ > - uint64_aligned_t start, end; /* IN - inclusive start and end of range > */ > + domid_t domid; /* IN - domain to be serviced */ > + ioservid_t id; /* IN - handle from > HVMOP_register_ioreq_server */ > + int is_mmio; /* IN - MMIO or port IO? */ > + uint64_aligned_t start, end; /* IN - inclusive start and end of range */ There seems to be a lot of gratuitous whitespace changes in this patch. Shouldn't most of these be folded into the previous patch which introduced things so that happens with the correct indentation? Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |