[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v3 1/2] Differentiate IO/mem resources tracked by ioreq server



> -----Original Message-----
> From: Wei Liu [mailto:wei.liu2@xxxxxxxxxx]
> Sent: 10 August 2015 09:26
> To: Yu Zhang
> Cc: xen-devel@xxxxxxxxxxxxx; Paul Durrant; Ian Jackson; Stefano Stabellini; 
> Ian
> Campbell; Wei Liu; Keir (Xen.org); jbeulich@xxxxxxxx; Andrew Cooper;
> Kevin Tian; zhiyuan.lv@xxxxxxxxx
> Subject: Re: [PATCH v3 1/2] Differentiate IO/mem resources tracked by ioreq
> server
> 
> On Mon, Aug 10, 2015 at 11:33:40AM +0800, Yu Zhang wrote:
> > Currently in ioreq server, guest write-protected ram pages are
> > tracked in the same rangeset with device mmio resources. Yet
> > unlike device mmio, which can be in big chunks, the guest write-
> > protected pages may be discrete ranges with 4K bytes each.
> >
> > This patch uses a seperate rangeset for the guest ram pages.
> > And a new ioreq type, IOREQ_TYPE_MEM, is defined.
> >
> > Note: Previously, a new hypercall or subop was suggested to map
> > write-protected pages into ioreq server. However, it turned out
> > handler of this new hypercall would be almost the same with the
> > existing pair - HVMOP_[un]map_io_range_to_ioreq_server, and there's
> > already a type parameter in this hypercall. So no new hypercall
> > defined, only a new type is introduced.
> >
> > Signed-off-by: Yu Zhang <yu.c.zhang@xxxxxxxxxxxxxxx>
> > ---
> >  tools/libxc/include/xenctrl.h    | 39 +++++++++++++++++++++++---
> >  tools/libxc/xc_domain.c          | 59
> ++++++++++++++++++++++++++++++++++++++--
> 
> FWIW the hypercall wrappers look correct to me.
> 
> > diff --git a/xen/include/public/hvm/hvm_op.h
> b/xen/include/public/hvm/hvm_op.h
> > index 014546a..9106cb9 100644
> > --- a/xen/include/public/hvm/hvm_op.h
> > +++ b/xen/include/public/hvm/hvm_op.h
> > @@ -329,8 +329,9 @@ struct xen_hvm_io_range {
> >      ioservid_t id;               /* IN - server id */
> >      uint32_t type;               /* IN - type of range */
> >  # define HVMOP_IO_RANGE_PORT   0 /* I/O port range */
> > -# define HVMOP_IO_RANGE_MEMORY 1 /* MMIO range */
> > +# define HVMOP_IO_RANGE_MMIO   1 /* MMIO range */
> >  # define HVMOP_IO_RANGE_PCI    2 /* PCI segment/bus/dev/func range
> */
> > +# define HVMOP_IO_RANGE_MEMORY 3 /* MEMORY range */
> 
> This looks problematic. Maybe you can get away with this because this is
> a toolstack-only interface?
> 

Indeed, the old name is a bit problematic. Presumably re-use like this would 
require an interface version change and some if-defery.

  Paul

> Wei.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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