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=-3.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no 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 CE500C433E3 for ; Thu, 23 Jul 2020 13:59:41 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 8E2B8207BB for ; Thu, 23 Jul 2020 13:59:41 +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="BvMfgQVC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8E2B8207BB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 0C24E6B0010; Thu, 23 Jul 2020 09:59:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 074838D0002; Thu, 23 Jul 2020 09:59:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ECA786B0023; Thu, 23 Jul 2020 09:59:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0037.hostedemail.com [216.40.44.37]) by kanga.kvack.org (Postfix) with ESMTP id D6EBF6B0010 for ; Thu, 23 Jul 2020 09:59:40 -0400 (EDT) Received: from smtpin22.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 7104E759C for ; Thu, 23 Jul 2020 13:59:40 +0000 (UTC) X-FDA: 77069498520.22.army74_090036c26f3f Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin22.hostedemail.com (Postfix) with ESMTP id 4142218038918 for ; Thu, 23 Jul 2020 13:59:39 +0000 (UTC) X-HE-Tag: army74_090036c26f3f X-Filterd-Recvd-Size: 6305 Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com [216.71.155.175]) by imf38.hostedemail.com (Postfix) with ESMTP for ; Thu, 23 Jul 2020 13:59:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1595512778; h=date:from:to:cc:subject:message-id:references: mime-version:content-transfer-encoding:in-reply-to; bh=G5fMAF6Ssv/d5LldYw6d7YvCx0QLDX1OATdOT3g5954=; b=BvMfgQVCpddFDBfvTkYWv3tNKrrz4v6Q4hs75F2QTsSsAkktiWyC0y0D coEbe5wcIQ1XmySf8Fc1Fb0f962drz/xKRjuE/w0l72JMmeNROrGoMFGm l8qMD8hNQKnpr0PnsTry5Tl9zYubPThIR6nT2KtSdJuKXmZBBj02nnkia k=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: FzLhbB64z51wD52/8mlF2q7KYHAB/SzggPhRBoNTO3bKquEZzRNlMWzeg+d6qkIRFXnEM8wCQn I8ZVldIoD7vjg1o4XWJv7lCKqcDmh4ey62417HFSjfrORAmoH7KO8ql4RRRNqD26tBGpEgh4Xm 4qZ++TwHeTlgHbCc8HsVqPpbmG9+/D0m9Kz4xeXkCr+8ClNSrV9FP3Ohl3Yq8LTJWxBVc/e4yw KbHE+hEoCTrkPnGZ+OPXceMgdwvBw289PxG1Fn18sfFFMuj4f/MmLdi1R8gVDd0k7mTOFAYSLz XCc= X-SBRS: 2.7 X-MesageID: 23370256 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.75,386,1589256000"; d="scan'208";a="23370256" Date: Thu, 23 Jul 2020 15:59:30 +0200 From: Roger Pau =?utf-8?B?TW9ubsOp?= To: David Hildenbrand CC: , Boris Ostrovsky , Juergen Gross , "Stefano Stabellini" , Andrew Morton , , Subject: Re: [PATCH 3/3] memory: introduce an option to force onlining of hotplug memory Message-ID: <20200723135930.GH7191@Air-de-Roger> References: <20200723084523.42109-1-roger.pau@citrix.com> <20200723084523.42109-4-roger.pau@citrix.com> <21490d49-b2cf-a398-0609-8010bdb0b004@redhat.com> <20200723122300.GD7191@Air-de-Roger> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: AMSPEX02CAS01.citrite.net (10.69.22.112) To AMSPEX02CL02.citrite.net (10.69.22.126) X-Rspamd-Queue-Id: 4142218038918 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam01 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 Thu, Jul 23, 2020 at 03:22:49PM +0200, David Hildenbrand wrote: > On 23.07.20 14:23, Roger Pau Monn=C3=A9 wrote: > > On Thu, Jul 23, 2020 at 01:37:03PM +0200, David Hildenbrand wrote: > >> On 23.07.20 10:45, Roger Pau Monne wrote: > >>> Add an extra option to add_memory_resource that overrides the memor= y > >>> hotplug online behavior in order to force onlining of memory from > >>> add_memory_resource unconditionally. > >>> > >>> This is required for the Xen balloon driver, that must run the > >>> online page callback in order to correctly process the newly added > >>> memory region, note this is an unpopulated region that is used by L= inux > >>> to either hotplug RAM or to map foreign pages from other domains, a= nd > >>> hence memory hotplug when running on Xen can be used even without t= he > >>> user explicitly requesting it, as part of the normal operations of = the > >>> OS when attempting to map memory from a different domain. > >>> > >>> Setting a different default value of memhp_default_online_type when > >>> attaching the balloon driver is not a robust solution, as the user = (or > >>> distro init scripts) could still change it and thus break the Xen > >>> balloon driver. > >> > >> I think we discussed this a couple of times before (even triggered b= y my > >> request), and this is responsibility of user space to configure. Usu= ally > >> distros have udev rules to online memory automatically. Especially, = user > >> space should eb able to configure *how* to online memory. > >=20 > > Note (as per the commit message) that in the specific case I'm > > referring to the memory hotplugged by the Xen balloon driver will be > > an unpopulated range to be used internally by certain Xen subsystems, > > like the xen-blkback or the privcmd drivers. The addition of such > > blocks of (unpopulated) memory can happen without the user explicitly > > requesting it, and hence not even aware such hotplug process is takin= g > > place. To be clear: no actual RAM will be added to the system. >=20 > Okay, but there is also the case where XEN will actually hotplug memory > using this same handler IIRC (at least I've read papers about it). Both > are using the same handler, correct? Yes, it's used by this dual purpose, which I have to admit I don't like that much either. One set of pages should be clearly used for RAM memory hotplug, and the other to map foreign pages that are not related to memory hotplug, it's just that we happen to need a physical region with backing struct pages. > >=20 > >> It's the admin/distro responsibility to configure this properly. In = case > >> this doesn't happen (or as you say, users change it), bad luck. > >> > >> E.g., virtio-mem takes care to not add more memory in case it is not > >> getting onlined. I remember hyper-v has similar code to at least wai= t a > >> bit for memory to get onlined. > >=20 > > I don't think VirtIO or Hyper-V use the hotplug system in the same wa= y > > as Xen, as said this is done to add unpopulated memory regions that > > will be used to map foreign memory (from other domains) by Xen driver= s > > on the system. >=20 > Indeed, if the memory is never exposed to the buddy (and all you need i= s > struct pages + a kernel virtual mapping), I wonder if > memremap/ZONE_DEVICE is what you want? I'm certainly not familiar with the Linux memory subsystem, but if that gets us a backing struct page and a kernel mapping then I would say yes. > Then you won't have user-visible > memory blocks created with unclear online semantics, partially involvin= g > the buddy. Seems like a fine solution. Juergen: would you be OK to use a separate page-list for alloc_xenballooned_pages on HVM/PVH using the logic described by David? I guess I would leave PV as-is, since it already has this reserved region to map foreign pages. Thanks, Roger.