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=-1.0 required=3.0 tests=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 8FB10C2D0EB for ; Mon, 30 Mar 2020 07:42:51 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 5F574206CC for ; Mon, 30 Mar 2020 07:42:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5F574206CC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id D60E06B000C; Mon, 30 Mar 2020 03:42:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D11696B0037; Mon, 30 Mar 2020 03:42:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BD8646B006C; Mon, 30 Mar 2020 03:42:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0176.hostedemail.com [216.40.44.176]) by kanga.kvack.org (Postfix) with ESMTP id A21BD6B000C for ; Mon, 30 Mar 2020 03:42:50 -0400 (EDT) Received: from smtpin19.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 560E1181AD0A5 for ; Mon, 30 Mar 2020 07:42:50 +0000 (UTC) X-FDA: 76651236900.19.eggs11_18bacd9dc0642 X-HE-Tag: eggs11_18bacd9dc0642 X-Filterd-Recvd-Size: 5805 Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by imf06.hostedemail.com (Postfix) with ESMTP for ; Mon, 30 Mar 2020 07:42:49 +0000 (UTC) Received: by mail-wm1-f68.google.com with SMTP id c187so18890187wme.1 for ; Mon, 30 Mar 2020 00:42:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=G2GbSd8nfrGqlF2CTXpVag+1XrsMr3qO8HlwnrY50kI=; b=qtfForTVCYHURFflQJbANeJ9swq0wub/pJOoMHArkxSDqmoASzgQnNpT7PK0WbOzV6 QQHjg8yBmsT50gXilng1CrLLmporzs440RI174R4nbGMrzHnUwIMRcisLqX+NW5vjLd1 4R2tiXZPo0nFlVSye1nlrCtXsv/wI2DWR9NABp6p2wehuujgXqIkS83uZ6x4Jvaz+u2M 6pCNUQu3ql+up1i4e5bKSiCRqV9YAJBCPHMH2dbdOlawCfGLtIoF+uj1p0cbb48+S1x8 pQXCVzQd+vEn6QIF0j1YAIFxKhmXkjkaZT9J50jUfEz50Ib+dd7wGm4ttslHV0UvrXG+ nZeg== X-Gm-Message-State: ANhLgQ2MOj2KPYfFHcE9LJ91UzVMnmTaeAUh0jkXCF16x4O2hMmeMWwT PKGqnF2KklcLbO5c5qUNeLI= X-Google-Smtp-Source: ADFU+vtTO40ug73YLnNFJoExcCn1PsdhzxCpQLzjsmdgJmi+fsq6hPq9O7t9QjqmLmc+CwVgWIwn6A== X-Received: by 2002:a05:600c:4145:: with SMTP id h5mr11604265wmm.3.1585554168707; Mon, 30 Mar 2020 00:42:48 -0700 (PDT) Received: from localhost (ip-37-188-180-223.eurotel.cz. [37.188.180.223]) by smtp.gmail.com with ESMTPSA id 98sm21456009wrk.52.2020.03.30.00.42.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2020 00:42:47 -0700 (PDT) Date: Mon, 30 Mar 2020 09:42:46 +0200 From: Michal Hocko To: Hoan Tran Cc: Catalin Marinas , Will Deacon , Andrew Morton , Vlastimil Babka , Oscar Salvador , Pavel Tatashin , Mike Rapoport , Alexander Duyck , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , "David S. Miller" , Heiko Carstens , Vasily Gorbik , Christian Borntraeger , "open list:MEMORY MANAGEMENT" , linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, lho@amperecomputing.com, mmorana@amperecomputing.com Subject: Re: [PATCH v3 0/5] mm: Enable CONFIG_NODES_SPAN_OTHER_NODES by default for NUMA Message-ID: <20200330074246.GA14243@dhcp22.suse.cz> References: <1585420282-25630-1-git-send-email-Hoan@os.amperecomputing.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1585420282-25630-1-git-send-email-Hoan@os.amperecomputing.com> 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 Sat 28-03-20 11:31:17, Hoan Tran wrote: > In NUMA layout which nodes have memory ranges that span across other nodes, > the mm driver can detect the memory node id incorrectly. > > For example, with layout below > Node 0 address: 0000 xxxx 0000 xxxx > Node 1 address: xxxx 1111 xxxx 1111 > > Note: > - Memory from low to high > - 0/1: Node id > - x: Invalid memory of a node > > When mm probes the memory map, without CONFIG_NODES_SPAN_OTHER_NODES > config, mm only checks the memory validity but not the node id. > Because of that, Node 1 also detects the memory from node 0 as below > when it scans from the start address to the end address of node 1. > > Node 0 address: 0000 xxxx xxxx xxxx > Node 1 address: xxxx 1111 1111 1111 > > This layout could occur on any architecture. Most of them enables > this config by default with CONFIG_NUMA. This patch, by default, enables > CONFIG_NODES_SPAN_OTHER_NODES or uses early_pfn_in_nid() for NUMA. I am not opposed to this at all. It reduces the config space and that is a good thing on its own. The history has shown that meory layout might be really wild wrt NUMA. The config is only used for early_pfn_in_nid which is clearly an overkill. Your description doesn't really explain why this is safe though. The history of this config is somehow messy, though. Mike has tried to remove it a94b3ab7eab4 ("[PATCH] mm: remove arch independent NODES_SPAN_OTHER_NODES") just to be reintroduced by 7516795739bd ("[PATCH] Reintroduce NODES_SPAN_OTHER_NODES for powerpc") without any reasoning what so ever. This doesn't make it really easy see whether reasons for reintroduction are still there. Maybe there are some subtle dependencies. I do not see any TBH but that might be burried deep in an arch specific code. > v3: > * Revise the patch description > > V2: > * Revise the patch description > > Hoan Tran (5): > mm: Enable CONFIG_NODES_SPAN_OTHER_NODES by default for NUMA > powerpc: Kconfig: Remove CONFIG_NODES_SPAN_OTHER_NODES > x86: Kconfig: Remove CONFIG_NODES_SPAN_OTHER_NODES > sparc: Kconfig: Remove CONFIG_NODES_SPAN_OTHER_NODES > s390: Kconfig: Remove CONFIG_NODES_SPAN_OTHER_NODES > > arch/powerpc/Kconfig | 9 --------- > arch/s390/Kconfig | 8 -------- > arch/sparc/Kconfig | 9 --------- > arch/x86/Kconfig | 9 --------- > mm/page_alloc.c | 2 +- > 5 files changed, 1 insertion(+), 36 deletions(-) > > -- > 1.8.3.1 > -- Michal Hocko SUSE Labs