From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ganapatrao Kulkarni Date: Tue, 02 Feb 2016 10:21:15 +0000 Subject: [PATCH v10 0/8] arm64, numa: Add numa support for arm64 platforms Message-Id: <1454407763-1017-1-git-send-email-gkulkarni@caviumnetworks.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-ia64@vger.kernel.org, linux-metag@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, linux-arch@vger.kernel.org, Will.Deacon@arm.com, catalin.marinas@arm.com, robh+dt@kernel.org, mark.rutland@arm.com, grant.likely@linaro.org, leif.lindholm@linaro.org, rfranz@cavium.com, ard.biesheuvel@linaro.org, msalter@redhat.com, steve.capper@linaro.org, hanjun.guo@linaro.org, al.stone@linaro.org, arnd@arndb.de, pawel.moll@arm.com, ijc+devicetree@hellion.org.uk, galak@codeaurora.org, rjw@rjwysocki.net, lenb@kernel.org, marc.zyngier@arm.com, lorenzo.pieralisi@arm.com, bhelgaas@google.com, tony.luck@intel.com, fenghua.yu@intel.com, james.hog Cc: gpkulkarni@gmail.com v10: - Incorporated review comments from Rob Herring. - Moved numa binding and implementation to devicetree core. - Added cleanup patch to remove redundant NODE_DATA macro from asm header files - Include numa balancing support for arm64 patch in this series. - Fix tile build issue reported by the kbuild robot(patch 7) v9: - Added cleanup patch to reuse and avoid redefinition of cpumask_of_pcibus as suggested from Will Deacon and Bjorn Helgaas. - Including patch to Make pci-host-generic driver numa aware. - Incorporated comment from Shannon Zhao. v8: - Incorporated review comments of Mark Rutland and Will Deacon. - Added pci helper function and macro for numa. v7: - managing numa memory mapping using memblock. - Incorporated review comments of Mark Rutland. v6: - defined and implemented the numa dt binding using node property proximity and device node distance-map. - renamed dt_numa to of_numa v5: - created base verion of numa.c which creates dummy numa without using dt on single socket platforms. Then added patches for dt support. - Incorporated review comments from Hanjun Guo. v4: done changes as per Arnd review comments. v3: Added changes to support numa on arm64 based platforms. Tested these patches on cavium's multinode(2 node topology) platform. In this patchset, defined and implemented dt bindings for numa mapping for core and memory using device node property arm,associativity. v2: Defined and implemented numa map for memory, cores to node and proximity distance matrix of nodes. v1: Initial patchset to support numa on arm64 platforms. Note: 1. This patchset is tested for numa with dt on thunderx single socket and dual socket boards. 2. Numa DT booting needs the dt memory nodes, which are deleted in current efi-stub, hence to try numa with dt, you need to rebase with ard's patchset. http://git.linaro.org/people/ard.biesheuvel/linux-arm.git/shortlog/refs/heads/arm64-uefi-early-fdt-handling 3. PATCH[7,8] are not tested for other architectures. Ganapatrao Kulkarni (8): arm64, numa: adding numa support for arm64 platforms. Documentation, dt, numa: dt bindings for numa. dt, numa: adding numa dt binding implementation. arm64, numa : Enable numa dt for arm64 platforms. arm64, dt, thunderx: Add initial dts for Cavium Thunderx in 2 node topology. arm64, mm, numa: Adding numa balancing support for arm64. topology, cleanup: Avoid redefinition of cpumask_of_pcibus in asm header files. numa, mm, cleanup: remove redundant NODE_DATA macro from asm header files. Documentation/devicetree/bindings/numa.txt | 272 ++++++++ arch/arm64/Kconfig | 26 + arch/arm64/boot/dts/cavium/Makefile | 2 +- arch/arm64/boot/dts/cavium/thunder-88xx-2n.dts | 83 +++ arch/arm64/boot/dts/cavium/thunder-88xx-2n.dtsi | 806 ++++++++++++++++++++++++ arch/arm64/include/asm/mmzone.h | 10 + arch/arm64/include/asm/numa.h | 45 ++ arch/arm64/include/asm/pgtable.h | 18 + arch/arm64/include/asm/topology.h | 7 + arch/arm64/kernel/pci.c | 10 + arch/arm64/kernel/setup.c | 4 + arch/arm64/kernel/smp.c | 4 + arch/arm64/mm/Makefile | 1 + arch/arm64/mm/init.c | 34 +- arch/arm64/mm/mmu.c | 1 + arch/arm64/mm/numa.c | 404 ++++++++++++ arch/ia64/include/asm/topology.h | 4 - arch/m32r/include/asm/mmzone.h | 4 +- arch/metag/include/asm/mmzone.h | 4 +- arch/metag/include/asm/topology.h | 3 - arch/powerpc/include/asm/mmzone.h | 8 +- arch/powerpc/include/asm/topology.h | 4 - arch/s390/include/asm/mmzone.h | 6 +- arch/s390/include/asm/pci.h | 2 +- arch/s390/include/asm/topology.h | 1 + arch/sh/include/asm/mmzone.h | 4 +- arch/sh/include/asm/topology.h | 3 - arch/sparc/include/asm/mmzone.h | 6 +- arch/tile/include/asm/pci.h | 2 - arch/tile/include/asm/topology.h | 3 + arch/x86/include/asm/mmzone.h | 3 +- arch/x86/include/asm/mmzone_32.h | 5 - arch/x86/include/asm/mmzone_64.h | 17 - arch/x86/include/asm/pci.h | 2 +- arch/x86/include/asm/topology.h | 1 + drivers/of/Kconfig | 11 + drivers/of/Makefile | 1 + drivers/of/of_numa.c | 207 ++++++ include/asm-generic/mmzone.h | 24 + include/asm-generic/topology.h | 4 +- include/linux/of.h | 4 + 41 files changed, 1986 insertions(+), 74 deletions(-) create mode 100644 Documentation/devicetree/bindings/numa.txt create mode 100644 arch/arm64/boot/dts/cavium/thunder-88xx-2n.dts create mode 100644 arch/arm64/boot/dts/cavium/thunder-88xx-2n.dtsi create mode 100644 arch/arm64/include/asm/mmzone.h create mode 100644 arch/arm64/include/asm/numa.h create mode 100644 arch/arm64/mm/numa.c delete mode 100644 arch/x86/include/asm/mmzone_64.h create mode 100644 drivers/of/of_numa.c create mode 100644 include/asm-generic/mmzone.h -- 1.8.1.4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754390AbcBBKK1 (ORCPT ); Tue, 2 Feb 2016 05:10:27 -0500 Received: from mail-bn1bon0093.outbound.protection.outlook.com ([157.56.111.93]:34720 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754073AbcBBKKU (ORCPT ); Tue, 2 Feb 2016 05:10:20 -0500 Authentication-Results: lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=none action=none header.from=caviumnetworks.com; From: Ganapatrao Kulkarni To: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , CC: Subject: [PATCH v10 0/8] arm64, numa: Add numa support for arm64 platforms Date: Tue, 2 Feb 2016 15:39:15 +0530 Message-ID: <1454407763-1017-1-git-send-email-gkulkarni@caviumnetworks.com> X-Mailer: git-send-email 1.8.1.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BM1PR01CA0067.INDPRD01.PROD.OUTLOOK.COM (25.163.199.39) To CY1PR0701MB1696.namprd07.prod.outlook.com (25.163.20.30) X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1696;2:fT4T13XujBTq69SY0sy5Tx9xD85SUiJlzGyV4/GioCa5O2VyKDD2MnWNglBRSiJoA6qyThxWk8p+Pof+RPkTwCquCaohJBBkucfIdNJ1d81QJSlYhe7utdKWmdrKpG/uq+DCYp/4bWGQXXTgWzj4ag==;3:D9qPk1nMiJTuO9GjU+BHQKhmRZsETHGXYUlQn6QcwUhYZtFrPCv7AN0dMrgUBPUq76LkkPuYnQC39/GOOvU5s04KLPIiCfaoe+kUh3gfRR0pebLyJVLyBTHNaJHsKVmG;25:DRfj7AydnEEEhEMJvnLgsn2VfEsMT4otJxHTe7gW0dMw29+wdmf7ApIShU30GU4JjnMaheuwNSxrwlp9+qIJL/YnTK8E5apT73dx08YsvtUEu4q9JyJDvasFDqMfwn0LScnVZh+yhWhCGXB+GrGou6IxI0Bf6fyh2l2jrY877yUieBF9mT/dchyEPyH7EVgpPOLvBifh5cHy3bbkZOIYiE2XN80iXAz5rxc6IqeZNS4EbahL8yud4o+YBOabddx4 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0701MB1696; X-MS-Office365-Filtering-Correlation-Id: fd0f086d-4c0f-4d3b-57c7-08d32bb90c2c X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1696;20:2dNZMWFC6uU5qeKQCixoPnKxCnLWxZraHQ50eBjOeKTWpR+F6Tcfs7FxB37eXVUfdA7g3LdND8GsDf/FTY1Zl1cDz/jxrk48TYoxzFBGNf9+c2Wmrb3lDCWJ5t0rnzirWsyv/GijEWTdsyAYjXUgDEK/HguNDJQdhqM+oF2zTkchu6GXOWEReB1dspAK0bPIRaZhGclAzu2jiJJP9CAphDUH8UdZluKgeel/Gv2koaaK0K37XvtxwSc1V21ju/5+yKjiHX0pYlHus1/XXKPnX5SdJEQGKAyhzhdYJcDaETLnN88jRLMUpBdD/LPlC2cAyjp71yr21r2Fhpg3mtf2WTKWo8cWlx4fgoUR/QE0BJhuhmJY5qbCwl8VuMjedEZf9BNxlmM7SnOYS8Gl3sGLsyfUBXusQRbzh+QUpEtTdJQi83I/qnka9QKhsZj8njOsuvIMCls1nz6Gon2p+2971L2y7HeK8FXuXBwU6A9xfr3mr5PTKf8SIciPYKmeCi3/1wm9guhU0OzEWu6KSv6HiKfqNqfa3ArtltKNQ08Ykf/y47uNjLRLnjCV+rd9IInYfgw5w0KyQ3Ovwow0BrwEx+d5U4KG4oU+U7zPpCT/+xI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046);SRVR:CY1PR0701MB1696;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0701MB1696; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1696;4:q7psKFF1hY1ZQjxJaJ9sQvmzW+wW0/nwznwmFfx6It11cCuKeEVAxNYwXWxQnOFpUAkWp1eV4w5W7bwXPVFzt6OGwUE5WACzEmWLA8n7gcdEv5PHU5gq4n7AL00CyAMx9yOPvUiETUYZ/6/6UQDgr1m3mmSxtdQUhhlxN3aT3WCODQXOSiEOKmPfIGEgsV06Up25z/wDQEDfntCSagEGSL8GlbJvtqdl6MwrYO+jccMXUi8SyBuDECdBJgwkNN5ZrQ1RR0dLcbcHnF39zze6F/mM8IpHo/FT0PTAxgSmTNfXRuzisAlXJ8XjCuNY0/6RTxYf/7UhTgmgBjqg0fNh6Y/OB2DQ5dIPhvKSwE98YCQ= X-Forefront-PRVS: 084080FC15 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(87976001)(229853001)(47776003)(189998001)(66066001)(42186005)(50226001)(77096005)(5001770100001)(50986999)(15975445007)(4001450100002)(5004730100002)(92566002)(36756003)(586003)(19580395003)(40100003)(5008740100001)(5009440100003)(6116002)(1096002)(3846002)(3470700001)(5003940100001)(2906002)(50466002)(4326007)(33646002)(2441003)(122386002)(48376002)(2201001)(7099028)(921003)(1121003)(83996005)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR0701MB1696;H:mypc.cavium.com.com;FPR:;SPF:None;MLV:nov;PTR:InfoNoRecords;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0701MB1696;23:3vHZ6+eY/e1jPTYAo+Ovcym5ZDOUDCrv+NEgTfM?= =?us-ascii?Q?9jZBibe2yzfiSwcwUDZhqOQV2zm38Y4MW60jY4yvwrnb0bmEdATK6gIbJsns?= =?us-ascii?Q?vkwBWDIU6SkE9s7UyIgI6r8u/w6tAjhESI03i3T4LoeBl2rKVyUAA/UbZvlW?= =?us-ascii?Q?ff9xV8SgKEHDVR0v1Ips0E9ePuuTeA2UTzKoLSFVwHvRJUl/hdBU2sT2BQMr?= =?us-ascii?Q?ytuj20KFU8a2sU5NaVXWAb3365AOqN+4+zMn8SYhgzYCWh8BU8AXxIKM7+Z2?= =?us-ascii?Q?9k2EfnegdE6MfzN+/TtTrgJUzq3gQR66bsSdIqZyCsBUzAjcdj9uY6rukJO/?= =?us-ascii?Q?1XQmy32rkUSjCfOs9TUKWDO6zr1K55wY3bwTLgesl2DAdW8Mr63Y0+vKbeYX?= =?us-ascii?Q?jK6I6izHxSD5+Eo4IQ0+cDFORbAI2YczQKmX6LNX+GwFWEg+3XQkKSHRuAkf?= =?us-ascii?Q?h7nNim2n2dOVAQ00MaoW4V8mntxrNsroUhHQhGaSjbPZupovCPeHnbVf4Mt0?= =?us-ascii?Q?507yGUyx6Gb0uLaOcYxqzKaApgZSfTiOVpvzv8PWGgZLFEHeMwMM3KzIiJCT?= =?us-ascii?Q?4ltu4ikFhxiPZrVc6f7ukalQh1P/0cMiSfndIka0tGgM/dBJEv5A71YTqbzq?= =?us-ascii?Q?37n/dLl0/MOqf/sw0+ZhIHxq8Tjc9lYpDMunIo1+WcIEx5WOfGL+I+ldTT+5?= =?us-ascii?Q?sFkQ4uIgxmS5n8mmIX41ZVfONYAvVHBQAgu2UdDI/I3+nMzksQlEiIIVzfmK?= =?us-ascii?Q?1zkr7ie21hAGkLuHX0SYzG6vIAc6eptgLpH1dxcrZ4e8LMb48E27ILe+v7z9?= =?us-ascii?Q?cseY2LThe3ptjekTfcOM0Bw0JngRyKHNaEty3id93Psp0tbxDPzgiSJMwjn2?= =?us-ascii?Q?wNxbRPn734374vmslwout4KGKRpuX0IeYa21dLF4wMCWqmXWAZTk9kXye5eN?= =?us-ascii?Q?KMoQN72ELfTHpskUEyofRGgsyhT9WBTJVDtbJD2becRSttffoz43bawX0waM?= =?us-ascii?Q?nGNqYiqjSSd+KHVWbMmTfcu8QhQnXfWqApgG/P6ARJsN7GrVRpPXoNayuWY9?= =?us-ascii?Q?3CQppo+A=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1696;5:/sFKbqmYxGbDH+TrOx/Z/YIP7bz6whcZ15XVQPEwhC5KYhCYq+2NNKi44qAQoDLoUuspqNXEmPjZcns6fegNxxUVakDlSNGSIowq3lSgUC1GTIICeMnrrKC7jnPxwEzYPjrTr/iRVQK7wZ+rrtr9rw==;24:p6eP4FO4cHinR5xdS2pVuD2PwTIEIyizcIjQBCkOTOgp7pH49horQ4S1nrDvnMFZO5zKe203x34DFMFm8unfbjuLXKQJ9TwI37OL6I7GCTg= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2016 10:10:04.1293 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0701MB1696 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org v10: - Incorporated review comments from Rob Herring. - Moved numa binding and implementation to devicetree core. - Added cleanup patch to remove redundant NODE_DATA macro from asm header files - Include numa balancing support for arm64 patch in this series. - Fix tile build issue reported by the kbuild robot(patch 7) v9: - Added cleanup patch to reuse and avoid redefinition of cpumask_of_pcibus as suggested from Will Deacon and Bjorn Helgaas. - Including patch to Make pci-host-generic driver numa aware. - Incorporated comment from Shannon Zhao. v8: - Incorporated review comments of Mark Rutland and Will Deacon. - Added pci helper function and macro for numa. v7: - managing numa memory mapping using memblock. - Incorporated review comments of Mark Rutland. v6: - defined and implemented the numa dt binding using node property proximity and device node distance-map. - renamed dt_numa to of_numa v5: - created base verion of numa.c which creates dummy numa without using dt on single socket platforms. Then added patches for dt support. - Incorporated review comments from Hanjun Guo. v4: done changes as per Arnd review comments. v3: Added changes to support numa on arm64 based platforms. Tested these patches on cavium's multinode(2 node topology) platform. In this patchset, defined and implemented dt bindings for numa mapping for core and memory using device node property arm,associativity. v2: Defined and implemented numa map for memory, cores to node and proximity distance matrix of nodes. v1: Initial patchset to support numa on arm64 platforms. Note: 1. This patchset is tested for numa with dt on thunderx single socket and dual socket boards. 2. Numa DT booting needs the dt memory nodes, which are deleted in current efi-stub, hence to try numa with dt, you need to rebase with ard's patchset. http://git.linaro.org/people/ard.biesheuvel/linux-arm.git/shortlog/refs/heads/arm64-uefi-early-fdt-handling 3. PATCH[7,8] are not tested for other architectures. Ganapatrao Kulkarni (8): arm64, numa: adding numa support for arm64 platforms. Documentation, dt, numa: dt bindings for numa. dt, numa: adding numa dt binding implementation. arm64, numa : Enable numa dt for arm64 platforms. arm64, dt, thunderx: Add initial dts for Cavium Thunderx in 2 node topology. arm64, mm, numa: Adding numa balancing support for arm64. topology, cleanup: Avoid redefinition of cpumask_of_pcibus in asm header files. numa, mm, cleanup: remove redundant NODE_DATA macro from asm header files. Documentation/devicetree/bindings/numa.txt | 272 ++++++++ arch/arm64/Kconfig | 26 + arch/arm64/boot/dts/cavium/Makefile | 2 +- arch/arm64/boot/dts/cavium/thunder-88xx-2n.dts | 83 +++ arch/arm64/boot/dts/cavium/thunder-88xx-2n.dtsi | 806 ++++++++++++++++++++++++ arch/arm64/include/asm/mmzone.h | 10 + arch/arm64/include/asm/numa.h | 45 ++ arch/arm64/include/asm/pgtable.h | 18 + arch/arm64/include/asm/topology.h | 7 + arch/arm64/kernel/pci.c | 10 + arch/arm64/kernel/setup.c | 4 + arch/arm64/kernel/smp.c | 4 + arch/arm64/mm/Makefile | 1 + arch/arm64/mm/init.c | 34 +- arch/arm64/mm/mmu.c | 1 + arch/arm64/mm/numa.c | 404 ++++++++++++ arch/ia64/include/asm/topology.h | 4 - arch/m32r/include/asm/mmzone.h | 4 +- arch/metag/include/asm/mmzone.h | 4 +- arch/metag/include/asm/topology.h | 3 - arch/powerpc/include/asm/mmzone.h | 8 +- arch/powerpc/include/asm/topology.h | 4 - arch/s390/include/asm/mmzone.h | 6 +- arch/s390/include/asm/pci.h | 2 +- arch/s390/include/asm/topology.h | 1 + arch/sh/include/asm/mmzone.h | 4 +- arch/sh/include/asm/topology.h | 3 - arch/sparc/include/asm/mmzone.h | 6 +- arch/tile/include/asm/pci.h | 2 - arch/tile/include/asm/topology.h | 3 + arch/x86/include/asm/mmzone.h | 3 +- arch/x86/include/asm/mmzone_32.h | 5 - arch/x86/include/asm/mmzone_64.h | 17 - arch/x86/include/asm/pci.h | 2 +- arch/x86/include/asm/topology.h | 1 + drivers/of/Kconfig | 11 + drivers/of/Makefile | 1 + drivers/of/of_numa.c | 207 ++++++ include/asm-generic/mmzone.h | 24 + include/asm-generic/topology.h | 4 +- include/linux/of.h | 4 + 41 files changed, 1986 insertions(+), 74 deletions(-) create mode 100644 Documentation/devicetree/bindings/numa.txt create mode 100644 arch/arm64/boot/dts/cavium/thunder-88xx-2n.dts create mode 100644 arch/arm64/boot/dts/cavium/thunder-88xx-2n.dtsi create mode 100644 arch/arm64/include/asm/mmzone.h create mode 100644 arch/arm64/include/asm/numa.h create mode 100644 arch/arm64/mm/numa.c delete mode 100644 arch/x86/include/asm/mmzone_64.h create mode 100644 drivers/of/of_numa.c create mode 100644 include/asm-generic/mmzone.h -- 1.8.1.4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Ganapatrao Kulkarni Subject: [PATCH v10 0/8] arm64, numa: Add numa support for arm64 platforms Date: Tue, 2 Feb 2016 15:39:15 +0530 Message-ID: <1454407763-1017-1-git-send-email-gkulkarni@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-arch-owner@vger.kernel.org Message-ID: <20160202100915.IanVfyqD1k1Hj9-o85XaLi6PDH4n3B5TWnp63cjOJ34@z> List-Archive: List-Post: To: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-ia64@vger.kernel.org, linux-metag@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, linux-arch@vger.kernel.org, Will.Deacon@arm.com, catalin.marinas@arm.com, robh+dt@kernel.org, mark.rutland@arm.com, grant.likely@linaro.org, leif.lindholm@linaro.org, rfranz@cavium.com, ard.biesheuvel@linaro.org, msalter@redhat.com, steve.capper@linaro.org, hanjun.guo@linaro.org, al.stone@linaro.org, arnd@arndb.de, pawel.moll@arm.com, ijc+devicetree@hellion.org.uk, galak@codeaurora.org, rjw@rjwysocki.net, lenb@kernel.org, marc.zyngier@arm.com, lorenzo.pieralisi@arm.com, bhelgaas@google.com, tony.luck@intel.com, fenghua.yu@intel.com, james.hogan@imgtec.com, benh@kernel.crashing.org, tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, x86@kernel.org, jonathan@jonmasters.org, rrichter@cavium.com, Prasun.Kapoor@caviumnetworks.com Cc: gpkulkarni@gmail.com List-ID: v10: - Incorporated review comments from Rob Herring. - Moved numa binding and implementation to devicetree core. - Added cleanup patch to remove redundant NODE_DATA macro from asm header files - Include numa balancing support for arm64 patch in this series. - Fix tile build issue reported by the kbuild robot(patch 7) v9: - Added cleanup patch to reuse and avoid redefinition of cpumask_of_pcibus as suggested from Will Deacon and Bjorn Helgaas. - Including patch to Make pci-host-generic driver numa aware. - Incorporated comment from Shannon Zhao. v8: - Incorporated review comments of Mark Rutland and Will Deacon. - Added pci helper function and macro for numa. v7: - managing numa memory mapping using memblock. - Incorporated review comments of Mark Rutland. v6: - defined and implemented the numa dt binding using node property proximity and device node distance-map. - renamed dt_numa to of_numa v5: - created base verion of numa.c which creates dummy numa without using dt on single socket platforms. Then added patches for dt support. - Incorporated review comments from Hanjun Guo. v4: done changes as per Arnd review comments. v3: Added changes to support numa on arm64 based platforms. Tested these patches on cavium's multinode(2 node topology) platform. In this patchset, defined and implemented dt bindings for numa mapping for core and memory using device node property arm,associativity. v2: Defined and implemented numa map for memory, cores to node and proximity distance matrix of nodes. v1: Initial patchset to support numa on arm64 platforms. Note: 1. This patchset is tested for numa with dt on thunderx single socket and dual socket boards. 2. Numa DT booting needs the dt memory nodes, which are deleted in current efi-stub, hence to try numa with dt, you need to rebase with ard's patchset. http://git.linaro.org/people/ard.biesheuvel/linux-arm.git/shortlog/refs/heads/arm64-uefi-early-fdt-handling 3. PATCH[7,8] are not tested for other architectures. Ganapatrao Kulkarni (8): arm64, numa: adding numa support for arm64 platforms. Documentation, dt, numa: dt bindings for numa. dt, numa: adding numa dt binding implementation. arm64, numa : Enable numa dt for arm64 platforms. arm64, dt, thunderx: Add initial dts for Cavium Thunderx in 2 node topology. arm64, mm, numa: Adding numa balancing support for arm64. topology, cleanup: Avoid redefinition of cpumask_of_pcibus in asm header files. numa, mm, cleanup: remove redundant NODE_DATA macro from asm header files. Documentation/devicetree/bindings/numa.txt | 272 ++++++++ arch/arm64/Kconfig | 26 + arch/arm64/boot/dts/cavium/Makefile | 2 +- arch/arm64/boot/dts/cavium/thunder-88xx-2n.dts | 83 +++ arch/arm64/boot/dts/cavium/thunder-88xx-2n.dtsi | 806 ++++++++++++++++++++++++ arch/arm64/include/asm/mmzone.h | 10 + arch/arm64/include/asm/numa.h | 45 ++ arch/arm64/include/asm/pgtable.h | 18 + arch/arm64/include/asm/topology.h | 7 + arch/arm64/kernel/pci.c | 10 + arch/arm64/kernel/setup.c | 4 + arch/arm64/kernel/smp.c | 4 + arch/arm64/mm/Makefile | 1 + arch/arm64/mm/init.c | 34 +- arch/arm64/mm/mmu.c | 1 + arch/arm64/mm/numa.c | 404 ++++++++++++ arch/ia64/include/asm/topology.h | 4 - arch/m32r/include/asm/mmzone.h | 4 +- arch/metag/include/asm/mmzone.h | 4 +- arch/metag/include/asm/topology.h | 3 - arch/powerpc/include/asm/mmzone.h | 8 +- arch/powerpc/include/asm/topology.h | 4 - arch/s390/include/asm/mmzone.h | 6 +- arch/s390/include/asm/pci.h | 2 +- arch/s390/include/asm/topology.h | 1 + arch/sh/include/asm/mmzone.h | 4 +- arch/sh/include/asm/topology.h | 3 - arch/sparc/include/asm/mmzone.h | 6 +- arch/tile/include/asm/pci.h | 2 - arch/tile/include/asm/topology.h | 3 + arch/x86/include/asm/mmzone.h | 3 +- arch/x86/include/asm/mmzone_32.h | 5 - arch/x86/include/asm/mmzone_64.h | 17 - arch/x86/include/asm/pci.h | 2 +- arch/x86/include/asm/topology.h | 1 + drivers/of/Kconfig | 11 + drivers/of/Makefile | 1 + drivers/of/of_numa.c | 207 ++++++ include/asm-generic/mmzone.h | 24 + include/asm-generic/topology.h | 4 +- include/linux/of.h | 4 + 41 files changed, 1986 insertions(+), 74 deletions(-) create mode 100644 Documentation/devicetree/bindings/numa.txt create mode 100644 arch/arm64/boot/dts/cavium/thunder-88xx-2n.dts create mode 100644 arch/arm64/boot/dts/cavium/thunder-88xx-2n.dtsi create mode 100644 arch/arm64/include/asm/mmzone.h create mode 100644 arch/arm64/include/asm/numa.h create mode 100644 arch/arm64/mm/numa.c delete mode 100644 arch/x86/include/asm/mmzone_64.h create mode 100644 drivers/of/of_numa.c create mode 100644 include/asm-generic/mmzone.h -- 1.8.1.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ganapatrao Kulkarni Subject: [PATCH v10 0/8] arm64, numa: Add numa support for arm64 platforms Date: Tue, 2 Feb 2016 15:39:15 +0530 Message-ID: <1454407763-1017-1-git-send-email-gkulkarni@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Sender: linux-arch-owner@vger.kernel.org To: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-ia64@vger.kernel.org, linux-metag@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, linux-arch@vger.kernel.org, Will.Deacon@arm.com, catalin.marinas@arm.com, robh+dt@kernel.org, mark.rutland@arm.com, grant.likely@linaro.org, leif.lindholm@linaro.org, rfranz@cavium.com, ard.biesheuvel@linaro.org, msalter@redhat.com, steve.capper@linaro.org, hanjun.guo@linaro.org, al.stone@linaro.org, arnd@arndb.de, pawel.moll@arm.com, ijc+devicetree@hellion.org.uk, galak@codeaurora.org, rjw@rjwysocki.net, lenb@kernel.org, marc.zyngier@arm.com, lorenzo.pieralisi@arm.com, bhelgaas@google.com, tony.luck@intel.com, fenghua.yu@intel.com, james.hog Cc: gpkulkarni@gmail.com List-Id: devicetree@vger.kernel.org v10: - Incorporated review comments from Rob Herring. - Moved numa binding and implementation to devicetree core. - Added cleanup patch to remove redundant NODE_DATA macro from asm header files - Include numa balancing support for arm64 patch in this series. - Fix tile build issue reported by the kbuild robot(patch 7) v9: - Added cleanup patch to reuse and avoid redefinition of cpumask_of_pcibus as suggested from Will Deacon and Bjorn Helgaas. - Including patch to Make pci-host-generic driver numa aware. - Incorporated comment from Shannon Zhao. v8: - Incorporated review comments of Mark Rutland and Will Deacon. - Added pci helper function and macro for numa. v7: - managing numa memory mapping using memblock. - Incorporated review comments of Mark Rutland. v6: - defined and implemented the numa dt binding using node property proximity and device node distance-map. - renamed dt_numa to of_numa v5: - created base verion of numa.c which creates dummy numa without using dt on single socket platforms. Then added patches for dt support. - Incorporated review comments from Hanjun Guo. v4: done changes as per Arnd review comments. v3: Added changes to support numa on arm64 based platforms. Tested these patches on cavium's multinode(2 node topology) platform. In this patchset, defined and implemented dt bindings for numa mapping for core and memory using device node property arm,associativity. v2: Defined and implemented numa map for memory, cores to node and proximity distance matrix of nodes. v1: Initial patchset to support numa on arm64 platforms. Note: 1. This patchset is tested for numa with dt on thunderx single socket and dual socket boards. 2. Numa DT booting needs the dt memory nodes, which are deleted in current efi-stub, hence to try numa with dt, you need to rebase with ard's patchset. http://git.linaro.org/people/ard.biesheuvel/linux-arm.git/shortlog/refs/heads/arm64-uefi-early-fdt-handling 3. PATCH[7,8] are not tested for other architectures. Ganapatrao Kulkarni (8): arm64, numa: adding numa support for arm64 platforms. Documentation, dt, numa: dt bindings for numa. dt, numa: adding numa dt binding implementation. arm64, numa : Enable numa dt for arm64 platforms. arm64, dt, thunderx: Add initial dts for Cavium Thunderx in 2 node topology. arm64, mm, numa: Adding numa balancing support for arm64. topology, cleanup: Avoid redefinition of cpumask_of_pcibus in asm header files. numa, mm, cleanup: remove redundant NODE_DATA macro from asm header files. Documentation/devicetree/bindings/numa.txt | 272 ++++++++ arch/arm64/Kconfig | 26 + arch/arm64/boot/dts/cavium/Makefile | 2 +- arch/arm64/boot/dts/cavium/thunder-88xx-2n.dts | 83 +++ arch/arm64/boot/dts/cavium/thunder-88xx-2n.dtsi | 806 ++++++++++++++++++++++++ arch/arm64/include/asm/mmzone.h | 10 + arch/arm64/include/asm/numa.h | 45 ++ arch/arm64/include/asm/pgtable.h | 18 + arch/arm64/include/asm/topology.h | 7 + arch/arm64/kernel/pci.c | 10 + arch/arm64/kernel/setup.c | 4 + arch/arm64/kernel/smp.c | 4 + arch/arm64/mm/Makefile | 1 + arch/arm64/mm/init.c | 34 +- arch/arm64/mm/mmu.c | 1 + arch/arm64/mm/numa.c | 404 ++++++++++++ arch/ia64/include/asm/topology.h | 4 - arch/m32r/include/asm/mmzone.h | 4 +- arch/metag/include/asm/mmzone.h | 4 +- arch/metag/include/asm/topology.h | 3 - arch/powerpc/include/asm/mmzone.h | 8 +- arch/powerpc/include/asm/topology.h | 4 - arch/s390/include/asm/mmzone.h | 6 +- arch/s390/include/asm/pci.h | 2 +- arch/s390/include/asm/topology.h | 1 + arch/sh/include/asm/mmzone.h | 4 +- arch/sh/include/asm/topology.h | 3 - arch/sparc/include/asm/mmzone.h | 6 +- arch/tile/include/asm/pci.h | 2 - arch/tile/include/asm/topology.h | 3 + arch/x86/include/asm/mmzone.h | 3 +- arch/x86/include/asm/mmzone_32.h | 5 - arch/x86/include/asm/mmzone_64.h | 17 - arch/x86/include/asm/pci.h | 2 +- arch/x86/include/asm/topology.h | 1 + drivers/of/Kconfig | 11 + drivers/of/Makefile | 1 + drivers/of/of_numa.c | 207 ++++++ include/asm-generic/mmzone.h | 24 + include/asm-generic/topology.h | 4 +- include/linux/of.h | 4 + 41 files changed, 1986 insertions(+), 74 deletions(-) create mode 100644 Documentation/devicetree/bindings/numa.txt create mode 100644 arch/arm64/boot/dts/cavium/thunder-88xx-2n.dts create mode 100644 arch/arm64/boot/dts/cavium/thunder-88xx-2n.dtsi create mode 100644 arch/arm64/include/asm/mmzone.h create mode 100644 arch/arm64/include/asm/numa.h create mode 100644 arch/arm64/mm/numa.c delete mode 100644 arch/x86/include/asm/mmzone_64.h create mode 100644 drivers/of/of_numa.c create mode 100644 include/asm-generic/mmzone.h -- 1.8.1.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: gkulkarni@caviumnetworks.com (Ganapatrao Kulkarni) Date: Tue, 2 Feb 2016 15:39:15 +0530 Subject: [PATCH v10 0/8] arm64, numa: Add numa support for arm64 platforms Message-ID: <1454407763-1017-1-git-send-email-gkulkarni@caviumnetworks.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org v10: - Incorporated review comments from Rob Herring. - Moved numa binding and implementation to devicetree core. - Added cleanup patch to remove redundant NODE_DATA macro from asm header files - Include numa balancing support for arm64 patch in this series. - Fix tile build issue reported by the kbuild robot(patch 7) v9: - Added cleanup patch to reuse and avoid redefinition of cpumask_of_pcibus as suggested from Will Deacon and Bjorn Helgaas. - Including patch to Make pci-host-generic driver numa aware. - Incorporated comment from Shannon Zhao. v8: - Incorporated review comments of Mark Rutland and Will Deacon. - Added pci helper function and macro for numa. v7: - managing numa memory mapping using memblock. - Incorporated review comments of Mark Rutland. v6: - defined and implemented the numa dt binding using node property proximity and device node distance-map. - renamed dt_numa to of_numa v5: - created base verion of numa.c which creates dummy numa without using dt on single socket platforms. Then added patches for dt support. - Incorporated review comments from Hanjun Guo. v4: done changes as per Arnd review comments. v3: Added changes to support numa on arm64 based platforms. Tested these patches on cavium's multinode(2 node topology) platform. In this patchset, defined and implemented dt bindings for numa mapping for core and memory using device node property arm,associativity. v2: Defined and implemented numa map for memory, cores to node and proximity distance matrix of nodes. v1: Initial patchset to support numa on arm64 platforms. Note: 1. This patchset is tested for numa with dt on thunderx single socket and dual socket boards. 2. Numa DT booting needs the dt memory nodes, which are deleted in current efi-stub, hence to try numa with dt, you need to rebase with ard's patchset. http://git.linaro.org/people/ard.biesheuvel/linux-arm.git/shortlog/refs/heads/arm64-uefi-early-fdt-handling 3. PATCH[7,8] are not tested for other architectures. Ganapatrao Kulkarni (8): arm64, numa: adding numa support for arm64 platforms. Documentation, dt, numa: dt bindings for numa. dt, numa: adding numa dt binding implementation. arm64, numa : Enable numa dt for arm64 platforms. arm64, dt, thunderx: Add initial dts for Cavium Thunderx in 2 node topology. arm64, mm, numa: Adding numa balancing support for arm64. topology, cleanup: Avoid redefinition of cpumask_of_pcibus in asm header files. numa, mm, cleanup: remove redundant NODE_DATA macro from asm header files. Documentation/devicetree/bindings/numa.txt | 272 ++++++++ arch/arm64/Kconfig | 26 + arch/arm64/boot/dts/cavium/Makefile | 2 +- arch/arm64/boot/dts/cavium/thunder-88xx-2n.dts | 83 +++ arch/arm64/boot/dts/cavium/thunder-88xx-2n.dtsi | 806 ++++++++++++++++++++++++ arch/arm64/include/asm/mmzone.h | 10 + arch/arm64/include/asm/numa.h | 45 ++ arch/arm64/include/asm/pgtable.h | 18 + arch/arm64/include/asm/topology.h | 7 + arch/arm64/kernel/pci.c | 10 + arch/arm64/kernel/setup.c | 4 + arch/arm64/kernel/smp.c | 4 + arch/arm64/mm/Makefile | 1 + arch/arm64/mm/init.c | 34 +- arch/arm64/mm/mmu.c | 1 + arch/arm64/mm/numa.c | 404 ++++++++++++ arch/ia64/include/asm/topology.h | 4 - arch/m32r/include/asm/mmzone.h | 4 +- arch/metag/include/asm/mmzone.h | 4 +- arch/metag/include/asm/topology.h | 3 - arch/powerpc/include/asm/mmzone.h | 8 +- arch/powerpc/include/asm/topology.h | 4 - arch/s390/include/asm/mmzone.h | 6 +- arch/s390/include/asm/pci.h | 2 +- arch/s390/include/asm/topology.h | 1 + arch/sh/include/asm/mmzone.h | 4 +- arch/sh/include/asm/topology.h | 3 - arch/sparc/include/asm/mmzone.h | 6 +- arch/tile/include/asm/pci.h | 2 - arch/tile/include/asm/topology.h | 3 + arch/x86/include/asm/mmzone.h | 3 +- arch/x86/include/asm/mmzone_32.h | 5 - arch/x86/include/asm/mmzone_64.h | 17 - arch/x86/include/asm/pci.h | 2 +- arch/x86/include/asm/topology.h | 1 + drivers/of/Kconfig | 11 + drivers/of/Makefile | 1 + drivers/of/of_numa.c | 207 ++++++ include/asm-generic/mmzone.h | 24 + include/asm-generic/topology.h | 4 +- include/linux/of.h | 4 + 41 files changed, 1986 insertions(+), 74 deletions(-) create mode 100644 Documentation/devicetree/bindings/numa.txt create mode 100644 arch/arm64/boot/dts/cavium/thunder-88xx-2n.dts create mode 100644 arch/arm64/boot/dts/cavium/thunder-88xx-2n.dtsi create mode 100644 arch/arm64/include/asm/mmzone.h create mode 100644 arch/arm64/include/asm/numa.h create mode 100644 arch/arm64/mm/numa.c delete mode 100644 arch/x86/include/asm/mmzone_64.h create mode 100644 drivers/of/of_numa.c create mode 100644 include/asm-generic/mmzone.h -- 1.8.1.4