Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp3922999ybz; Tue, 28 Apr 2020 02:42:00 -0700 (PDT) X-Google-Smtp-Source: APiQypKAl3YvLF0MvECNt51YAqnnn5+8tsTxPmJIPbkoFD9zhv06xLvif67vD9rxWAvqanegs/W1 X-Received: by 2002:a17:906:160a:: with SMTP id m10mr22792789ejd.8.1588066920087; Tue, 28 Apr 2020 02:42:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588066920; cv=none; d=google.com; s=arc-20160816; b=V2zAQ7qcSSEgOwGYeDCf5JXgjwsRy5t4DUQDZzIP+7Y9NLDqas+vBEcdr/FBIUStaG iO+N1a7EdCnS/VId+7JKWvTVsjx24Cvb9PJ3D4K9xF1x0pYVw89DH82XMNa8Dg2cLuSz T6yLTgEUZxWbmepQleBEgaWjfahcF2zPe2N++xxabL4SiPC8eScCY7Yz3/H+Jpa6V09L lKTBlYjj6Pb7QR4WVDiO7DKVRla3FumnQg6kf6arHzYxsUZZLf1sbOqwVsJqjcoxwzFi mpJ3e2bfkqqFYe0Hz2ui+JB4dcV8wCx2YqyZeETFqnmtOQ42iGcoqymzFYmHMlv0r4// G4+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=Ul1tO9gnUTfw7Jzy5HMrAfbiH2I+KZ9H88JE104nbSE=; b=QH9AxxHbem3hB308IWZascLVX9ZG6Y27cdNOQr0n/aTTFA8dt5AkmVOLRBuaonAIHn eum7MpAZaPbodoqqECUvw6P3IKCoobqcxztssJEqLqo7fDvTCTHYKEaEUbp0yMuLNrfE 3j960m1iCHgIEQa3G8Se99ztVdbP6okQfmeuFEltQOnHp7TywkUydwekzaWgTwEdP7vB tRVwsAlQyjzNiJcvEoEle5ReM6figu5cvtv93zrUxL/N1NvXHz2J9NUdJXyUL+Xv1yyA 33AlV5DGd98ScfZHa2ecwLJLz5fJ3NoT7FStog9wmbxFijdkl3ajiObjSEhO8R6vqx1R +kKw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p20si1601387ejw.505.2020.04.28.02.41.37; Tue, 28 Apr 2020 02:42:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727822AbgD1JjM (ORCPT + 99 others); Tue, 28 Apr 2020 05:39:12 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:38514 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727049AbgD1JjL (ORCPT ); Tue, 28 Apr 2020 05:39:11 -0400 Received: from pps.filterd (m0187473.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 03S9X6cq145754; Tue, 28 Apr 2020 05:38:53 -0400 Received: from ppma04ams.nl.ibm.com (63.31.33a9.ip4.static.sl-reverse.com [169.51.49.99]) by mx0a-001b2d01.pphosted.com with ESMTP id 30mguvtb77-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 28 Apr 2020 05:38:53 -0400 Received: from pps.filterd (ppma04ams.nl.ibm.com [127.0.0.1]) by ppma04ams.nl.ibm.com (8.16.0.27/8.16.0.27) with SMTP id 03S9Twnq010412; Tue, 28 Apr 2020 09:38:50 GMT Received: from b06avi18878370.portsmouth.uk.ibm.com (b06avi18878370.portsmouth.uk.ibm.com [9.149.26.194]) by ppma04ams.nl.ibm.com with ESMTP id 30mcu6wu6e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 28 Apr 2020 09:38:50 +0000 Received: from d06av24.portsmouth.uk.ibm.com (d06av24.portsmouth.uk.ibm.com [9.149.105.60]) by b06avi18878370.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 03S9cm1Z66781692 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 28 Apr 2020 09:38:48 GMT Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3923642045; Tue, 28 Apr 2020 09:38:48 +0000 (GMT) Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C5E1742049; Tue, 28 Apr 2020 09:38:45 +0000 (GMT) Received: from srikart450.in.ibm.com (unknown [9.85.87.72]) by d06av24.portsmouth.uk.ibm.com (Postfix) with ESMTP; Tue, 28 Apr 2020 09:38:45 +0000 (GMT) From: Srikar Dronamraju To: Andrew Morton Cc: Srikar Dronamraju , linuxppc-dev@lists.ozlabs.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Michal Hocko , Mel Gorman , Vlastimil Babka , "Kirill A. Shutemov" , Christopher Lameter , Michael Ellerman , Linus Torvalds Subject: [PATCH v2 1/3] powerpc/numa: Set numa_node for all possible cpus Date: Tue, 28 Apr 2020 15:08:34 +0530 Message-Id: <20200428093836.27190-2-srikar@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200428093836.27190-1-srikar@linux.vnet.ibm.com> References: <20200428093836.27190-1-srikar@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.676 definitions=2020-04-28_05:2020-04-27,2020-04-28 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 mlxlogscore=999 mlxscore=0 suspectscore=0 bulkscore=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004280082 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A Powerpc system with multiple possible nodes and with CONFIG_NUMA enabled always used to have a node 0, even if node 0 does not any cpus or memory attached to it. As per PAPR, node affinity of a cpu is only available once its present / online. For all cpus that are possible but not present, cpu_to_node() would point to node 0. To ensure a cpuless, memoryless dummy node is not online, powerpc need to make sure all possible but not present cpu_to_node are set to a proper node. Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Cc: Michal Hocko Cc: Mel Gorman Cc: Vlastimil Babka Cc: "Kirill A. Shutemov" Cc: Christopher Lameter Cc: Michael Ellerman Cc: Andrew Morton Cc: Linus Torvalds Signed-off-by: Srikar Dronamraju --- Changelog v1:->v2: - Rebased to v5.7-rc3 arch/powerpc/mm/numa.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 9fcf2d195830..b3615b7fdbdf 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c @@ -931,8 +931,20 @@ void __init mem_topology_setup(void) reset_numa_cpu_lookup_table(); - for_each_present_cpu(cpu) - numa_setup_cpu(cpu); + for_each_possible_cpu(cpu) { + /* + * Powerpc with CONFIG_NUMA always used to have a node 0, + * even if it was memoryless or cpuless. For all cpus that + * are possible but not present, cpu_to_node() would point + * to node 0. To remove a cpuless, memoryless dummy node, + * powerpc need to make sure all possible but not present + * cpu_to_node are set to a proper node. + */ + if (cpu_present(cpu)) + numa_setup_cpu(cpu); + else + set_cpu_numa_node(cpu, first_online_node); + } } void __init initmem_init(void) -- 2.20.1