From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:32866) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fIwp2-0002Au-Kb for qemu-devel@nongnu.org; Wed, 16 May 2018 09:50:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fIwoz-0002Sl-IN for qemu-devel@nongnu.org; Wed, 16 May 2018 09:50:28 -0400 Received: from smtp03.citrix.com ([162.221.156.55]:16139) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fIwoz-0002Rk-7p for qemu-devel@nongnu.org; Wed, 16 May 2018 09:50:25 -0400 Date: Wed, 16 May 2018 14:50:20 +0100 From: Anthony PERARD Message-ID: <20180516135020.GF2057@perard.uk.xensource.com> References: <1525461967-32174-1-git-send-email-paul.durrant@citrix.com> <1525461967-32174-2-git-send-email-paul.durrant@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1525461967-32174-2-git-send-email-paul.durrant@citrix.com> Subject: Re: [Qemu-devel] [PATCH v3 1/8] xen_backend: add grant table helpers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Durrant Cc: xen-devel@lists.xenproject.org, qemu-block@nongnu.org, qemu-devel@nongnu.org, Stefano Stabellini On Fri, May 04, 2018 at 08:26:00PM +0100, Paul Durrant wrote: > This patch adds grant table helper functions to the xen_backend code to > localize error reporting and use of xen_domid. > > The patch also defers the call to xengnttab_open() until just before the > initialise method in XenDevOps is invoked. This method is responsible for > mapping the shared ring. No prior method requires access to the grant table. > > Signed-off-by: Paul Durrant > --- > Cc: Stefano Stabellini > Cc: Anthony Perard > > v2: > - New in v2 > --- > hw/xen/xen_backend.c | 123 ++++++++++++++++++++++++++++++++++++++----- > include/hw/xen/xen_backend.h | 33 ++++++++++++ > 2 files changed, 144 insertions(+), 12 deletions(-) > > diff --git a/hw/xen/xen_backend.c b/hw/xen/xen_backend.c > index 7445b50..50412d6 100644 > --- a/hw/xen/xen_backend.c > +++ b/hw/xen/xen_backend.c > @@ -106,6 +106,103 @@ int xen_be_set_state(struct XenDevice *xendev, enum xenbus_state state) > return 0; > } > > +void xen_be_set_max_grant_refs(struct XenDevice *xendev, > + unsigned int nr_refs) Is it fine to ignore error from set_max_grants and continue ? xen_disk.c seems to fail the initialisation if set_max_grants call fails. On the other end, xen-usb.c just keep going. > +{ > + assert(xendev->ops->flags & DEVOPS_FLAG_NEED_GNTDEV); > + > + if (xengnttab_set_max_grants(xendev->gnttabdev, nr_refs)) { > + xen_pv_printf(xendev, 0, "xengnttab_set_max_grants failed: %s\n", > + strerror(errno)); > + } > +} > + > +int xen_be_copy_grant_refs(struct XenDevice *xendev, > + bool to_domain, > + XenGrantCopySegment segs[], > + unsigned int nr_segs) > +{ > + xengnttab_grant_copy_segment_t *xengnttab_segs; > + unsigned int i; > + int rc; > + > + assert(xendev->ops->flags & DEVOPS_FLAG_NEED_GNTDEV); > + > + xengnttab_segs = g_new0(xengnttab_grant_copy_segment_t, nr_segs); > + > + for (i = 0; i < nr_segs; i++) { > + XenGrantCopySegment *seg = &segs[i]; > + xengnttab_grant_copy_segment_t *xengnttab_seg = &xengnttab_segs[i]; > + > + if (to_domain) { > + xengnttab_seg->flags = GNTCOPY_dest_gref; > + xengnttab_seg->dest.foreign.domid = xen_domid; > + xengnttab_seg->dest.foreign.ref = seg->dest.foreign.ref; > + xengnttab_seg->dest.foreign.offset = seg->dest.foreign.offset; > + xengnttab_seg->source.virt = seg->source.virt; > + } else { > + xengnttab_seg->flags = GNTCOPY_source_gref; > + xengnttab_seg->source.foreign.domid = xen_domid; > + xengnttab_seg->source.foreign.ref = seg->source.foreign.ref; > + xengnttab_seg->source.foreign.offset = > + seg->source.foreign.offset; > + xengnttab_seg->dest.virt = seg->dest.virt; > + } That's not going to work because xengnttab_grant_copy_segment_t doesn't exist on Xen 4.7. > + > + xengnttab_seg->len = seg->len; > + } > + > + rc = xengnttab_grant_copy(xendev->gnttabdev, nr_segs, xengnttab_segs); Thanks, -- Anthony PERARD From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: Re: [PATCH v3 1/8] xen_backend: add grant table helpers Date: Wed, 16 May 2018 14:50:20 +0100 Message-ID: <20180516135020.GF2057@perard.uk.xensource.com> References: <1525461967-32174-1-git-send-email-paul.durrant@citrix.com> <1525461967-32174-2-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fIwoz-0003Um-B5 for xen-devel@lists.xenproject.org; Wed, 16 May 2018 13:50:25 +0000 Content-Disposition: inline In-Reply-To: <1525461967-32174-2-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Paul Durrant Cc: xen-devel@lists.xenproject.org, Stefano Stabellini , qemu-devel@nongnu.org, qemu-block@nongnu.org List-Id: xen-devel@lists.xenproject.org T24gRnJpLCBNYXkgMDQsIDIwMTggYXQgMDg6MjY6MDBQTSArMDEwMCwgUGF1bCBEdXJyYW50IHdy b3RlOgo+IFRoaXMgcGF0Y2ggYWRkcyBncmFudCB0YWJsZSBoZWxwZXIgZnVuY3Rpb25zIHRvIHRo ZSB4ZW5fYmFja2VuZCBjb2RlIHRvCj4gbG9jYWxpemUgZXJyb3IgcmVwb3J0aW5nIGFuZCB1c2Ug b2YgeGVuX2RvbWlkLgo+IAo+IFRoZSBwYXRjaCBhbHNvIGRlZmVycyB0aGUgY2FsbCB0byB4ZW5n bnR0YWJfb3BlbigpIHVudGlsIGp1c3QgYmVmb3JlIHRoZQo+IGluaXRpYWxpc2UgbWV0aG9kIGlu IFhlbkRldk9wcyBpcyBpbnZva2VkLiBUaGlzIG1ldGhvZCBpcyByZXNwb25zaWJsZSBmb3IKPiBt YXBwaW5nIHRoZSBzaGFyZWQgcmluZy4gTm8gcHJpb3IgbWV0aG9kIHJlcXVpcmVzIGFjY2VzcyB0 byB0aGUgZ3JhbnQgdGFibGUuCj4gCj4gU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVs LmR1cnJhbnRAY2l0cml4LmNvbT4KPiAtLS0KPiBDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3Rh YmVsbGluaUBrZXJuZWwub3JnPgo+IENjOiBBbnRob255IFBlcmFyZCA8YW50aG9ueS5wZXJhcmRA Y2l0cml4LmNvbT4KPiAKPiB2MjoKPiAgLSBOZXcgaW4gdjIKPiAtLS0KPiAgaHcveGVuL3hlbl9i YWNrZW5kLmMgICAgICAgICB8IDEyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tCj4gIGluY2x1ZGUvaHcveGVuL3hlbl9iYWNrZW5kLmggfCAgMzMgKysrKysrKysr KysrCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9ody94ZW4veGVuX2JhY2tlbmQuYyBiL2h3L3hlbi94ZW5fYmFj a2VuZC5jCj4gaW5kZXggNzQ0NWI1MC4uNTA0MTJkNiAxMDA2NDQKPiAtLS0gYS9ody94ZW4veGVu X2JhY2tlbmQuYwo+ICsrKyBiL2h3L3hlbi94ZW5fYmFja2VuZC5jCj4gQEAgLTEwNiw2ICsxMDYs MTAzIEBAIGludCB4ZW5fYmVfc2V0X3N0YXRlKHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldiwgZW51 bSB4ZW5idXNfc3RhdGUgc3RhdGUpCj4gICAgICByZXR1cm4gMDsKPiAgfQo+ICAKPiArdm9pZCB4 ZW5fYmVfc2V0X21heF9ncmFudF9yZWZzKHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldiwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBucl9yZWZzKQoKSXMgaXQg ZmluZSB0byBpZ25vcmUgZXJyb3IgZnJvbSBzZXRfbWF4X2dyYW50cyBhbmQgY29udGludWUgPyB4 ZW5fZGlzay5jCnNlZW1zIHRvIGZhaWwgdGhlIGluaXRpYWxpc2F0aW9uIGlmIHNldF9tYXhfZ3Jh bnRzIGNhbGwgZmFpbHMuIE9uIHRoZQpvdGhlciBlbmQsIHhlbi11c2IuYyBqdXN0IGtlZXAgZ29p bmcuCgo+ICt7Cj4gKyAgICBhc3NlcnQoeGVuZGV2LT5vcHMtPmZsYWdzICYgREVWT1BTX0ZMQUdf TkVFRF9HTlRERVYpOwo+ICsKPiArICAgIGlmICh4ZW5nbnR0YWJfc2V0X21heF9ncmFudHMoeGVu ZGV2LT5nbnR0YWJkZXYsIG5yX3JlZnMpKSB7Cj4gKyAgICAgICAgeGVuX3B2X3ByaW50Zih4ZW5k ZXYsIDAsICJ4ZW5nbnR0YWJfc2V0X21heF9ncmFudHMgZmFpbGVkOiAlc1xuIiwKPiArICAgICAg ICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7Cj4gKyAgICB9Cj4gK30KPiArCgo+ICtp bnQgeGVuX2JlX2NvcHlfZ3JhbnRfcmVmcyhzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgdG9fZG9tYWluLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICBYZW5HcmFudENvcHlTZWdtZW50IHNlZ3NbXSwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX3NlZ3MpCj4gK3sKPiArICAgIHhlbmdudHRh Yl9ncmFudF9jb3B5X3NlZ21lbnRfdCAqeGVuZ250dGFiX3NlZ3M7Cj4gKyAgICB1bnNpZ25lZCBp bnQgaTsKPiArICAgIGludCByYzsKPiArCj4gKyAgICBhc3NlcnQoeGVuZGV2LT5vcHMtPmZsYWdz ICYgREVWT1BTX0ZMQUdfTkVFRF9HTlRERVYpOwo+ICsKPiArICAgIHhlbmdudHRhYl9zZWdzID0g Z19uZXcwKHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCwgbnJfc2Vncyk7Cj4gKwo+ICsg ICAgZm9yIChpID0gMDsgaSA8IG5yX3NlZ3M7IGkrKykgewo+ICsgICAgICAgIFhlbkdyYW50Q29w eVNlZ21lbnQgKnNlZyA9ICZzZWdzW2ldOwo+ICsgICAgICAgIHhlbmdudHRhYl9ncmFudF9jb3B5 X3NlZ21lbnRfdCAqeGVuZ250dGFiX3NlZyA9ICZ4ZW5nbnR0YWJfc2Vnc1tpXTsKPiArCj4gKyAg ICAgICAgaWYgKHRvX2RvbWFpbikgewo+ICsgICAgICAgICAgICB4ZW5nbnR0YWJfc2VnLT5mbGFn cyA9IEdOVENPUFlfZGVzdF9ncmVmOwo+ICsgICAgICAgICAgICB4ZW5nbnR0YWJfc2VnLT5kZXN0 LmZvcmVpZ24uZG9taWQgPSB4ZW5fZG9taWQ7Cj4gKyAgICAgICAgICAgIHhlbmdudHRhYl9zZWct PmRlc3QuZm9yZWlnbi5yZWYgPSBzZWctPmRlc3QuZm9yZWlnbi5yZWY7Cj4gKyAgICAgICAgICAg IHhlbmdudHRhYl9zZWctPmRlc3QuZm9yZWlnbi5vZmZzZXQgPSBzZWctPmRlc3QuZm9yZWlnbi5v ZmZzZXQ7Cj4gKyAgICAgICAgICAgIHhlbmdudHRhYl9zZWctPnNvdXJjZS52aXJ0ID0gc2VnLT5z b3VyY2UudmlydDsKPiArICAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICB4ZW5nbnR0YWJf c2VnLT5mbGFncyA9IEdOVENPUFlfc291cmNlX2dyZWY7Cj4gKyAgICAgICAgICAgIHhlbmdudHRh Yl9zZWctPnNvdXJjZS5mb3JlaWduLmRvbWlkID0geGVuX2RvbWlkOwo+ICsgICAgICAgICAgICB4 ZW5nbnR0YWJfc2VnLT5zb3VyY2UuZm9yZWlnbi5yZWYgPSBzZWctPnNvdXJjZS5mb3JlaWduLnJl ZjsKPiArICAgICAgICAgICAgeGVuZ250dGFiX3NlZy0+c291cmNlLmZvcmVpZ24ub2Zmc2V0ID0K PiArICAgICAgICAgICAgICAgIHNlZy0+c291cmNlLmZvcmVpZ24ub2Zmc2V0Owo+ICsgICAgICAg ICAgICB4ZW5nbnR0YWJfc2VnLT5kZXN0LnZpcnQgPSBzZWctPmRlc3QudmlydDsKPiArICAgICAg ICB9CgpUaGF0J3Mgbm90IGdvaW5nIHRvIHdvcmsgYmVjYXVzZSB4ZW5nbnR0YWJfZ3JhbnRfY29w eV9zZWdtZW50X3QgZG9lc24ndApleGlzdCBvbiBYZW4gNC43LgoKPiArCj4gKyAgICAgICAgeGVu Z250dGFiX3NlZy0+bGVuID0gc2VnLT5sZW47Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmMgPSB4ZW5n bnR0YWJfZ3JhbnRfY29weSh4ZW5kZXYtPmdudHRhYmRldiwgbnJfc2VncywgeGVuZ250dGFiX3Nl Z3MpOwoKVGhhbmtzLAoKLS0gCkFudGhvbnkgUEVSQVJECgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs