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

Re: [Xen-devel] [PATCH] xenbus_client: extend interface to suppurt multi-page ring



On Tue, Aug 27, 2013 at 10:12:07AM -0400, Konrad Rzeszutek Wilk wrote:
> On Tue, Aug 27, 2013 at 09:25:42AM +0100, Wei Liu wrote:
> > On Tue, Aug 27, 2013 at 09:23:24AM +0100, Ian Campbell wrote:
> > > On Fri, 2013-08-23 at 23:27 +0100, Wei Liu wrote:
> > > > Originally Xen PV drivers only use single-page ring to pass along
> > > > information. This might limit the throughput between frontend and
> > > > backend.
> > > > 
> > > > The patch extends Xenbus driver to support multi-page ring, which in
> > > > general should improve throughput if ring is the bottleneck. Changes to
> > > > various frontend / backend to adapt to the new interface are also
> > > > included.
> > > 
> > > The changes to the front/backends here simply adapt to the new interface
> > > but don't actually make use of it, right?
> > > 
> > 
> > No, they don't.
> 
> I think the scsi front or usb front (in a different branch) did use it.
> That is why I remember seeing something similar to this.
> 

Oh, those are not upstreamed.

> Either way, I am comfortable putting this in - will make it easier for
> folks to experiement with enlarging the ring.
> > 

Right. I will post another version when I collect enough comments...

Wei.

> > > > @@ -196,15 +200,18 @@ int xenbus_watch_pathfmt(struct xenbus_device 
> > > > *dev, struct xenbus_watch *watch,
> > > >                          const char *pathfmt, ...);
> > > >  
> > > >  int xenbus_switch_state(struct xenbus_device *dev, enum xenbus_state 
> > > > new_state);
> > > > -int xenbus_grant_ring(struct xenbus_device *dev, unsigned long 
> > > > ring_mfn);
> > > > -int xenbus_map_ring_valloc(struct xenbus_device *dev,
> > > > -                          int gnt_ref, void **vaddr);
> > > > -int xenbus_map_ring(struct xenbus_device *dev, int gnt_ref,
> > > > -                          grant_handle_t *handle, void *vaddr);
> > > > +int xenbus_grant_ring(struct xenbus_device *dev, void *vaddr,
> > > > +                     unsigned int nr_pages, grant_ref_t *grefs);
> > > > +int xenbus_map_ring_valloc(struct xenbus_device *dev, grant_ref_t 
> > > > *gnt_refs,
> > > > +                          unsigned int nr_grefs, void **vaddr);
> > > 
> > > In the definition nr_grefs is called grefs_order. From the usage I think
> > > the definition and not this prototype is correct.
> > > 
> > 
> > Good catch, thanks.
> > 
> > Wei.
> > 
> > > Ian.
> > 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxx
> > http://lists.xen.org/xen-devel

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