[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] xen: use native disk xenbus protocol if possible
On Wed, 29 Jun 2016, Anthony PERARD wrote: > On Wed, Jun 29, 2016 at 05:50:48PM +0200, Juergen Gross wrote: > > The qdisk implementation is using the native xenbus protocol only in > > case of no protocol specified at all. As using the explicit 32- or > > 64-bit protocol is slower than the native one due to copying requests > > not by memcpy but element for element, this is not optimal. > > > > Correct this by using the native protocol in case word sizes of > > frontend and backend match. > > > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> > > Reviewed-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Added to my queue > > --- > > V2: use native protocol in case of unknown protocol specified as > > requested by Anthony Perard > > --- > > hw/block/xen_disk.c | 18 ++++++++++-------- > > 1 file changed, 10 insertions(+), 8 deletions(-) > > > > diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c > > index 90aca73..d0aae67 100644 > > --- a/hw/block/xen_disk.c > > +++ b/hw/block/xen_disk.c > > @@ -975,14 +975,16 @@ static int blk_connect(struct XenDevice *xendev) > > blkdev->feature_persistent = !!pers; > > } > > > > - blkdev->protocol = BLKIF_PROTOCOL_NATIVE; > > - if (blkdev->xendev.protocol) { > > - if (strcmp(blkdev->xendev.protocol, XEN_IO_PROTO_ABI_X86_32) == 0) > > { > > - blkdev->protocol = BLKIF_PROTOCOL_X86_32; > > - } > > - if (strcmp(blkdev->xendev.protocol, XEN_IO_PROTO_ABI_X86_64) == 0) > > { > > - blkdev->protocol = BLKIF_PROTOCOL_X86_64; > > - } > > + if (!blkdev->xendev.protocol) { > > + blkdev->protocol = BLKIF_PROTOCOL_NATIVE; > > + } else if (strcmp(blkdev->xendev.protocol, XEN_IO_PROTO_ABI_NATIVE) == > > 0) { > > + blkdev->protocol = BLKIF_PROTOCOL_NATIVE; > > + } else if (strcmp(blkdev->xendev.protocol, XEN_IO_PROTO_ABI_X86_32) == > > 0) { > > + blkdev->protocol = BLKIF_PROTOCOL_X86_32; > > + } else if (strcmp(blkdev->xendev.protocol, XEN_IO_PROTO_ABI_X86_64) == > > 0) { > > + blkdev->protocol = BLKIF_PROTOCOL_X86_64; > > + } else { > > + blkdev->protocol = BLKIF_PROTOCOL_NATIVE; > > } > > > > blkdev->sring = xengnttab_map_grant_ref(blkdev->xendev.gnttabdev, > > -- > > 2.6.6 > > > > -- > Anthony PERARD > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |