Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965189AbcJXT7V (ORCPT ); Mon, 24 Oct 2016 15:59:21 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:59454 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S938905AbcJXT7O (ORCPT ); Mon, 24 Oct 2016 15:59:14 -0400 From: Reza Arbab To: Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras , Andrew Morton Cc: Bharata B Rao , Nathan Fontenot , Stewart Smith , Alistair Popple , Balbir Singh , "Aneesh Kumar K.V" , linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-mm@kvack.org Subject: [PATCH v5 0/3] powerpc/mm: movable hotplug memory nodes Date: Mon, 24 Oct 2016 14:58:06 -0500 X-Mailer: git-send-email 1.8.3.1 X-TM-AS-GCONF: 00 X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16102419-0020-0000-0000-00000A178D22 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00005972; HX=3.00000240; KW=3.00000007; PH=3.00000004; SC=3.00000187; SDB=6.00772199; UDB=6.00370617; IPR=6.00549016; BA=6.00004826; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00013092; XFM=3.00000011; UTC=2016-10-24 19:58:18 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 16102419-0021-0000-0000-000056B497AC Message-Id: <1477339089-5455-1-git-send-email-arbab@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-10-24_13:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1609300000 definitions=main-1610240346 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2481 Lines: 66 These changes enable the dynamic creation of movable nodes on power. On x86, the ACPI SRAT memory affinity structure can mark memory hotpluggable, allowing the kernel to possibly create movable nodes at boot. While power has no analog of this SRAT information, we can still create a movable memory node, post boot, by hotplugging all of the node's memory into ZONE_MOVABLE. In v1, this patchset introduced a new dt compatible id to explicitly create a memoryless node at boot. Here, things have been simplified to be applicable regardless of the status of node hotplug on power. We still intend to enable hotadding a pgdat, but that's now untangled as a separate topic. v5: * Drop the patches which recognize the "status" property of dt memory nodes. Firmware can set the size of "linux,usable-memory" to zero instead. v4: * http://lkml.kernel.org/r/1475778995-1420-1-git-send-email-arbab@linux.vnet.ibm.com * Rename of_fdt_is_available() to of_fdt_device_is_available(). Rename of_flat_dt_is_available() to of_flat_dt_device_is_available(). * Instead of restoring top-down allocation, ensure it never goes bottom-up in the first place, by making movable_node arch-specific. * Use MEMORY_HOTPLUG instead of PPC64 in the mm/Kconfig patch. v3: * http://lkml.kernel.org/r/1474828616-16608-1-git-send-email-arbab@linux.vnet.ibm.com * Use Rob Herring's suggestions to improve the node availability check. * More verbose commit log in the patch enabling CONFIG_MOVABLE_NODE. * Add a patch to restore top-down allocation the way x86 does. v2: * http://lkml.kernel.org/r/1473883618-14998-1-git-send-email-arbab@linux.vnet.ibm.com * Use the "status" property of standard dt memory nodes instead of introducing a new "ibm,hotplug-aperture" compatible id. * Remove the patch which explicitly creates a memoryless node. This set no longer has any bearing on whether the pgdat is created at boot or at the time of memory addition. v1: * http://lkml.kernel.org/r/1470680843-28702-1-git-send-email-arbab@linux.vnet.ibm.com Reza Arbab (3): powerpc/mm: allow memory hotplug into a memoryless node mm: make processing of movable_node arch-specific mm: enable CONFIG_MOVABLE_NODE on non-x86 arches arch/powerpc/mm/numa.c | 13 +------------ arch/x86/mm/numa.c | 35 ++++++++++++++++++++++++++++++++++- mm/Kconfig | 2 +- mm/memory_hotplug.c | 31 ------------------------------- 4 files changed, 36 insertions(+), 45 deletions(-) -- 1.8.3.1