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=-9.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS 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 AD9EFC433E1 for ; Wed, 12 Aug 2020 07:38:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 81BC62065C for ; Wed, 12 Aug 2020 07:38:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="YguUNolP" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726621AbgHLHix (ORCPT ); Wed, 12 Aug 2020 03:38:53 -0400 Received: from esa4.hc3370-68.iphmx.com ([216.71.155.144]:47694 "EHLO esa4.hc3370-68.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726255AbgHLHix (ORCPT ); Wed, 12 Aug 2020 03:38:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1597217931; h=date:from:to:cc:subject:message-id:references: mime-version:content-transfer-encoding:in-reply-to; bh=ShS55PgjfRlFMa0DNNlsr2fNiXMtncLBQuylfP4nMGg=; b=YguUNolPD2jCAK+7MU0rvIJxQezvWSL2K6zqNjG38/AvlgCZ1IbO+XZd wULZOAPMXD2rZ+GM2PgPT5nJNo6M0tRxniuAMbf1TF6tQHNYCMVtvVnNQ 7qblF+JEXTQXpRYMrol1iQVeSdWlpdLyMUcz1JX2nrWj2d1t/yiG9033O 0=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: Zs2JsfV+aYnUe+nzG0vfzUdX+ziwoLc3xTEPPEd+NVtYmHmJw+DPYdtS53l1QsrvC/Zxz4eN0/ A0/nYWVhhDhtycBIX5cmj7XnFzCd0Cbb9CH7NwXunAwDyHJJYQcc69T5BEuEcNMl8PWfoSXX+s P7nimTSw40cj4SIbcq/qPkr5JpUauoYCGPpqjzp636wYVroZhErGaj15aTi03BxPwveV7Lcj6n s5xgeyApZtCvlmTWosFQMCqnPUJNCVpRHE5Lz4/jbls9uJTBhbW/oNcnDDvw5BOIArvG6fykiH 5D8= X-SBRS: 2.7 X-MesageID: 25254199 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.76,303,1592884800"; d="scan'208";a="25254199" Date: Wed, 12 Aug 2020 09:38:40 +0200 From: Roger Pau =?utf-8?B?TW9ubsOp?= To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= CC: , Oleksandr Andrushchenko , David Airlie , "Daniel Vetter" , Boris Ostrovsky , Stefano Stabellini , Dan Carpenter , Wei Liu , Yan Yankovskyi , , , , David Hildenbrand , Michal Hocko , Dan Williams Subject: Re: [PATCH v4 2/2] xen: add helpers to allocate unpopulated memory Message-ID: <20200812073840.GA975@Air-de-Roger> References: <20200811094447.31208-1-roger.pau@citrix.com> <20200811094447.31208-3-roger.pau@citrix.com> <7c9a25fa-c52c-66d2-3b03-14a59e069ab6@suse.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <7c9a25fa-c52c-66d2-3b03-14a59e069ab6@suse.com> X-ClientProxiedBy: AMSPEX02CAS02.citrite.net (10.69.22.113) To AMSPEX02CL02.citrite.net (10.69.22.126) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Aug 12, 2020 at 09:28:45AM +0200, Jürgen Groß wrote: > 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? It will depend on whether the Xen RISC-V implementation mandates an IOMMU, for example Arm doesn't and hence uses an identity p2m for dom0. If RISC-V does the same then I would assume this won't be suitable as-is (not that it couldn't be made to work). IMO it wasn't clear from the community call what was the RISC-V port position regarding this, but IIRC the IOMMU spec for RISC-V was behind the virtualization one, so it's likely that quite a lot of hardware will have hardware virtualization support but no IOMMU, in which case I think it's likely the RISC-V port will follow Arm and implement an identity p2m. > 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 Thanks. Feel free to change the 'ZONE_DEVICE && !ARM && !ARM64' to 'ZONE_DEVICE && X86' if you think it's safer. Roger. 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=-9.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS 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 9841FC433E3 for ; Thu, 13 Aug 2020 07:13:24 +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 5A30D20716 for ; Thu, 13 Aug 2020 07:13:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="X35CVV7q" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5A30D20716 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=citrix.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 0F18B6E536; Thu, 13 Aug 2020 07:12:56 +0000 (UTC) Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com [216.71.155.144]) by gabe.freedesktop.org (Postfix) with ESMTPS id 502DC6E8C3 for ; Wed, 12 Aug 2020 07:38:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1597217932; h=date:from:to:cc:subject:message-id:references: mime-version:content-transfer-encoding:in-reply-to; bh=ShS55PgjfRlFMa0DNNlsr2fNiXMtncLBQuylfP4nMGg=; b=X35CVV7qxJIUu1sF5wGBGoVdItnVVy8vqDvVp9Qd9wDuNp1yxlWzqLYP 01Nd3h18Tn6Qaz43fiX8r4erOd4KdRHpw3w3I0ocUaCpQQW1p+0biFGJH qEVjWnD412fy8zwy+hG9NiyFnggMTNgyx+azEoTJiy6teXESJcd4bHeQ9 E=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: Zs2JsfV+aYnUe+nzG0vfzUdX+ziwoLc3xTEPPEd+NVtYmHmJw+DPYdtS53l1QsrvC/Zxz4eN0/ A0/nYWVhhDhtycBIX5cmj7XnFzCd0Cbb9CH7NwXunAwDyHJJYQcc69T5BEuEcNMl8PWfoSXX+s P7nimTSw40cj4SIbcq/qPkr5JpUauoYCGPpqjzp636wYVroZhErGaj15aTi03BxPwveV7Lcj6n s5xgeyApZtCvlmTWosFQMCqnPUJNCVpRHE5Lz4/jbls9uJTBhbW/oNcnDDvw5BOIArvG6fykiH 5D8= X-SBRS: 2.7 X-MesageID: 25254199 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.76,303,1592884800"; d="scan'208";a="25254199" Date: Wed, 12 Aug 2020 09:38:40 +0200 From: Roger Pau =?utf-8?B?TW9ubsOp?= To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= Subject: Re: [PATCH v4 2/2] xen: add helpers to allocate unpopulated memory Message-ID: <20200812073840.GA975@Air-de-Roger> References: <20200811094447.31208-1-roger.pau@citrix.com> <20200811094447.31208-3-roger.pau@citrix.com> <7c9a25fa-c52c-66d2-3b03-14a59e069ab6@suse.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <7c9a25fa-c52c-66d2-3b03-14a59e069ab6@suse.com> X-ClientProxiedBy: AMSPEX02CAS02.citrite.net (10.69.22.113) To AMSPEX02CL02.citrite.net (10.69.22.126) X-Mailman-Approved-At: Thu, 13 Aug 2020 07:12:31 +0000 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 , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, xen-devel@lists.xenproject.org, Boris Ostrovsky , Dan Williams , Dan Carpenter Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gV2VkLCBBdWcgMTIsIDIwMjAgYXQgMDk6Mjg6NDVBTSArMDIwMCwgSsO8cmdlbiBHcm/DnyB3 cm90ZToKPiBPbiAxMS4wOC4yMCAxMTo0NCwgUm9nZXIgUGF1IE1vbm5lIHdyb3RlOgo+ID4gVG8g YmUgdXNlZCBpbiBvcmRlciB0byBjcmVhdGUgZm9yZWlnbiBtYXBwaW5ncy4gVGhpcyBpcyBiYXNl ZCBvbiB0aGUKPiA+IFpPTkVfREVWSUNFIGZhY2lsaXR5IHdoaWNoIGlzIHVzZWQgYnkgcGVyc2lz dGVudCBtZW1vcnkgZGV2aWNlcyBpbgo+ID4gb3JkZXIgdG8gY3JlYXRlIHN0cnVjdCBwYWdlcyBh bmQga2VybmVsIHZpcnR1YWwgbWFwcGluZ3MgZm9yIHRoZSBJT01FTQo+ID4gYXJlYXMgb2Ygc3Vj aCBkZXZpY2VzLiBOb3RlIHRoYXQgb24ga2VybmVscyB3aXRob3V0IHN1cHBvcnQgZm9yCj4gPiBa T05FX0RFVklDRSBYZW4gd2lsbCBmYWxsYmFjayB0byB1c2UgYmFsbG9vbmVkIHBhZ2VzIGluIG9y ZGVyIHRvCj4gPiBjcmVhdGUgZm9yZWlnbiBtYXBwaW5ncy4KPiA+IAo+ID4gVGhlIG5ld2x5IGFk ZGVkIGhlbHBlcnMgdXNlIHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMgdGhlIGV4aXN0aW5nCj4gPiB7 YWxsb2MvZnJlZX1feGVuYmFsbG9vbmVkX3BhZ2VzIGZ1bmN0aW9ucywgd2hpY2ggYWxsb3dzIGZv ciBpbi1wbGFjZQo+ID4gcmVwbGFjZW1lbnQgb2YgdGhlIGNhbGxlcnMuIE9uY2UgYSBtZW1vcnkg cmVnaW9uIGhhcyBiZWVuIGFkZGVkIHRvIGJlCj4gPiB1c2VkIGFzIHNjcmF0Y2ggbWFwcGluZyBz cGFjZSBpdCB3aWxsIG5vIGxvbmdlciBiZSByZWxlYXNlZCwgYW5kIHBhZ2VzCj4gPiByZXR1cm5l ZCBhcmUga2VwdCBpbiBhIGxpbmtlZCBsaXN0LiBUaGlzIGFsbG93cyB0byBoYXZlIGEgYnVmZmVy IG9mCj4gPiBwYWdlcyBhbmQgcHJldmVudHMgcmVzb3J0aW5nIHRvIGZyZXF1ZW50IGFkZGl0aW9u cyBhbmQgcmVtb3ZhbHMgb2YKPiA+IHJlZ2lvbnMuCj4gPiAKPiA+IElmIGVuYWJsZWQgKGJlY2F1 c2UgWk9ORV9ERVZJQ0UgaXMgc3VwcG9ydGVkKSB0aGUgdXNhZ2Ugb2YgdGhlIG5ldwo+ID4gZnVu Y3Rpb25hbGl0eSB1bnRhbmdsZXMgWGVuIGJhbGxvb24gYW5kIFJBTSBob3RwbHVnIGZyb20gdGhl IHVzYWdlIG9mCj4gPiB1bnBvcHVsYXRlZCBwaHlzaWNhbCBtZW1vcnkgcmFuZ2VzIHRvIG1hcCBm b3JlaWduIHBhZ2VzLCB3aGljaCBpcyB0aGUKPiA+IGNvcnJlY3QgdGhpbmcgdG8gZG8gaW4gb3Jk ZXIgdG8gYXZvaWQgbWFwcGluZ3Mgb2YgZm9yZWlnbiBwYWdlcyBkZXBlbmQKPiA+IG9uIG1lbW9y eSBob3RwbHVnLgo+ID4gCj4gPiBOb3RlIHRoZSBkcml2ZXIgaXMgY3VycmVudGx5IG5vdCBlbmFi bGVkIG9uIEFybSBwbGF0Zm9ybXMgYmVjYXVzZSBpdAo+ID4gd291bGQgaW50ZXJmZXJlIHdpdGgg dGhlIGlkZW50aXR5IG1hcHBpbmcgcmVxdWlyZWQgb24gc29tZSBwbGF0Zm9ybXMuCj4gPiAKPiA+ IFNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgo+ ID4gLS0tCj4gPiBDYzogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNo Y2hlbmtvQGVwYW0uY29tPgo+ID4gQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4K PiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+Cj4gPiBDYzogQm9yaXMgT3N0 cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KPiA+IENjOiBKdWVyZ2VuIEdyb3Nz IDxqZ3Jvc3NAc3VzZS5jb20+Cj4gPiBDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGlu aUBrZXJuZWwub3JnPgo+ID4gQ2M6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xl LmNvbT4KPiA+IENjOiBSb2dlciBQYXUgTW9ubmUgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgo+ID4g Q2M6IFdlaSBMaXUgPHdsQHhlbi5vcmc+Cj4gPiBDYzogWWFuIFlhbmtvdnNreWkgPHl5YW5rb3Zz a3lpQGdtYWlsLmNvbT4KPiA+IENjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4g PiBDYzogeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gPiBDYzogbGludXgtbW1Aa3Zh Y2sub3JnCj4gPiBDYzogRGF2aWQgSGlsZGVuYnJhbmQgPGRhdmlkQHJlZGhhdC5jb20+Cj4gPiBD YzogTWljaGFsIEhvY2tvIDxtaG9ja29Aa2VybmVsLm9yZz4KPiA+IENjOiBEYW4gV2lsbGlhbXMg PGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gQ2hhbmdlcyBzaW5jZSB2MzoK PiA+ICAgLSBJbnRyb2R1Y2UgYSBLY29uZmlnIG9wdGlvbiB0aGF0IGdhdGVzIHRoZSBhZGRpdGlv biBvZiB0aGUKPiA+ICAgICB1bnBvcHVsYXRlZCBhbGxvYyBkcml2ZXIuIFRoaXMgYWxsb3dzIHRv IGVhc2lseSBkaXNhYmxlIGl0IG9uIEFybQo+ID4gICAgIHBsYXRmb3Jtcy4KPiA+ICAgLSBEcm9w cGVkIEp1ZXJnZW4gUkIgZHVlIHRvIHRoZSBhZGRpdGlvbiBvZiB0aGUgS2NvbmZpZyBvcHRpb24u Cj4gPiAgIC0gU3dpdGNoZWQgZnJvbSBNRU1PUllfREVWSUNFX0RFVkRBWCB0byBNRU1PUllfREVW SUNFX0dFTkVSSUMuCj4gPiAKPiA+IENoYW5nZXMgc2luY2UgdjI6Cj4gPiAgIC0gRHJvcCBCVUlM RF9CVUdfT04gcmVnYXJkaW5nIFBWTU1VIHBhZ2Ugc2l6ZXMuCj4gPiAgIC0gVXNlIGEgU1BEWCBs aWNlbnNlIGlkZW50aWZpZXIuCj4gPiAgIC0gQ2FsbCBmaWxsIHdpdGggb25seSB0aGUgbWluaW11 bSByZXF1aXJlZCBudW1iZXIgb2YgcGFnZXMuCj4gPiAgIC0gSW5jbHVkZSB4ZW4uaCBoZWFkZXIg aW4geGVuX2RybV9mcm9udF9nZW0uYy4KPiA+ICAgLSBVc2UgbGVzcyBnZW5lcmljIGZ1bmN0aW9u IG5hbWVzLgo+ID4gICAtIEV4aXQgZWFybHkgZnJvbSB0aGUgaW5pdCBmdW5jdGlvbiBpZiBub3Qg YSBQViBndWVzdC4KPiA+ICAgLSBEb24ndCB1c2UgYWxsIGNhcHMgZm9yIHJlZ2lvbiBuYW1lLgo+ ID4gLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uYyB8ICAg OSArLQo+ID4gICBkcml2ZXJzL3hlbi9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgfCAgIDQg Kwo+ID4gICBkcml2ZXJzL3hlbi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+ ID4gICBkcml2ZXJzL3hlbi9iYWxsb29uLmMgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KPiA+ ICAgZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYyAgICAgICAgICAgICAgIHwgICA0ICstCj4gPiAg IGRyaXZlcnMveGVuL3ByaXZjbWQuYyAgICAgICAgICAgICAgICAgICB8ICAgNCArLQo+ID4gICBk cml2ZXJzL3hlbi91bnBvcHVsYXRlZC1hbGxvYy5jICAgICAgICAgfCAxODUgKysrKysrKysrKysr KysrKysrKysrKysrCj4gPiAgIGRyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMgICAg ICB8ICAgNiArLQo+ID4gICBkcml2ZXJzL3hlbi94bGF0ZV9tbXUuYyAgICAgICAgICAgICAgICAg fCAgIDQgKy0KPiA+ICAgaW5jbHVkZS94ZW4veGVuLmggICAgICAgICAgICAgICAgICAgICAgIHwg ICA5ICsrCj4gPiAgIDEwIGZpbGVzIGNoYW5nZWQsIDIxNSBpbnNlcnRpb25zKCspLCAxNSBkZWxl dGlvbnMoLSkKPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMveGVuL3VucG9wdWxhdGVk LWFsbG9jLmMKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL0tjb25maWcgYi9kcml2 ZXJzL3hlbi9LY29uZmlnCj4gPiBpbmRleCAxZDMzOWVmOTI0MjIuLjAxODAyMGI5MWJhYSAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMveGVuL0tjb25maWcKPiA+ICsrKyBiL2RyaXZlcnMveGVuL0tj b25maWcKPiA+IEBAIC0zMjcsNCArMzI3LDggQEAgY29uZmlnIFhFTl9IQVZFX1ZQTVUKPiA+ICAg Y29uZmlnIFhFTl9GUk9OVF9QR0RJUl9TSEJVRgo+ID4gICAJdHJpc3RhdGUKPiA+ICtjb25maWcg WEVOX1VOUE9QVUxBVEVEX0FMTE9DCj4gPiArCWJvb2wKPiA+ICsJZGVmYXVsdCB5IGlmIFpPTkVf REVWSUNFICYmICFBUk0gJiYgIUFSTTY0Cj4gCj4gVGhlcmUgaXMgYSBjdXJyZW50IGVmZm9ydCB0 byBlbmFibGUgWGVuIG9uIFJJU0MtVi4gRG8gd2UgZXhwZWN0IHRoaXMKPiBvcHRpb24gdG8gYmUg dXNhYmxlIGZvciB0aGlzIGFyY2hpdGVjdHVyZT8KCkl0IHdpbGwgZGVwZW5kIG9uIHdoZXRoZXIg dGhlIFhlbiBSSVNDLVYgaW1wbGVtZW50YXRpb24gbWFuZGF0ZXMgYW4KSU9NTVUsIGZvciBleGFt cGxlIEFybSBkb2Vzbid0IGFuZCBoZW5jZSB1c2VzIGFuIGlkZW50aXR5IHAybSBmb3IKZG9tMC4g SWYgUklTQy1WIGRvZXMgdGhlIHNhbWUgdGhlbiBJIHdvdWxkIGFzc3VtZSB0aGlzIHdvbid0IGJl CnN1aXRhYmxlIGFzLWlzIChub3QgdGhhdCBpdCBjb3VsZG4ndCBiZSBtYWRlIHRvIHdvcmspLgoK SU1PIGl0IHdhc24ndCBjbGVhciBmcm9tIHRoZSBjb21tdW5pdHkgY2FsbCB3aGF0IHdhcyB0aGUg UklTQy1WIHBvcnQKcG9zaXRpb24gcmVnYXJkaW5nIHRoaXMsIGJ1dCBJSVJDIHRoZSBJT01NVSBz cGVjIGZvciBSSVNDLVYgd2FzIGJlaGluZAp0aGUgdmlydHVhbGl6YXRpb24gb25lLCBzbyBpdCdz IGxpa2VseSB0aGF0IHF1aXRlIGEgbG90IG9mIGhhcmR3YXJlCndpbGwgaGF2ZSBoYXJkd2FyZSB2 aXJ0dWFsaXphdGlvbiBzdXBwb3J0IGJ1dCBubyBJT01NVSwgaW4gd2hpY2ggY2FzZQpJIHRoaW5r IGl0J3MgbGlrZWx5IHRoZSBSSVNDLVYgcG9ydCB3aWxsIGZvbGxvdyBBcm0gYW5kIGltcGxlbWVu dCBhbgppZGVudGl0eSBwMm0uCgo+IElmIHllcywgSSdtIGZpbmUgd2l0aCB0aGUKPiBleGNsdXNp b24gb2YgQXJtLCBvdGhlcndpc2UgSSdkIG9wdCBmb3IgZGVmYXVsdGluZyB0byB5ZXMgb25seSBm b3IKPiBYODYuCj4gCj4gRWl0aGVyIHdheSB5b3UgY2FuIGhhdmUgbXk6Cj4gCj4gUmV2aWV3ZWQt Ynk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KClRoYW5rcy4gRmVlbCBmcmVlIHRv IGNoYW5nZSB0aGUgJ1pPTkVfREVWSUNFICYmICFBUk0gJiYgIUFSTTY0JyB0bwonWk9ORV9ERVZJ Q0UgJiYgWDg2JyBpZiB5b3UgdGhpbmsgaXQncyBzYWZlci4KClJvZ2VyLgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK 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=-9.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS 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 D4F4FC433DF for ; Wed, 12 Aug 2020 07:39:12 +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 A24C12065C for ; Wed, 12 Aug 2020 07:39:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="YguUNolP" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A24C12065C Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=citrix.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 1k5lLZ-0004Fd-OZ; Wed, 12 Aug 2020 07:38:53 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k5lLY-0004FY-Ee for xen-devel@lists.xenproject.org; Wed, 12 Aug 2020 07:38:52 +0000 X-Inumbo-ID: dac548f9-fe43-4fc6-a964-4157a88b6c7c Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id dac548f9-fe43-4fc6-a964-4157a88b6c7c; Wed, 12 Aug 2020 07:38:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1597217931; h=date:from:to:cc:subject:message-id:references: mime-version:content-transfer-encoding:in-reply-to; bh=ShS55PgjfRlFMa0DNNlsr2fNiXMtncLBQuylfP4nMGg=; b=YguUNolPD2jCAK+7MU0rvIJxQezvWSL2K6zqNjG38/AvlgCZ1IbO+XZd wULZOAPMXD2rZ+GM2PgPT5nJNo6M0tRxniuAMbf1TF6tQHNYCMVtvVnNQ 7qblF+JEXTQXpRYMrol1iQVeSdWlpdLyMUcz1JX2nrWj2d1t/yiG9033O 0=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: Zs2JsfV+aYnUe+nzG0vfzUdX+ziwoLc3xTEPPEd+NVtYmHmJw+DPYdtS53l1QsrvC/Zxz4eN0/ A0/nYWVhhDhtycBIX5cmj7XnFzCd0Cbb9CH7NwXunAwDyHJJYQcc69T5BEuEcNMl8PWfoSXX+s P7nimTSw40cj4SIbcq/qPkr5JpUauoYCGPpqjzp636wYVroZhErGaj15aTi03BxPwveV7Lcj6n s5xgeyApZtCvlmTWosFQMCqnPUJNCVpRHE5Lz4/jbls9uJTBhbW/oNcnDDvw5BOIArvG6fykiH 5D8= X-SBRS: 2.7 X-MesageID: 25254199 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.76,303,1592884800"; d="scan'208";a="25254199" Date: Wed, 12 Aug 2020 09:38:40 +0200 From: Roger Pau =?utf-8?B?TW9ubsOp?= To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= Subject: Re: [PATCH v4 2/2] xen: add helpers to allocate unpopulated memory Message-ID: <20200812073840.GA975@Air-de-Roger> References: <20200811094447.31208-1-roger.pau@citrix.com> <20200811094447.31208-3-roger.pau@citrix.com> <7c9a25fa-c52c-66d2-3b03-14a59e069ab6@suse.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <7c9a25fa-c52c-66d2-3b03-14a59e069ab6@suse.com> X-ClientProxiedBy: AMSPEX02CAS02.citrite.net (10.69.22.113) To AMSPEX02CL02.citrite.net (10.69.22.126) 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 , linux-kernel@vger.kernel.org, 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 Wed, Aug 12, 2020 at 09:28:45AM +0200, Jürgen Groß wrote: > 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? It will depend on whether the Xen RISC-V implementation mandates an IOMMU, for example Arm doesn't and hence uses an identity p2m for dom0. If RISC-V does the same then I would assume this won't be suitable as-is (not that it couldn't be made to work). IMO it wasn't clear from the community call what was the RISC-V port position regarding this, but IIRC the IOMMU spec for RISC-V was behind the virtualization one, so it's likely that quite a lot of hardware will have hardware virtualization support but no IOMMU, in which case I think it's likely the RISC-V port will follow Arm and implement an identity p2m. > 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 Thanks. Feel free to change the 'ZONE_DEVICE && !ARM && !ARM64' to 'ZONE_DEVICE && X86' if you think it's safer. Roger.