From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.5 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98E5EC433E0 for ; Wed, 12 Aug 2020 07:29:30 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 70EB320768 for ; Wed, 12 Aug 2020 07:29:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 70EB320768 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5lBq-0003Lt-Or; Wed, 12 Aug 2020 07:28:50 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5lBp-0003Lo-Eh for xen-devel@lists.xenproject.org; Wed, 12 Aug 2020 07:28:49 +0000 X-Inumbo-ID: 8fd9afc8-ceab-40d5-9ab3-174fa7d63d9f Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 8fd9afc8-ceab-40d5-9ab3-174fa7d63d9f; Wed, 12 Aug 2020 07:28:48 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 82F8FB1EE; Wed, 12 Aug 2020 07:29:08 +0000 (UTC) Subject: Re: [PATCH v4 2/2] xen: add helpers to allocate unpopulated memory To: Roger Pau Monne , linux-kernel@vger.kernel.org References: <20200811094447.31208-1-roger.pau@citrix.com> <20200811094447.31208-3-roger.pau@citrix.com> From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= Message-ID: <7c9a25fa-c52c-66d2-3b03-14a59e069ab6@suse.com> Date: Wed, 12 Aug 2020 09:28:45 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200811094447.31208-3-roger.pau@citrix.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Wei Liu , Oleksandr Andrushchenko , David Airlie , Yan Yankovskyi , David Hildenbrand , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Daniel Vetter , xen-devel@lists.xenproject.org, Boris Ostrovsky , Dan Williams , Dan Carpenter Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" On 11.08.20 11:44, Roger Pau Monne wrote: > To be used in order to create foreign mappings. This is based on the > ZONE_DEVICE facility which is used by persistent memory devices in > order to create struct pages and kernel virtual mappings for the IOMEM > areas of such devices. Note that on kernels without support for > ZONE_DEVICE Xen will fallback to use ballooned pages in order to > create foreign mappings. > > The newly added helpers use the same parameters as the existing > {alloc/free}_xenballooned_pages functions, which allows for in-place > replacement of the callers. Once a memory region has been added to be > used as scratch mapping space it will no longer be released, and pages > returned are kept in a linked list. This allows to have a buffer of > pages and prevents resorting to frequent additions and removals of > regions. > > If enabled (because ZONE_DEVICE is supported) the usage of the new > functionality untangles Xen balloon and RAM hotplug from the usage of > unpopulated physical memory ranges to map foreign pages, which is the > correct thing to do in order to avoid mappings of foreign pages depend > on memory hotplug. > > Note the driver is currently not enabled on Arm platforms because it > would interfere with the identity mapping required on some platforms. > > Signed-off-by: Roger Pau Monné > --- > Cc: Oleksandr Andrushchenko > Cc: David Airlie > Cc: Daniel Vetter > Cc: Boris Ostrovsky > Cc: Juergen Gross > Cc: Stefano Stabellini > Cc: Dan Carpenter > Cc: Roger Pau Monne > Cc: Wei Liu > Cc: Yan Yankovskyi > Cc: dri-devel@lists.freedesktop.org > Cc: xen-devel@lists.xenproject.org > Cc: linux-mm@kvack.org > Cc: David Hildenbrand > Cc: Michal Hocko > Cc: Dan Williams > --- > Changes since v3: > - Introduce a Kconfig option that gates the addition of the > unpopulated alloc driver. This allows to easily disable it on Arm > platforms. > - Dropped Juergen RB due to the addition of the Kconfig option. > - Switched from MEMORY_DEVICE_DEVDAX to MEMORY_DEVICE_GENERIC. > > Changes since v2: > - Drop BUILD_BUG_ON regarding PVMMU page sizes. > - Use a SPDX license identifier. > - Call fill with only the minimum required number of pages. > - Include xen.h header in xen_drm_front_gem.c. > - Use less generic function names. > - Exit early from the init function if not a PV guest. > - Don't use all caps for region name. > --- > drivers/gpu/drm/xen/xen_drm_front_gem.c | 9 +- > drivers/xen/Kconfig | 4 + > drivers/xen/Makefile | 1 + > drivers/xen/balloon.c | 4 +- > drivers/xen/grant-table.c | 4 +- > drivers/xen/privcmd.c | 4 +- > drivers/xen/unpopulated-alloc.c | 185 ++++++++++++++++++++++++ > drivers/xen/xenbus/xenbus_client.c | 6 +- > drivers/xen/xlate_mmu.c | 4 +- > include/xen/xen.h | 9 ++ > 10 files changed, 215 insertions(+), 15 deletions(-) > create mode 100644 drivers/xen/unpopulated-alloc.c > > diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig > index 1d339ef92422..018020b91baa 100644 > --- a/drivers/xen/Kconfig > +++ b/drivers/xen/Kconfig > @@ -327,4 +327,8 @@ config XEN_HAVE_VPMU > config XEN_FRONT_PGDIR_SHBUF > tristate > > +config XEN_UNPOPULATED_ALLOC > + bool > + default y if ZONE_DEVICE && !ARM && !ARM64 There is a current effort to enable Xen on RISC-V. Do we expect this option to be usable for this architecture? If yes, I'm fine with the exclusion of Arm, otherwise I'd opt for defaulting to yes only for X86. Either way you can have my: Reviewed-by: Juergen Gross Juergen From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.5 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5FAD4C433E3 for ; Wed, 12 Aug 2020 07:28:51 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3EFCB20786 for ; Wed, 12 Aug 2020 07:28:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3EFCB20786 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2AD5E6E8BE; Wed, 12 Aug 2020 07:28:50 +0000 (UTC) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8D7026E8BE for ; Wed, 12 Aug 2020 07:28:48 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 82F8FB1EE; Wed, 12 Aug 2020 07:29:08 +0000 (UTC) Subject: Re: [PATCH v4 2/2] xen: add helpers to allocate unpopulated memory To: Roger Pau Monne , linux-kernel@vger.kernel.org References: <20200811094447.31208-1-roger.pau@citrix.com> <20200811094447.31208-3-roger.pau@citrix.com> From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= Message-ID: <7c9a25fa-c52c-66d2-3b03-14a59e069ab6@suse.com> Date: Wed, 12 Aug 2020 09:28:45 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200811094447.31208-3-roger.pau@citrix.com> Content-Language: en-US X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Wei Liu , Oleksandr Andrushchenko , David Airlie , Yan Yankovskyi , David Hildenbrand , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, xen-devel@lists.xenproject.org, Boris Ostrovsky , Dan Williams , Dan Carpenter Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gMTEuMDguMjAgMTE6NDQsIFJvZ2VyIFBhdSBNb25uZSB3cm90ZToKPiBUbyBiZSB1c2VkIGlu IG9yZGVyIHRvIGNyZWF0ZSBmb3JlaWduIG1hcHBpbmdzLiBUaGlzIGlzIGJhc2VkIG9uIHRoZQo+ IFpPTkVfREVWSUNFIGZhY2lsaXR5IHdoaWNoIGlzIHVzZWQgYnkgcGVyc2lzdGVudCBtZW1vcnkg ZGV2aWNlcyBpbgo+IG9yZGVyIHRvIGNyZWF0ZSBzdHJ1Y3QgcGFnZXMgYW5kIGtlcm5lbCB2aXJ0 dWFsIG1hcHBpbmdzIGZvciB0aGUgSU9NRU0KPiBhcmVhcyBvZiBzdWNoIGRldmljZXMuIE5vdGUg dGhhdCBvbiBrZXJuZWxzIHdpdGhvdXQgc3VwcG9ydCBmb3IKPiBaT05FX0RFVklDRSBYZW4gd2ls bCBmYWxsYmFjayB0byB1c2UgYmFsbG9vbmVkIHBhZ2VzIGluIG9yZGVyIHRvCj4gY3JlYXRlIGZv cmVpZ24gbWFwcGluZ3MuCj4gCj4gVGhlIG5ld2x5IGFkZGVkIGhlbHBlcnMgdXNlIHRoZSBzYW1l IHBhcmFtZXRlcnMgYXMgdGhlIGV4aXN0aW5nCj4ge2FsbG9jL2ZyZWV9X3hlbmJhbGxvb25lZF9w YWdlcyBmdW5jdGlvbnMsIHdoaWNoIGFsbG93cyBmb3IgaW4tcGxhY2UKPiByZXBsYWNlbWVudCBv ZiB0aGUgY2FsbGVycy4gT25jZSBhIG1lbW9yeSByZWdpb24gaGFzIGJlZW4gYWRkZWQgdG8gYmUK PiB1c2VkIGFzIHNjcmF0Y2ggbWFwcGluZyBzcGFjZSBpdCB3aWxsIG5vIGxvbmdlciBiZSByZWxl YXNlZCwgYW5kIHBhZ2VzCj4gcmV0dXJuZWQgYXJlIGtlcHQgaW4gYSBsaW5rZWQgbGlzdC4gVGhp cyBhbGxvd3MgdG8gaGF2ZSBhIGJ1ZmZlciBvZgo+IHBhZ2VzIGFuZCBwcmV2ZW50cyByZXNvcnRp bmcgdG8gZnJlcXVlbnQgYWRkaXRpb25zIGFuZCByZW1vdmFscyBvZgo+IHJlZ2lvbnMuCj4gCj4g SWYgZW5hYmxlZCAoYmVjYXVzZSBaT05FX0RFVklDRSBpcyBzdXBwb3J0ZWQpIHRoZSB1c2FnZSBv ZiB0aGUgbmV3Cj4gZnVuY3Rpb25hbGl0eSB1bnRhbmdsZXMgWGVuIGJhbGxvb24gYW5kIFJBTSBo b3RwbHVnIGZyb20gdGhlIHVzYWdlIG9mCj4gdW5wb3B1bGF0ZWQgcGh5c2ljYWwgbWVtb3J5IHJh bmdlcyB0byBtYXAgZm9yZWlnbiBwYWdlcywgd2hpY2ggaXMgdGhlCj4gY29ycmVjdCB0aGluZyB0 byBkbyBpbiBvcmRlciB0byBhdm9pZCBtYXBwaW5ncyBvZiBmb3JlaWduIHBhZ2VzIGRlcGVuZAo+ IG9uIG1lbW9yeSBob3RwbHVnLgo+IAo+IE5vdGUgdGhlIGRyaXZlciBpcyBjdXJyZW50bHkgbm90 IGVuYWJsZWQgb24gQXJtIHBsYXRmb3JtcyBiZWNhdXNlIGl0Cj4gd291bGQgaW50ZXJmZXJlIHdp dGggdGhlIGlkZW50aXR5IG1hcHBpbmcgcmVxdWlyZWQgb24gc29tZSBwbGF0Zm9ybXMuCj4gCj4g U2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Cj4g LS0tCj4gQ2M6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5r b0BlcGFtLmNvbT4KPiBDYzogRGF2aWQgQWlybGllIDxhaXJsaWVkQGxpbnV4LmllPgo+IENjOiBE YW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+Cj4gQ2M6IEJvcmlzIE9zdHJvdnNreSA8Ym9y aXMub3N0cm92c2t5QG9yYWNsZS5jb20+Cj4gQ2M6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNl LmNvbT4KPiBDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgo+ IENjOiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+Cj4gQ2M6IFJvZ2Vy IFBhdSBNb25uZSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Cj4gQ2M6IFdlaSBMaXUgPHdsQHhlbi5v cmc+Cj4gQ2M6IFlhbiBZYW5rb3Zza3lpIDx5eWFua292c2t5aUBnbWFpbC5jb20+Cj4gQ2M6IGRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBDYzogeGVuLWRldmVsQGxpc3RzLnhlbnBy b2plY3Qub3JnCj4gQ2M6IGxpbnV4LW1tQGt2YWNrLm9yZwo+IENjOiBEYXZpZCBIaWxkZW5icmFu ZCA8ZGF2aWRAcmVkaGF0LmNvbT4KPiBDYzogTWljaGFsIEhvY2tvIDxtaG9ja29Aa2VybmVsLm9y Zz4KPiBDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+Cj4gLS0tCj4g Q2hhbmdlcyBzaW5jZSB2MzoKPiAgIC0gSW50cm9kdWNlIGEgS2NvbmZpZyBvcHRpb24gdGhhdCBn YXRlcyB0aGUgYWRkaXRpb24gb2YgdGhlCj4gICAgIHVucG9wdWxhdGVkIGFsbG9jIGRyaXZlci4g VGhpcyBhbGxvd3MgdG8gZWFzaWx5IGRpc2FibGUgaXQgb24gQXJtCj4gICAgIHBsYXRmb3Jtcy4K PiAgIC0gRHJvcHBlZCBKdWVyZ2VuIFJCIGR1ZSB0byB0aGUgYWRkaXRpb24gb2YgdGhlIEtjb25m aWcgb3B0aW9uLgo+ICAgLSBTd2l0Y2hlZCBmcm9tIE1FTU9SWV9ERVZJQ0VfREVWREFYIHRvIE1F TU9SWV9ERVZJQ0VfR0VORVJJQy4KPiAKPiBDaGFuZ2VzIHNpbmNlIHYyOgo+ICAgLSBEcm9wIEJV SUxEX0JVR19PTiByZWdhcmRpbmcgUFZNTVUgcGFnZSBzaXplcy4KPiAgIC0gVXNlIGEgU1BEWCBs aWNlbnNlIGlkZW50aWZpZXIuCj4gICAtIENhbGwgZmlsbCB3aXRoIG9ubHkgdGhlIG1pbmltdW0g cmVxdWlyZWQgbnVtYmVyIG9mIHBhZ2VzLgo+ICAgLSBJbmNsdWRlIHhlbi5oIGhlYWRlciBpbiB4 ZW5fZHJtX2Zyb250X2dlbS5jLgo+ICAgLSBVc2UgbGVzcyBnZW5lcmljIGZ1bmN0aW9uIG5hbWVz Lgo+ICAgLSBFeGl0IGVhcmx5IGZyb20gdGhlIGluaXQgZnVuY3Rpb24gaWYgbm90IGEgUFYgZ3Vl c3QuCj4gICAtIERvbid0IHVzZSBhbGwgY2FwcyBmb3IgcmVnaW9uIG5hbWUuCj4gLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmMgfCAgIDkgKy0KPiAgIGRyaXZl cnMveGVuL0tjb25maWcgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCj4gICBkcml2ZXJzL3hl bi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+ICAgZHJpdmVycy94ZW4vYmFs bG9vbi5jICAgICAgICAgICAgICAgICAgIHwgICA0ICstCj4gICBkcml2ZXJzL3hlbi9ncmFudC10 YWJsZS5jICAgICAgICAgICAgICAgfCAgIDQgKy0KPiAgIGRyaXZlcnMveGVuL3ByaXZjbWQuYyAg ICAgICAgICAgICAgICAgICB8ICAgNCArLQo+ICAgZHJpdmVycy94ZW4vdW5wb3B1bGF0ZWQtYWxs b2MuYyAgICAgICAgIHwgMTg1ICsrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVycy94 ZW4veGVuYnVzL3hlbmJ1c19jbGllbnQuYyAgICAgIHwgICA2ICstCj4gICBkcml2ZXJzL3hlbi94 bGF0ZV9tbXUuYyAgICAgICAgICAgICAgICAgfCAgIDQgKy0KPiAgIGluY2x1ZGUveGVuL3hlbi5o ICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArKwo+ICAgMTAgZmlsZXMgY2hhbmdlZCwgMjE1 IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMveGVuL3VucG9wdWxhdGVkLWFsbG9jLmMKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy94 ZW4vS2NvbmZpZyBiL2RyaXZlcnMveGVuL0tjb25maWcKPiBpbmRleCAxZDMzOWVmOTI0MjIuLjAx ODAyMGI5MWJhYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3hlbi9LY29uZmlnCj4gKysrIGIvZHJp dmVycy94ZW4vS2NvbmZpZwo+IEBAIC0zMjcsNCArMzI3LDggQEAgY29uZmlnIFhFTl9IQVZFX1ZQ TVUKPiAgIGNvbmZpZyBYRU5fRlJPTlRfUEdESVJfU0hCVUYKPiAgIAl0cmlzdGF0ZQo+ICAgCj4g K2NvbmZpZyBYRU5fVU5QT1BVTEFURURfQUxMT0MKPiArCWJvb2wKPiArCWRlZmF1bHQgeSBpZiBa T05FX0RFVklDRSAmJiAhQVJNICYmICFBUk02NAoKVGhlcmUgaXMgYSBjdXJyZW50IGVmZm9ydCB0 byBlbmFibGUgWGVuIG9uIFJJU0MtVi4gRG8gd2UgZXhwZWN0IHRoaXMKb3B0aW9uIHRvIGJlIHVz YWJsZSBmb3IgdGhpcyBhcmNoaXRlY3R1cmU/IElmIHllcywgSSdtIGZpbmUgd2l0aCB0aGUKZXhj bHVzaW9uIG9mIEFybSwgb3RoZXJ3aXNlIEknZCBvcHQgZm9yIGRlZmF1bHRpbmcgdG8geWVzIG9u bHkgZm9yClg4Ni4KCkVpdGhlciB3YXkgeW91IGNhbiBoYXZlIG15OgoKUmV2aWV3ZWQtYnk6IEp1 ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KCgpKdWVyZ2VuCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.5 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 571A2C433DF for ; Wed, 12 Aug 2020 07:28:51 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 242C420771 for ; Wed, 12 Aug 2020 07:28:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 242C420771 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id B2D666B00AB; Wed, 12 Aug 2020 03:28:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ADE0D6B00AC; Wed, 12 Aug 2020 03:28:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9CE998D0001; Wed, 12 Aug 2020 03:28:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0128.hostedemail.com [216.40.44.128]) by kanga.kvack.org (Postfix) with ESMTP id 864FF6B00AB for ; Wed, 12 Aug 2020 03:28:49 -0400 (EDT) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 3D4F3180AD80F for ; Wed, 12 Aug 2020 07:28:49 +0000 (UTC) X-FDA: 77141089578.14.vase78_05003fa26fe9 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin14.hostedemail.com (Postfix) with ESMTP id 15FFA18229835 for ; Wed, 12 Aug 2020 07:28:49 +0000 (UTC) X-HE-Tag: vase78_05003fa26fe9 X-Filterd-Recvd-Size: 5742 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by imf04.hostedemail.com (Postfix) with ESMTP for ; Wed, 12 Aug 2020 07:28:48 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 82F8FB1EE; Wed, 12 Aug 2020 07:29:08 +0000 (UTC) Subject: Re: [PATCH v4 2/2] xen: add helpers to allocate unpopulated memory To: Roger Pau Monne , linux-kernel@vger.kernel.org Cc: Oleksandr Andrushchenko , David Airlie , Daniel Vetter , Boris Ostrovsky , Stefano Stabellini , Dan Carpenter , Wei Liu , Yan Yankovskyi , dri-devel@lists.freedesktop.org, xen-devel@lists.xenproject.org, linux-mm@kvack.org, David Hildenbrand , Michal Hocko , Dan Williams References: <20200811094447.31208-1-roger.pau@citrix.com> <20200811094447.31208-3-roger.pau@citrix.com> From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= Message-ID: <7c9a25fa-c52c-66d2-3b03-14a59e069ab6@suse.com> Date: Wed, 12 Aug 2020 09:28:45 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200811094447.31208-3-roger.pau@citrix.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US X-Rspamd-Queue-Id: 15FFA18229835 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam04 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 11.08.20 11:44, Roger Pau Monne wrote: > To be used in order to create foreign mappings. This is based on the > ZONE_DEVICE facility which is used by persistent memory devices in > order to create struct pages and kernel virtual mappings for the IOMEM > areas of such devices. Note that on kernels without support for > ZONE_DEVICE Xen will fallback to use ballooned pages in order to > create foreign mappings. >=20 > The newly added helpers use the same parameters as the existing > {alloc/free}_xenballooned_pages functions, which allows for in-place > replacement of the callers. Once a memory region has been added to be > used as scratch mapping space it will no longer be released, and pages > returned are kept in a linked list. This allows to have a buffer of > pages and prevents resorting to frequent additions and removals of > regions. >=20 > If enabled (because ZONE_DEVICE is supported) the usage of the new > functionality untangles Xen balloon and RAM hotplug from the usage of > unpopulated physical memory ranges to map foreign pages, which is the > correct thing to do in order to avoid mappings of foreign pages depend > on memory hotplug. >=20 > Note the driver is currently not enabled on Arm platforms because it > would interfere with the identity mapping required on some platforms. >=20 > Signed-off-by: Roger Pau Monn=C3=A9 > --- > Cc: Oleksandr Andrushchenko > Cc: David Airlie > Cc: Daniel Vetter > Cc: Boris Ostrovsky > Cc: Juergen Gross > Cc: Stefano Stabellini > Cc: Dan Carpenter > Cc: Roger Pau Monne > Cc: Wei Liu > Cc: Yan Yankovskyi > Cc: dri-devel@lists.freedesktop.org > Cc: xen-devel@lists.xenproject.org > Cc: linux-mm@kvack.org > Cc: David Hildenbrand > Cc: Michal Hocko > Cc: Dan Williams > --- > Changes since v3: > - Introduce a Kconfig option that gates the addition of the > unpopulated alloc driver. This allows to easily disable it on Arm > platforms. > - Dropped Juergen RB due to the addition of the Kconfig option. > - Switched from MEMORY_DEVICE_DEVDAX to MEMORY_DEVICE_GENERIC. >=20 > Changes since v2: > - Drop BUILD_BUG_ON regarding PVMMU page sizes. > - Use a SPDX license identifier. > - Call fill with only the minimum required number of pages. > - Include xen.h header in xen_drm_front_gem.c. > - Use less generic function names. > - Exit early from the init function if not a PV guest. > - Don't use all caps for region name. > --- > drivers/gpu/drm/xen/xen_drm_front_gem.c | 9 +- > drivers/xen/Kconfig | 4 + > drivers/xen/Makefile | 1 + > drivers/xen/balloon.c | 4 +- > drivers/xen/grant-table.c | 4 +- > drivers/xen/privcmd.c | 4 +- > drivers/xen/unpopulated-alloc.c | 185 +++++++++++++++++++++++= + > drivers/xen/xenbus/xenbus_client.c | 6 +- > drivers/xen/xlate_mmu.c | 4 +- > include/xen/xen.h | 9 ++ > 10 files changed, 215 insertions(+), 15 deletions(-) > create mode 100644 drivers/xen/unpopulated-alloc.c >=20 > diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig > index 1d339ef92422..018020b91baa 100644 > --- a/drivers/xen/Kconfig > +++ b/drivers/xen/Kconfig > @@ -327,4 +327,8 @@ config XEN_HAVE_VPMU > config XEN_FRONT_PGDIR_SHBUF > tristate > =20 > +config XEN_UNPOPULATED_ALLOC > + bool > + default y if ZONE_DEVICE && !ARM && !ARM64 There is a current effort to enable Xen on RISC-V. Do we expect this option to be usable for this architecture? If yes, I'm fine with the exclusion of Arm, otherwise I'd opt for defaulting to yes only for X86. Either way you can have my: Reviewed-by: Juergen Gross Juergen