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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6B71EB64D9 for ; Thu, 6 Jul 2023 09:28:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DB2628D0002; Thu, 6 Jul 2023 05:28:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D627B8D0001; Thu, 6 Jul 2023 05:28:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C2A878D0002; Thu, 6 Jul 2023 05:28:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id B40C48D0001 for ; Thu, 6 Jul 2023 05:28:22 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 7E92D120591 for ; Thu, 6 Jul 2023 09:28:22 +0000 (UTC) X-FDA: 80980661244.12.CA2BCAB Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by imf21.hostedemail.com (Postfix) with ESMTP id DD75F1C0018 for ; Thu, 6 Jul 2023 09:28:16 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=svxwvTSD; spf=pass (imf21.hostedemail.com: domain of aneesh.kumar@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=aneesh.kumar@linux.ibm.com; dmarc=pass (policy=none) header.from=ibm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688635700; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=2HiI83sStMzU/mbSDseRiOxdSo21jkJOe9DPTFeuTvM=; b=wm4GqjV4ibtxLqFIayXXx7mIabkvohsIm60YIjrfk9l2RNcZgKksgLWagxw4wr5gaYpL9f wXlKI6n5exbgFAPv/onhL4HFNQUwflOrSWKJ41nQZaalnRnRuc0WVDla1ei85vlxCY/MLm HKZEQO4RqPaeulnWKWNuxAGB90Mx5cw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688635700; a=rsa-sha256; cv=none; b=IqcOUncDzK9+XSlvXFGMjd9TkzEV0dZu5OKT98WvOsDBMSHHdOwcfQI3pO+wYGXhPVE9Kn 5XpdZFTxixqIavX0KT1XjLjgUuwUneGm8RovXiK9OTi/Yqs8vUDaroDodeMSN2DlXBhA+g fXyCVqw55SOXLDN81lkbxuUA8sSEiW4= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=svxwvTSD; spf=pass (imf21.hostedemail.com: domain of aneesh.kumar@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=aneesh.kumar@linux.ibm.com; dmarc=pass (policy=none) header.from=ibm.com Received: from pps.filterd (m0353722.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3669PUT0031568; Thu, 6 Jul 2023 09:28:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=2HiI83sStMzU/mbSDseRiOxdSo21jkJOe9DPTFeuTvM=; b=svxwvTSDVWCyhMbYHATvgc4F9LCLQR5Rv9qtyLl5S3IwKXyLTT//3PCdv0d2M9U9UMdd SwzAx9gqve4HvLJcNgAH+mwCwWdBUo5QDI0aFRHNZu4L3ElXCPvv0ihdMuUlLNnBKhaZ uP/oWr0pomH8/Tt+OuIBvpkx1fVFmCuNrzoAIr/JlZTdCcZ2kDqmuchAJVfp+xR0nbCl WyuiMKZBon9GT31UDaO7KvOT4XqYPPdgi5cr/IL+XfX1ps9XH9vebm8GCuwICt4u6wxI n8usvkIqGo4sgwJFUHMyRZiHoRRL4JgfYxeDtGO8T98K9Hl2yYgPSQVwIG4SrdmHtRMy qg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rntyhr27n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 06 Jul 2023 09:28:08 +0000 Received: from m0353722.ppops.net (m0353722.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3669PdRv031941; Thu, 6 Jul 2023 09:28:08 GMT Received: from ppma01fra.de.ibm.com (46.49.7a9f.ip4.static.sl-reverse.com [159.122.73.70]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rntyhr271-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 06 Jul 2023 09:28:08 +0000 Received: from pps.filterd (ppma01fra.de.ibm.com [127.0.0.1]) by ppma01fra.de.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3664rIpA030553; Thu, 6 Jul 2023 09:28:06 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma01fra.de.ibm.com (PPS) with ESMTPS id 3rjbs4tcf4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 06 Jul 2023 09:28:03 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3669S1Yt20710090 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 6 Jul 2023 09:28:01 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7069820043; Thu, 6 Jul 2023 09:28:01 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 793F820040; Thu, 6 Jul 2023 09:27:59 +0000 (GMT) Received: from [9.109.212.144] (unknown [9.109.212.144]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 6 Jul 2023 09:27:59 +0000 (GMT) Message-ID: Date: Thu, 6 Jul 2023 14:57:58 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v2 5/5] powerpc/book3s64/memhotplug: Enable memmap on memory for radix Content-Language: en-US To: David Hildenbrand , linux-mm@kvack.org, akpm@linux-foundation.org, mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org, npiggin@gmail.com, christophe.leroy@csgroup.eu Cc: Oscar Salvador , Michal Hocko , Vishal Verma References: <20230706085041.826340-1-aneesh.kumar@linux.ibm.com> <20230706085041.826340-6-aneesh.kumar@linux.ibm.com> From: Aneesh Kumar K V In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: Ea6FjPOsEAX4zHigbNGh3qGibPBdJ2RV X-Proofpoint-GUID: xB1hF367QWpnAYVnWkDMB66SXaS9lDL4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-06_05,2023-07-06_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 mlxscore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 malwarescore=0 suspectscore=0 bulkscore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307060080 X-Stat-Signature: n3i9fpgewm57jaf9hzzyeff4yjbtanup X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: DD75F1C0018 X-Rspam-User: X-HE-Tag: 1688635696-688528 X-HE-Meta: U2FsdGVkX1+Wf10xyImKUf0lxfLru46S0LnDnazefS2qwDUC2gcQ/wxTVIk1vouyoZ2ZMm2szVKB0/Zy+R/va+oT4n2BQgj3U+sY/9xMfynvob9AU1UYhm5Vf5WiPm7e/O1H0vYFdZOtazc7aQuaoqHOXVRJPniXCHhccAOGCJe5Q2RH5h6VyQUFanDSQCGMT4th9UfbB2IPNjpnB3NMTHJgVZwsRNDQsstO67BX0MQL9YMjdoNy+5dM3huhHQLVtTbTvcsLnFjWWUKcIzfer1QhEizI78H8SEqNCfvMsCLlglVUmIDR+qMLLT6rK6L1lbolyGinnhczXvZO/dAdrfU7QxxUNVvfPhuB4bU3kE/6qzY/QxW4vZWB/1ze36Vcg72R9DMbknBQrvRFFopnZbsocAWlsUekcDJijK4lp9tehjq6ZfiHD31CRTCrh/nfhY/2XwnGmTjlbBJF0iAIGf2VGn3zkF23AC9nSuBSjCW8YDIoAIWyTyyUEoJjuLRlTgYrueN2vMZ46ghxrpm79ZTDtHg1OtZ/UqYSb6YI1TuQqJouUGIwb0G5DdxK0CfB5/YdoXjdkOcEZFyDMImUVbOQx0xqmasxlQRum4lE8/XEhumI0cHFcNC6/D3cMphUAk9yoO6W7hC15eqCptm8yx6e0jotpssp+eq40xgyH0kAdlKa5kdeQoPg6saQdxtttZzJK65yJhEMOhuM4CerU5R5I+YXbQwawseHm3PNah4Cxi/41K3L5RGphW/SMD4GgaBifCYDzoBe8v8e3j2VTdD5T8vuosxaN+2xXf2atqzYG0Ad8kc3uAJmnie0+/tMdcmnva4fpXA0l47V2sjD2GWT4tUmhJ6tdq37a1jka33MwHlF0GPS4Uyl9u34v0a6vjXNjQAS+j3kIC4PhUoqQ6mDtoFCXoiK2CaXbPh7Q+p+Y12NlB356vquDYGzt8fBaRAn8aCOpY74/01AjN1 15Inn/Qc ncAVb+s0ZxjCn8xq+aoxbE+TnlCTtCiujIxrIKb0GGkLK9TfNd+ixQiX2atqpquxZ1pKjOY0gTeGVQ0jPk+ufA5Djw8cVAKZCnpTzg021TQEvnzJ7DrdVoEGwGEHcyVVYjNl4z2747EwJj4IUmRrjiGWHOi1i73e9s4f3EN+Z1VxhWehrHBmXvWMD27vE5V5u78tQ1uCynhs0VTMA3rH30rcTkig2fGN2FlkmJg/DOxoz3l5Hoyz6oT4RYQ== 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 7/6/23 2:37 PM, David Hildenbrand wrote: > On 06.07.23 10:50, Aneesh Kumar K.V wrote: >> Radix vmemmap mapping can map things correctly at the PMD level or PTE >> level based on different device boundary checks. We also use altmap.reserve >> feature to align things correctly at pageblock granularity. We can end up >> loosing some pages in memory with this. For ex: with 256MB memory block >> size, we require 4 pages to map vmemmap pages, In order to align things >> correctly we end up adding a reserve of 28 pages. ie, for every 4096 pages >> 28 pages get reserved. >> >> Signed-off-by: Aneesh Kumar K.V >> --- >>   arch/powerpc/Kconfig                          |  1 + >>   arch/powerpc/mm/book3s64/radix_pgtable.c      | 28 +++++++++++++++++++ >>   .../platforms/pseries/hotplug-memory.c        |  4 ++- >>   3 files changed, 32 insertions(+), 1 deletion(-) >> >> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig >> index 116d6add0bb0..f890907e5bbf 100644 >> --- a/arch/powerpc/Kconfig >> +++ b/arch/powerpc/Kconfig >> @@ -157,6 +157,7 @@ config PPC >>       select ARCH_HAS_UBSAN_SANITIZE_ALL >>       select ARCH_HAVE_NMI_SAFE_CMPXCHG >>       select ARCH_KEEP_MEMBLOCK >> +    select ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE    if PPC_RADIX_MMU >>       select ARCH_MIGHT_HAVE_PC_PARPORT >>       select ARCH_MIGHT_HAVE_PC_SERIO >>       select ARCH_OPTIONAL_KERNEL_RWX        if ARCH_HAS_STRICT_KERNEL_RWX >> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c >> index a62729f70f2a..c0bd60b5fb64 100644 >> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c >> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c >> @@ -1678,3 +1678,31 @@ int pmd_free_pte_page(pmd_t *pmd, unsigned long addr) >>         return 1; >>   } >> + >> +/* >> + * mm/memory_hotplug.c:mhp_supports_memmap_on_memory goes into details >> + * some of the restrictions. We don't check for PMD_SIZE because our >> + * vmemmap allocation code can fallback correctly. The pageblock > > x86 also has the fallback IIRC; the concern is rather that you end up with a PTE-mapped vmemmap, which is slower at runtime than a PMD-mapped vmemmap. The memory block size is dependent on a config option at the hypervisor for power and we can have values ranging from 16MB - 512MB With these different memory block sizes I was thinking relaxing these checks makes the feature more useful. Also with page size of 64K using a 2M vmemmap requires larger memory block size. > >> + * alignment requirement is met using altmap->reserve blocks. >> + */ >> +bool mhp_supports_memmap_on_memory(unsigned long size) >> +{ >> +    if (!radix_enabled()) >> +        return false; >> +    /* >> +     * The pageblock alignment requirement is met by using >> +     * reserve blocks in altmap. >> +     */ >> +    return size == memory_block_size_bytes(); >> +} > > I really dislike such arch overrides. > > I think the flow should be something like that, having a generic: > > bool mhp_supports_memmap_on_memory(unsigned long size) > { >     ... >     return arch_mhp_supports_memmap_on_memory(size)) && >            size == memory_block_size_bytes() && >            ... > } > Sure we can do that. But for ppc64 we also want to skip the PMD_SIZE and pageblock alignment restrictions. > where we'll also keep the pageblock check here. For ppc64, I converted that pageblock rule as a reserve blocks allocation with altmap. I am not sure whether we want to do that outside ppc64? > > And a ppc specific > > bool arch_mhp_supports_memmap_on_memory(unsigned long size) > { >     /* >          * Don't check for the vmemmap covering PMD_SIZE, we accept that >          * we might get a PTE-mapped vmemmap. >          */ >     return radix_enabled(); > } > > We can then move the PMD_SIZE check into arch specific code (x86-aarch64). > sure. will rework the changes accordingly. -aneesh