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 6DC6BC6FD1F for ; Tue, 2 Apr 2024 08:20:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D95176B0092; Tue, 2 Apr 2024 04:20:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D42726B0093; Tue, 2 Apr 2024 04:20:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C31E06B0095; Tue, 2 Apr 2024 04:20:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id AA5236B0092 for ; Tue, 2 Apr 2024 04:20:12 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3EE08C09EE for ; Tue, 2 Apr 2024 08:20:12 +0000 (UTC) X-FDA: 81963894264.22.E32EF46 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf18.hostedemail.com (Postfix) with ESMTP id 916A01C0008 for ; Tue, 2 Apr 2024 08:20:10 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=jSf5zaYg; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf18.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712046010; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dGhJFdVr3LabS0ae6p+G/8E/5s2DbrPfMYfUPHdXyzE=; b=cAwfojxrBw+gvdBWqA+prKcAIbl0d8Ow8Ql8LQHjOKZjfzIvmOzUVWT20bX5D7nW9hJxlS njdXN7cjH+jGCZyQ2cJ6BWrzT8A+ItOyLIy/R0bR3hnzsaZo6DGkHVOOd5brhSUPTTTvU7 10/nnmdLPE1psm7yolegfY0LD4bT2vM= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=jSf5zaYg; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf18.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712046010; a=rsa-sha256; cv=none; b=OtOjEPrec4/wzxa5LQM+PvNE9yA5B+olsJWMv+2yXD4C/CXzh6nsHrGGQ4Zv+dxB0a20DW WxYyBLWlTS80vNqam8sWZWwkWx9cRIji9qfGVjFbbG+Top0SaFYdEJ3vcCxTFcBFfelRkG 5ekGJThYVqOGdnj31bgDKgrnjpVLTgk= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id BBF8A60DD2; Tue, 2 Apr 2024 08:20:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F21F0C433F1; Tue, 2 Apr 2024 08:20:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712046009; bh=FTgR8Tjr0F2zkSmyoxtbwLCJ5yHAchnhYM2xhGJIKPE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=jSf5zaYg58wqOsCgIWRrpYgkZc13E/w2siHH5t4UpBHK6T3p3vl/T9XdMLJVIzmkp O5l+Dbv8Lmh6N7DYhZl1HZ6UhuJomO0v6cXw+7v4mJj5G2k3RX1n0sQ2+nMXXvdk7g fI/tTy7hPYjIAKWbj8OcSrNL70GVRmwYvrmO/53U3Sj+Oy453Alsv5D1xf7MCQytHy 8p6hJMhWYLJrJNY2XJRYRZluu83iJjzLgddCMxZjRMkdl3a6OklK7CVRssuG+2Wa1U G+c0xxmvYSlzSNsEEbiaxlr0EV9qXM50Qr0tjzKx5+iWRZ3m2QEJIiPgrXQHkd0VgV BRqtY6KRpr0/Q== Date: Tue, 2 Apr 2024 11:19:26 +0300 From: Mike Rapoport To: Baoquan He Cc: linux-mm@kvack.org, akpm@linux-foundation.org, mgorman@suse.de Subject: Re: [PATCH 1/7] mm: move array mem_section init code out of memory_present() Message-ID: References: <20240326061134.1055295-1-bhe@redhat.com> <20240326061134.1055295-2-bhe@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240326061134.1055295-2-bhe@redhat.com> X-Rspam-User: X-Stat-Signature: cjnz54trjt4tsrzreda9ff19ktwx1y7i X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 916A01C0008 X-HE-Tag: 1712046010-859336 X-HE-Meta: U2FsdGVkX1/QPmVuLvvHf16zpoKzNpLkqAq4NhirTh7ggvaegIV4ycc3+i1eRrlMvsKYqXhu67vgcdmA1XFMVUUKbj0oFRTpkNr/0kYQJuQJeUI5FIDU0m2I5pd/P2F8Ig8YMgYI7Xmq/EvC9aIHWF7/VVitf3/WnOvH+Vv8f5heQ2FRRlHE5is46o7aNxbUX7w+ybDHiv0Oct4N4q83KLTBzZmaoSCn8mqujCwCUdrxIIOA2jpiiO2JnZntk3Gqi+yqs3pEUbq1xLrch+V8LJ0oSr/dsjBTvnuKJ+Be6x9Aq49wLFXEdqwHKN/C0OtSxgAvuVFGLSfyLP7ofzFl/VJj99vCkj9HXZ4+PWTesLgmCSdFc3qp/qZnvKzQPLc/GuVJ9V78es31c0uxyR6bm3aUS7UkxJdALZJGiWzsuTfPd9KnXE1r48aUPrrCL1eSs56mo/kCOXirsncbwdULOsdj8NXCGr2cQlfNgEjRS3eldWIL/6Jzmn9AZiJWNEaXnooKFxypXt/I9UviAM9Elf49CR0vt1/ukguOgKu6xCKYdPQMMB89WERQRmT5HvC9J9NR/t90BinOzKerY0oQwn3EDxNSERfW2Oa6kpbBeltgJyOxEaNTLgZuIG7hFWVIWrptEnCzAfg9HHSef2goBsOeQgxpfgrHsuqj6xCCNKZiRPLI38pDTAL4XTg9i7VDr8W6kZe412+GlcM6PVMAO4uVgTMQ+Anv+cfs6neNoKnrF6a4bvXG3fiFM0+Lf43Q7J6z3MSGWFxsohv8y/5ORG6PsRAYqBtc2JeNp8o0bnrUDZmCFwDvoAHl56rdN8NFYNuJxvh7vHglcu4HrHJGRD/+FVEaszRTUTgeUcS0Do7qmKnpSAwZmsEk63cHzlQhb9Nzf0pvvScJM7ej7jmRSEV86AFhzT77L8QnoeR15Yx5j+Hm5KPzll5vFevF1RbG48Jt3ehWEEJQpGy8s8Z 1FaMh0GS ERdkWz0QwrfLA56JOPnI0iJCZq3GGD+O2kJCiQY0Ghn/VZLIqIrKZcwuIOchEKmq5/zbj3ayHXbo7WycoirXUgPsvzc6HBh3SXUfhX3qZE5Sp3DarXITc4rsLjzWLnM2bCX7NfgHotnVVwrX54JtAWLkIL529YOUHRN7rdyQVjZ+Wt8vcUpQP2/fNZ3BjZ3AngdbEOuf8iRDhS1hSSroZ8zT8zq3NIznErx1G92VWds1wGfFpgClTtzVK50ncpY4i13ur 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: List-Subscribe: List-Unsubscribe: On Tue, Mar 26, 2024 at 02:11:27PM +0800, Baoquan He wrote: > When CONFIG_SPARSEMEM_EXTREME is enabled, mem_section need be initialized > to point at a two-dimensional array, and its 1st dimension of length > NR_SECTION_ROOTS will be dynamically allocated. Once the allocation is > done, it's available for all nodes. > > So take the 1st dimension of mem_section initialization out of > memory_present()(), and put it into memblocks_present() which is a more > appripriate place. > > Signed-off-by: Baoquan He > --- > mm/sparse.c | 26 +++++++++++++------------- > 1 file changed, 13 insertions(+), 13 deletions(-) > > diff --git a/mm/sparse.c b/mm/sparse.c > index aed0951b87fa..46e88549d1a6 100644 > --- a/mm/sparse.c > +++ b/mm/sparse.c > @@ -226,19 +226,6 @@ static void __init memory_present(int nid, unsigned long start, unsigned long en > { > unsigned long pfn; > > -#ifdef CONFIG_SPARSEMEM_EXTREME > - if (unlikely(!mem_section)) { > - unsigned long size, align; > - > - size = sizeof(struct mem_section *) * NR_SECTION_ROOTS; > - align = 1 << (INTERNODE_CACHE_SHIFT); > - mem_section = memblock_alloc(size, align); > - if (!mem_section) > - panic("%s: Failed to allocate %lu bytes align=0x%lx\n", > - __func__, size, align); > - } > -#endif > - > start &= PAGE_SECTION_MASK; > mminit_validate_memmodel_limits(&start, &end); > for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION) { > @@ -267,6 +254,19 @@ static void __init memblocks_present(void) > unsigned long start, end; > int i, nid; > > +#ifdef CONFIG_SPARSEMEM_EXTREME > + if (unlikely(!mem_section)) { With the new calling sequence sparse_init() -> memblocks_present() -> allocate mem_section, mem_section here will be NULL, so this if is not really relevant. We might want to add WARN_ON_ONCE(mem_section) just in case to catch multiple calls to sparse_init(). > + unsigned long size, align; > + > + size = sizeof(struct mem_section *) * NR_SECTION_ROOTS; > + align = 1 << (INTERNODE_CACHE_SHIFT); > + mem_section = memblock_alloc(size, align); > + if (!mem_section) > + panic("%s: Failed to allocate %lu bytes align=0x%lx\n", > + __func__, size, align); > + } > +#endif > + > for_each_mem_pfn_range(i, MAX_NUMNODES, &start, &end, &nid) > memory_present(nid, start, end); > } > -- > 2.41.0 > -- Sincerely yours, Mike.