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 B4BE8C001DF for ; Wed, 2 Aug 2023 04:47:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E063A280126; Wed, 2 Aug 2023 00:47:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DB5BD280112; Wed, 2 Aug 2023 00:47:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C7CFD280126; Wed, 2 Aug 2023 00:47:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id B8DBB280112 for ; Wed, 2 Aug 2023 00:47:41 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 6A4A51A065E for ; Wed, 2 Aug 2023 04:47:41 +0000 (UTC) X-FDA: 81077931522.05.F3BD833 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by imf29.hostedemail.com (Postfix) with ESMTP id 2770012000C for ; Wed, 2 Aug 2023 04:47:38 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=cMXXFtlN; spf=pass (imf29.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=1690951659; 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=JFw7hHzZOf+ON7J4oo8aOkciqxzopnT79nPV0gBC474=; b=dx5KX+VR2FSNFIPhTrHTHUj0QIFS81qKYTD9n9UXl0InVTmGliQoLMfzXAmb0VQO87BOoW vGstFhHQoHi12xO6IUdDsBxFaoULXDdboKD6Txfm3u8Xbpaci1lryOVsuQs69jTd1vP9iJ V7KWC6RUNb5VzVl/0X0i8Ny+oRh422w= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690951659; a=rsa-sha256; cv=none; b=Try4kIQw1quSDJ7O3ui1JgfPXNjw4kYjPPz5y7KIVqe4rxVcHGINT0r2S2ltTDh7dqmGxU grO1kiW/qOGCENrvLEhNEWWkYKFtOAyW88fytToB6HgctvkK9NH8Hl6acfTaJulY4NpUh9 R0ej67dn2Izc8Tnba2/IsAvyEdfVoI8= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=cMXXFtlN; spf=pass (imf29.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 (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3724hUVN008396; Wed, 2 Aug 2023 04:47:30 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=JFw7hHzZOf+ON7J4oo8aOkciqxzopnT79nPV0gBC474=; b=cMXXFtlNKedm3pRL/OaOVRuhauLujhQ8w2bezz/Run0RtcdQp2ch1Y1vN9gBExSJjrr1 IvzdYLRsazyESh2CvSdddiFFjUlsktd/YrdvUwXSb3cTZJgVyDeg7IwhrdaRbUidCsAm PLgyoY9PrsTZdU7Lwe8IoYOz00xPBc0fKTOE7mZvR3cxZ1r6N7ytjZup93JRcvWeeam0 UYQD8rTMVDNbHYoHCOh0lpXaUWyYBoHV7tZP6xpN7oPEOX6ge4XLz9TpMFf4yvKzS10C XAm/w5ckyLC/mftvNG9VJWZEeGqh/7Go3CMdH/Yv5flU6RzyQxtpJSqwF/Us1RMlxHJJ yw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3s7g0dgdkx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 02 Aug 2023 04:47:29 +0000 Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3724jYhw013211; Wed, 2 Aug 2023 04:47:29 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3s7g0dgdkp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 02 Aug 2023 04:47:29 +0000 Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3723cuVi017005; Wed, 2 Aug 2023 04:47:28 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3s5dfy9xsx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 02 Aug 2023 04:47:28 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3724lQP459244852 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 2 Aug 2023 04:47:26 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 257FC2004B; Wed, 2 Aug 2023 04:47:26 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id EF68A20043; Wed, 2 Aug 2023 04:47:23 +0000 (GMT) Received: from [9.43.11.83] (unknown [9.43.11.83]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 2 Aug 2023 04:47:23 +0000 (GMT) Message-ID: Date: Wed, 2 Aug 2023 10:17:23 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH v7 6/7] mm/memory_hotplug: Embed vmem_altmap details in memory block Content-Language: en-US To: "Verma, Vishal L" , "linux-mm@kvack.org" , "mpe@ellerman.id.au" , "linuxppc-dev@lists.ozlabs.org" , "npiggin@gmail.com" , "christophe.leroy@csgroup.eu" , "akpm@linux-foundation.org" Cc: "Hocko, Michal" , "osalvador@suse.de" , "david@redhat.com" References: <20230801044116.10674-1-aneesh.kumar@linux.ibm.com> <20230801044116.10674-7-aneesh.kumar@linux.ibm.com> <715042319ceb86016a4986862a82756e5629d725.camel@intel.com> From: Aneesh Kumar K V In-Reply-To: <715042319ceb86016a4986862a82756e5629d725.camel@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: U9fPAIQYB6PCJIIyuJcKN09_fD8n4lv5 X-Proofpoint-GUID: bXFNebUh7kWWccHrBlWCuddNUSZ6HRaw 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-08-02_02,2023-08-01_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 lowpriorityscore=0 spamscore=0 mlxlogscore=879 malwarescore=0 priorityscore=1501 suspectscore=0 bulkscore=0 impostorscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2308020040 X-Stat-Signature: qf3fmreba3t6jga9hykt8ah766tbwi1k X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 2770012000C X-Rspam-User: X-HE-Tag: 1690951658-663546 X-HE-Meta: U2FsdGVkX18Abypr0X1kak78mYMTrx1HTBjmhWy+m4EphKMkssMp8n9Pif29LWvX1l1OBHgIjrJm5SugCNY2febUOnEFwYi4lt0hNF0HQWcRl4zuBhKaLewPVk6dAnDFKCDqBUS5J1xJKL1NE8hMt6aCIMGhq9NcMDJ9A/4/NrKBVLJt93eK3BTXQi9KL2R8NefOxiw9J/j4rllMn8ke1rzO6dSwDpJxyYNSPzmm3h3s8yZYdMaeaLgaN1CwkBNNGC0ofbjJyLlFF5UT9/XIh+wkfIOls5vFkD4TpwPcwkoS649uc9dKz4VVDgoPikkauwvr1da/evkfsfX/PmSdxgkwqY6t2usZdKNgOdm847CcAhfa5/AIYAIZ7hNub73YHDpgABrImmfG1tJ4dqizqA9ST4odfGGMx57tc9La0oGWHokDzJNJ21BbkFiaStL5AnxBw7cCvwAHQudFng/fulGSZLoumK7/AkbnQlKv+8p6c2Cs0UfbmfjhbWabYOJdzjY4ivxqV4YgTLtxTRw6RdUDiDPBZr19mMNPZK4PfvZRPFvwg6LkxNhDwPUM3As0CsUMO9L85W1ENneTK/TuRm3dQIyC4//an6ZKr36TIqM+E0A3ZfcpwtgvjoDuVXPBpOqnK4zc2v7Gwc/bCO0ZJlZRbbF+uEoqEgoihZhpRJJYznh2OQWJFE7aW0f0uzSpg4+T6UEiHKZAQCRsF2StmLBDo455WRib83Pp/x3JXk9DeLu+16X6MA0Sta1716ucB+wHyr7lC9GEu924HrMHtlGICKIg/JcHteIzltAfLP0bPJuSe5geBz3ruTnGac+QTBPKzUHT52QyxWKyAR/s/I0kOV8GonOM7Zv75TqSpdDyiCZFm2vuIgi2deVWq528mjtgm7Hbf+qG3yBjY/yhzxMpZRhzM+hVlMG/xBcduyjxVKxAIigecdsmq/T22fpl8sn3axjHWCIn3LIn/JU 9pcWze09 KDEQU8pz+yTbiCVk5wqPkyneOqdWnBrnu11ttTF1wBbhOR9im2tBEdMuh2g5epTvrlidxju08rToK7D/t6iZivEdg3WTQCS9HmM4Vc0dEcr6P+8ugOQ6Y77iB/Y1YGbj3UM56EE18gypoALR8TaZDeglNTEzdMohC1HIBMn0ZWr+Dqm4jN6iJE44bYKdxg+PgfKF5s5036lTdpHq8rlChkmFow+/MGt793Vj+tvenVpDpTSdVAPcG1HbNjCu+2eLmTh0/FtufV84Z0qY= 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 8/2/23 4:40 AM, Verma, Vishal L wrote: > On Tue, 2023-08-01 at 10:11 +0530, Aneesh Kumar K.V wrote: >> With memmap on memory, some architecture needs more details w.r.t altmap >> such as base_pfn, end_pfn, etc to unmap vmemmap memory. Instead of >> computing them again when we remove a memory block, embed vmem_altmap >> details in struct memory_block if we are using memmap on memory block >> feature. >> >> Acked-by: David Hildenbrand >> Signed-off-by: Aneesh Kumar K.V >> --- >>  drivers/base/memory.c  | 27 +++++++++++++-------- >>  include/linux/memory.h |  8 ++---- >>  mm/memory_hotplug.c    | 55 ++++++++++++++++++++++++++---------------- >>  3 files changed, 53 insertions(+), 37 deletions(-) >> > > >> @@ -2136,10 +2148,10 @@ EXPORT_SYMBOL(try_offline_node); >>   >>  static int __ref try_remove_memory(u64 start, u64 size) >>  { >> -       struct vmem_altmap mhp_altmap = {}; >> -       struct vmem_altmap *altmap = NULL; >> -       unsigned long nr_vmemmap_pages; >> +       int ret; > > Minor nit - there is already an 'int rc' below - just use that, or > rename it to 'ret' if that's better for consistency. > I reused the existing rc variable. >> +       struct memory_block *mem; >>         int rc = 0, nid = NUMA_NO_NODE; >> +       struct vmem_altmap *altmap = NULL; >>   >>         BUG_ON(check_hotplug_memory_range(start, size)); >>   >> @@ -2161,25 +2173,20 @@ static int __ref try_remove_memory(u64 start, u64 size) >>          * the same granularity it was added - a single memory block. >>          */ >>         if (mhp_memmap_on_memory()) { >> -               nr_vmemmap_pages = walk_memory_blocks(start, size, NULL, >> -                                                     get_nr_vmemmap_pages_cb); >> -               if (nr_vmemmap_pages) { >> +               ret = walk_memory_blocks(start, size, &mem, test_has_altmap_cb); >> +               if (ret) { >>                         if (size != memory_block_size_bytes()) { >>                                 pr_warn("Refuse to remove %#llx - %#llx," >>                                         "wrong granularity\n", >>                                         start, start + size); >>                                 return -EINVAL; >>                         } >> - >> +                       altmap = mem->altmap; >>                         /* >> -                        * Let remove_pmd_table->free_hugepage_table do the >> -                        * right thing if we used vmem_altmap when hot-adding >> -                        * the range. >> +                        * Mark altmap NULL so that we can add a debug >> +                        * check on memblock free. >>                          */ >> -                       mhp_altmap.base_pfn = PHYS_PFN(start); >> -                       mhp_altmap.free = nr_vmemmap_pages; >> -                       mhp_altmap.alloc = nr_vmemmap_pages; >> -                       altmap = &mhp_altmap; >> +                       mem->altmap = NULL; >>                 } >>         } >>   Thank you for taking the time to review the patch. -aneesh