From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752852AbdCHMep (ORCPT ); Wed, 8 Mar 2017 07:34:45 -0500 Received: from foss.arm.com ([217.140.101.70]:58814 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752157AbdCHMen (ORCPT ); Wed, 8 Mar 2017 07:34:43 -0500 Subject: Re: [Xen-devel] [PATCH 4/7] xen/9pfs: connect to the backend To: Stefano Stabellini References: <1488830488-18506-1-git-send-email-sstabellini@kernel.org> <1488830488-18506-4-git-send-email-sstabellini@kernel.org> Cc: xen-devel@lists.xenproject.org, jgross@suse.com, Latchesar Ionkov , Eric Van Hensbergen , linux-kernel@vger.kernel.org, Stefano Stabellini , v9fs-developer@lists.sourceforge.net, Ron Minnich , boris.ostrovsky@oracle.com From: Julien Grall Message-ID: <28e5fcdb-8943-d059-ae9b-d1a73e40297f@arm.com> Date: Wed, 8 Mar 2017 12:25:37 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Stefano, On 08/03/17 00:49, Stefano Stabellini wrote: > On Tue, 7 Mar 2017, Julien Grall wrote: >> On 03/06/2017 08:01 PM, Stefano Stabellini wrote: >>> + if (ring->bytes == NULL) >>> + goto error; >>> + for (i = 0; i < (1 << XEN_9PFS_RING_ORDER); i++) >>> + ring->intf->ref[i] = >>> gnttab_grant_foreign_access(dev->otherend_id, >>> pfn_to_gfn(virt_to_pfn((void*)ring->bytes) + i), 0);. >> >> Please use virt_to_gfn rather than pfn_to_gfn(virt_to_pfn). > > OK > > >> Also, this is not going to work on 64K kernel because you will grant access to >> noncontiguous memory (e.g 0-4K, 64K-68K,...). > > By using virt_to_gfn like you suggested, the loop will correctly iterate > on a 4K by 4K basis, even on a 64K kernel: > > ring->bytes = (void*)__get_free_pages(GFP_KERNEL | __GFP_ZERO, > XEN_9PFS_RING_ORDER - (PAGE_SHIFT - XEN_PAGE_SHIFT)); > for (i = 0; i < (1 << XEN_9PFS_RING_ORDER); i++) > ring->intf->ref[i] = gnttab_grant_foreign_access(dev->otherend_id, virt_to_gfn((void*)ring->bytes) + i, 0); BTW, the cast (void *) is not necessary. > > where XEN_9PFS_RING_ORDER specifies the order at 4K granularity. Am I > missing something? I think it is fine. You could move virt_to_gfn(...) outside and avoid to do the translation everytime. Cheers, -- Julien Grall From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH 4/7] xen/9pfs: connect to the backend Date: Wed, 8 Mar 2017 12:25:37 +0000 Message-ID: <28e5fcdb-8943-d059-ae9b-d1a73e40297f@arm.com> References: <1488830488-18506-1-git-send-email-sstabellini@kernel.org> <1488830488-18506-4-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1claf0-00006t-LM for xen-devel@lists.xenproject.org; Wed, 08 Mar 2017 12:25:42 +0000 In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Stefano Stabellini Cc: jgross@suse.com, Latchesar Ionkov , Ron Minnich , Eric Van Hensbergen , linux-kernel@vger.kernel.org, Stefano Stabellini , v9fs-developer@lists.sourceforge.net, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com List-Id: xen-devel@lists.xenproject.org SGkgU3RlZmFubywKCk9uIDA4LzAzLzE3IDAwOjQ5LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6 Cj4gT24gVHVlLCA3IE1hciAyMDE3LCBKdWxpZW4gR3JhbGwgd3JvdGU6Cj4+IE9uIDAzLzA2LzIw MTcgMDg6MDEgUE0sIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToKPj4+ICsJaWYgKHJpbmctPmJ5 dGVzID09IE5VTEwpCj4+PiArCQlnb3RvIGVycm9yOwo+Pj4gKwlmb3IgKGkgPSAwOyBpIDwgKDEg PDwgWEVOXzlQRlNfUklOR19PUkRFUik7IGkrKykKPj4+ICsJCXJpbmctPmludGYtPnJlZltpXSA9 Cj4+PiBnbnR0YWJfZ3JhbnRfZm9yZWlnbl9hY2Nlc3MoZGV2LT5vdGhlcmVuZF9pZCwKPj4+IHBm bl90b19nZm4odmlydF90b19wZm4oKHZvaWQqKXJpbmctPmJ5dGVzKSArIGkpLCAwKTsuCj4+Cj4+ IFBsZWFzZSB1c2UgdmlydF90b19nZm4gcmF0aGVyIHRoYW4gcGZuX3RvX2dmbih2aXJ0X3RvX3Bm bikuCj4KPiBPSwo+Cj4KPj4gQWxzbywgdGhpcyBpcyBub3QgZ29pbmcgdG8gd29yayBvbiA2NEsg a2VybmVsIGJlY2F1c2UgeW91IHdpbGwgZ3JhbnQgYWNjZXNzIHRvCj4+IG5vbmNvbnRpZ3VvdXMg bWVtb3J5IChlLmcgMC00SywgNjRLLTY4SywuLi4pLgo+Cj4gQnkgdXNpbmcgdmlydF90b19nZm4g bGlrZSB5b3Ugc3VnZ2VzdGVkLCB0aGUgbG9vcCB3aWxsIGNvcnJlY3RseSBpdGVyYXRlCj4gb24g YSA0SyBieSA0SyBiYXNpcywgZXZlbiBvbiBhIDY0SyBrZXJuZWw6Cj4KPiAgIHJpbmctPmJ5dGVz ID0gKHZvaWQqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8sCj4gICAg ICAgICAgIFhFTl85UEZTX1JJTkdfT1JERVIgLSAoUEFHRV9TSElGVCAtIFhFTl9QQUdFX1NISUZU KSk7Cj4gICBmb3IgKGkgPSAwOyBpIDwgKDEgPDwgWEVOXzlQRlNfUklOR19PUkRFUik7IGkrKykK PiAgICAgICByaW5nLT5pbnRmLT5yZWZbaV0gPSBnbnR0YWJfZ3JhbnRfZm9yZWlnbl9hY2Nlc3Mo ZGV2LT5vdGhlcmVuZF9pZCwgdmlydF90b19nZm4oKHZvaWQqKXJpbmctPmJ5dGVzKSArIGksIDAp OwoKQlRXLCB0aGUgY2FzdCAodm9pZCAqKSBpcyBub3QgbmVjZXNzYXJ5LgoKPgo+IHdoZXJlIFhF Tl85UEZTX1JJTkdfT1JERVIgc3BlY2lmaWVzIHRoZSBvcmRlciBhdCA0SyBncmFudWxhcml0eS4g QW0gSQo+IG1pc3Npbmcgc29tZXRoaW5nPwoKSSB0aGluayBpdCBpcyBmaW5lLiBZb3UgY291bGQg bW92ZSB2aXJ0X3RvX2dmbiguLi4pIG91dHNpZGUgYW5kIGF2b2lkIHRvIApkbyB0aGUgdHJhbnNs YXRpb24gZXZlcnl0aW1lLgoKQ2hlZXJzLAoKLS0gCkp1bGllbiBHcmFsbAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==