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 25DDFEB64D7 for ; Sun, 18 Jun 2023 07:30:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 948C36B0071; Sun, 18 Jun 2023 03:30:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8D19D6B0072; Sun, 18 Jun 2023 03:30:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 74B196B0075; Sun, 18 Jun 2023 03:30:50 -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 61B7F6B0071 for ; Sun, 18 Jun 2023 03:30:50 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 197581403FE for ; Sun, 18 Jun 2023 07:30:50 +0000 (UTC) X-FDA: 80915046660.16.30DAA81 Received: from mail-yb1-f174.google.com (mail-yb1-f174.google.com [209.85.219.174]) by imf19.hostedemail.com (Postfix) with ESMTP id 66D0B1A0002 for ; Sun, 18 Jun 2023 07:30:48 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=MTNOWty8; spf=pass (imf19.hostedemail.com: domain of zhiguangni01@gmail.com designates 209.85.219.174 as permitted sender) smtp.mailfrom=zhiguangni01@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687073448; a=rsa-sha256; cv=none; b=A2KbU4+g4kZXssIzoWOORPfTK2G9YDmed+XsDnKLDYx5/kwl9w+ENQby33JI7Hb3uAQQp+ Vv4iojfXfg+/NIgmiok/tOUm9tdU/QcUJNFEyENnlDqt8OnVzrKojBjrjG9einiyv4mcEG EbhmK0emwS/d90MIVN4cUqFsxthEkaM= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=MTNOWty8; spf=pass (imf19.hostedemail.com: domain of zhiguangni01@gmail.com designates 209.85.219.174 as permitted sender) smtp.mailfrom=zhiguangni01@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687073448; 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=GpkTkFOMPY9g8skCMNjWh2GIwghKNPBLJZcIyUZbKMY=; b=nrDmslpiealYAYpC08cT1wTqYU0iXxDlqwz2UA9206vJ7k645wieupW+lNYvBVRetyEKpN zg12zXDniURwpMsFOlsEft/kukL9FAWkLpoSbXbhyEnkqwmCxJVr0+FATrVWuZdw9xDP4O 4nHw5ZGbjPblXHZT1t61yVCUgG/c1tU= Received: by mail-yb1-f174.google.com with SMTP id 3f1490d57ef6-bd6d9d7da35so2601088276.0 for ; Sun, 18 Jun 2023 00:30:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687073447; x=1689665447; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=GpkTkFOMPY9g8skCMNjWh2GIwghKNPBLJZcIyUZbKMY=; b=MTNOWty8sSIzlRJfIO2vIN2hsFJlvKyooHme6SOOygoIuKLiU6vwtpcKAxgsRQGCiy obAltEuK17x5oALGPyI5GM3iVnNvNrfu1L3KFLZ4mAEenTpUPyDKU0GtxanyVFrOw4xg V+TytkF05W7BFl83cy1dhoMgCPna8CSXk5ayNqWZuOdC/d6syJaZAoXFDutIfPO/uwTZ C392JQqnSZBW8pjiRhif0ikGzkhFr0SQeVOwURg432qbkE10PHmsL0xgbrB7k1/JY7OY knu15jpSgspeVtvL21kBcv80jrqkH0tCC1yAEP5yVkU8guldWtys4n35SGjhzGBmX1ZL fW4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687073447; x=1689665447; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=GpkTkFOMPY9g8skCMNjWh2GIwghKNPBLJZcIyUZbKMY=; b=Xo9TxSBU8pZZqV4znJZZpuZYoPmm1owmOiBJNKfvgoeDtTqoQTgkldkmykQsQkvjYR CEQRNOUFwpD6yAzCgxgr98j0xmn3atXgRSewnHYXBfGGEuIsJlM0wdelNqV9U3h9+Q9D gNbPZust2L1W3lYTmnQ786Hd3R59xk+dN3X3neqTiJHkIMqjOWovw5c1xCNeteo6baiP qWHCDmX5gtGJyX+YhzZItOlO9JbjwM1TIDn0xTmb3TIyP9q2K46gHZXpGUTaltKzuWrw GQHvszp7tTmpJvWF1ZFnQcACdGD6Tlw/INWxg3KkslUhVD67BucHaX13NvV7szpxDl3K Frew== X-Gm-Message-State: AC+VfDzpz3H8rWYuBSQhpxuATosLS3yVhkO6ZGBdi1A4oJsMg46Qou9z C5o8eXqxtlCiv4hlKWRIR19tE1DGwvWGdmPnUps= X-Google-Smtp-Source: ACHHUZ7wfPMknVqcHtn8Fydlw32kRSMNVHIkLtrIcmKI/AMde8bhUhQHGm8dW4CcP2CWd1dQf+wOXdY5I2oeTSR6OJM= X-Received: by 2002:a25:c514:0:b0:bc9:f5c8:7514 with SMTP id v20-20020a25c514000000b00bc9f5c87514mr3907005ybe.26.1687073447400; Sun, 18 Jun 2023 00:30:47 -0700 (PDT) MIME-Version: 1.0 References: <20230615142016.419570-1-zhiguangni01@gmail.com> <20230615170011.GK52412@kernel.org> <20230618070850.GY52412@kernel.org> In-Reply-To: <20230618070850.GY52412@kernel.org> From: Liam Ni Date: Sun, 18 Jun 2023 15:30:36 +0800 Message-ID: Subject: Re: [PATCH] x86,NUMA:Get the number of ram pages directly in numa_meminfo_cover_memory() To: Mike Rapoport Cc: dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, hpa@zytor.com, akpm@linux-foundation.org, x86@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 66D0B1A0002 X-Stat-Signature: 5b9nxj6i3o3qxnwjiog1mjsyfawc9gdj X-Rspam-User: X-HE-Tag: 1687073448-663443 X-HE-Meta: U2FsdGVkX18tytqhxlh5C5xWj8YDwOoXt45gQALXmcjHjq5J+Fi+KxNtI/RRUKbK7vy6zsKS3YiGHgbq4PBvOQjGHQDIdmiZdBH7RXad7gs/Xka5endJ6EiMo0a29MXNUfU55dHeUDcmJTfQCNPuDcrrT9TqKGYYArbEIII1OLD3rk30XfLW1bJV0bfTEWb+dpQbWPCxtYfbnkCLTJ2jOzVH0KisZfazr6F8OtMnPZyFB+piLlrYmL6Wjlwvgu8ixdzLk9THYN+VGtU9/HnGUE/B0i8PXzxaqjkjtRu+Om6nI9szGPAcBoJry0cF2BD9DFUThhDn+42rVzSGOxGUfowkwAAsJRDTFbq6h0ZpRkPB9aq1MTe4//h6E773JlswqnnSRbFIZmx7eN55QUKGJHc1PrGaoLTbKsmpx/Ha/Ion9hMk3UHLEXlj8P44LG6mpEc4Fc2h84d8rvsQfmHz1/5xPXueQtRxputzfnLMEuWeQZBJF92ucOWMNoY6Yzgx1Jt5m8xKSUyMqnUS60ZKyDZLAK8QcxpctCZUMjYmCh9kboj3umjEbosGm7QYmV2KiDCQj3R9Oh4OpsSFZ8AG23c3f7NDP/+sU3KrJTQbrrFnxkKXIP6WPtl8iWrVQRW6NV+beYLGGKCuwdwTWwX0d84nnUHMbSmv2FN0MnJyVp296pdHsC9FJwaWqYBy5SvABtQjbR0BTbC+ci6GfO49l0D1dbRg95NYDo5wYWYPof7m30XgkH3Dp0WiKZj9j/6Mvu8rMrnXacGkbYphK1cMoQz1wXnaj29aLzCH9vlRdw8ZuHCqm4ZyTB6MGcYz9if6Ho6FndaJQ7u2BNZ/5CH7lV4Ygzix2GKwgYsKuN8s9o/k6botLEG3NctaqPa6uFBByG7sGoFk393bmxtF3wWvvA9DSnEVuxqKwXntJWNBkJTWdP9Ilxlkr8ADbgWgoC5y2UtoZhNcCfwjIPvaQZE is7hR6zn 3rmVcNqNl0+408HmjlXtUGWAasVpNYljrps4zg4sg10uQLP6TjSVtP//LEhITyPlW9NGHKc07XLuXrkYJyi1Tf9eNxVs+jQSZVzbVXFzJX/oxVBBrwpEMuuq3CvgOyRJ/6d0LP1hlztUih5swJ9Qd1Sgib9VliJ3DnurvPMRXcw/ZARHUR/vlxV+SxsfhYS+i2tJzwq/o1vb6AIFS280LBdWiXBS4xP+MXocYA9XmnfkhNm1tB2zGdO+OxSwbUSTIDn8XiFswSOS7abzwfbYQSPXyrmjRiK6eZAywVWdgXhT8ozFIhNQqMHgD4klBcCjZOna9ZJAAZ2SJZO9iASZYE7ixog/uOeFhSERpVipPdvOIzXLHzW33A2JRlejZnrNb7xRp8Uby40ikEOUyliKsG9bssbPs2CmG99DwlFGUWtXn678cdqwJG00mqxyPgPGzH0GVnt2/sx1adZE+ngzRezCH556yh2d355AxJxJuS/Fo9fE= 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: Hi, On Sun, 18 Jun 2023 at 15:09, Mike Rapoport wrote: > > On Sat, Jun 17, 2023 at 06:47:11PM +0800, Liam Ni wrote: > > On Fri, 16 Jun 2023 at 01:00, Mike Rapoport wrote: > > > > > > On Fri, Jun 16, 2023 at 12:20:16AM +1000, Liam Ni wrote: > > > > In a previous implementation,The ram page is calculated > > > > by counting the number of holes, > > > > however,the number of ram pages is calculated during hole calculation. > > > > Therefore,we can directly calculate the amount of ram pages. > > > > > > > > Signed-off-by: Liam Ni > > > > --- > > > > arch/x86/mm/numa.c | 4 ++-- > > > > include/linux/mm.h | 4 ++++ > > > > mm/mm_init.c | 33 +++++++++++++++++++++++++++++++++ > > > > 3 files changed, 39 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c > > > > index 2aadb2019b4f..8ea0e956e3d7 100644 > > > > --- a/arch/x86/mm/numa.c > > > > +++ b/arch/x86/mm/numa.c > > > > @@ -461,12 +461,12 @@ static bool __init numa_meminfo_cover_memory(const struct numa_meminfo *mi) > > > > u64 s = mi->blk[i].start >> PAGE_SHIFT; > > > > u64 e = mi->blk[i].end >> PAGE_SHIFT; > > > > numaram += e - s; > > > > - numaram -= __absent_pages_in_range(mi->blk[i].nid, s, e); > > > > + numaram += __available_pages_in_range(mi->blk[i].nid, s, e); > > > > > > This is wrong. You add number of pages in range core MM sees to the number > > > of pages covered by the numa_meminfo. > > > > > > More generally, rather than traverse all the numa_meminfo's and for each of > > > them traverse all the regions in memblock.memory it's enough to count > > > memory in memblock that doesn't have the node assigned and compare it to > > > memblock_phys_mem_size(). > > > > Logic like below? > > static bool __init numa_meminfo_cover_memory(const struct numa_meminfo *mi) > > { > > u64 error_value; > > error_value = pages_without_nid_in_range(0,max_pfn); > > if ((error_value ) >= (1 << (20 - PAGE_SHIFT))) { > > //print error information > > return false; > > } > > return true; > > } > > > > I can't figure out why compare it with memblock_phys_mem_size(). > > The number of pages in memblock that doesn't have the node > > assigned,which also means that these pages are not in numa_info. > > So these pages can represent the number of lose pages. > > Yes, there is no need to compare with memblock_phys_mem_size() if you count > pages that don't have nid set in memblock. Got it,i will send V2. Liam. > > -- > Sincerely yours, > Mike.