From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1422996AbcBZT0N (ORCPT ); Fri, 26 Feb 2016 14:26:13 -0500 Received: from mail-bn1on0079.outbound.protection.outlook.com ([157.56.110.79]:9693 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1422790AbcBZT0L (ORCPT ); Fri, 26 Feb 2016 14:26:11 -0500 Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=caviumnetworks.com; Message-ID: <56D0A6C9.40907@caviumnetworks.com> Date: Fri, 26 Feb 2016 11:26:01 -0800 From: David Daney User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: Will Deacon CC: David Daney , , Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , , Ard Biesheuvel , Frank Rowand , Grant Likely , Catalin Marinas , Matt Fleming , , Ganapatrao Kulkarni , Robert Richter , , David Daney Subject: Re: [PATCH v12 5/5] arm64, mm, numa: Add NUMA balancing support for arm64. References: <1456192703-2274-1-git-send-email-ddaney.cavm@gmail.com> <1456192703-2274-6-git-send-email-ddaney.cavm@gmail.com> <20160226185356.GO29125@arm.com> In-Reply-To: <20160226185356.GO29125@arm.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [64.2.3.194] X-ClientProxiedBy: DM2PR07CA0018.namprd07.prod.outlook.com (10.141.52.146) To CY1PR07MB2133.namprd07.prod.outlook.com (25.164.112.11) X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2133;2:X26CXIzVo17kDcwGBff1mi80eliXU89UaUSLZ4yKrxVflnEatZM4/S4McmTc8nDMmE3RFgtOhV1vlOXy6f1bIW1Qq49mH1RlZ4wIO1Am/dcoeIUeKF5MKc3Mb96lIZLskE+y+JNk5E6ci5cwPaRyPA==;3:OI3JqNmPKN8IEaWRliyjASqSoD06cK7GXF+jY8bRnJqZoUPjXWUUoZPmCnqePYXh91rkbeoWXWKKfPahYMZAGloWseId1xbE0YHbF49S3pldleEeKhPy0OaZpTzpV3X7;25:qmo0pwMogCEHmnh4ne/GZ3S/hkWRK6yrwBtoG8geXzLWJhJxeYSFpHPwc6IMkV2dT34HM4lF37E59c+CAMJKWOaBzWkf/ECG1h8UwikZeDGv5KgilnBUAucnicsMou47170Xt/XsI6iiZg1ETIRuc+V+aK5UPhpb52EWH8EwDfvdbZRA2d+4xX4s4nq9ap35vNSy4pTiqYt376D7MK/hh2/YQf1szhyMwgPnhIQYu9+zMhuRypzM1ja95oQXbiPcwl55YZAqMbz//STefCrNsfxDXxNVawB5sP6A3Gxe1u5Ed+mFywp2hYD+vGDkAnF+sIvnpb4yg/hOfLgbrI7l1A== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2133; X-MS-Office365-Filtering-Correlation-Id: 3a8d93cc-23cd-48c3-c2e3-08d33ee2acce X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2133;20:Ll9ii39I/+8qyrmlhLDGp0KlwtSYzFM6pOQ2DHSBELFwqjv7XAdLICPlrCJzV2Rsy8ZzwLW1Vt3L5PyTTVSMK7jtVYet+iVJlNO6bRgiLPw4v9m68c6c6Apc004ggybU95HyAKfqUUTsezOIKihLYgJHN5uQ8EJZNbyn6mArstEV4Rovm9R+upAFr+OyJBXPmil9+dxv+vl9KHxyPIK89cNzGvl9mEs328KQJl1fiTzfSAX3QoKFRi7nBs13AsXs4s2BazM15Iit1uSgj6X4iFr7Mz13eZOtUluHqYP6ZzQe3xK3wt7C3/XdjgbfG3XUX6JzdmzHCAoVPuQDshv7xt7bW3VhD5He+tAcgk/asS54lWQAkv2P3/Oc84jiu/hJonvim6D/Q+QJ85iv8DsGnuLeF0cZTJejXGmDYuFIAVLp1GxAfFcg9/PncUzKmGQ3GkTZqppqzB/mPxKNuBNmiMPr/0s0fkgn0QrzxTLPX68cTpY69V40xQMQraj/7p+mhPGaG/PMJTMCKDW4yNV1R4sN+psVX9H2cK8CDAHmbNdM+397+Q5vmZSx0OBWsWZRI8ZtjJUtehdTwJmkBgalwK/UA/XbTxLfTUkgpxzYO3k= 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:CY1PR07MB2133;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2133; X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2133;4:f0HI+ly8+8/rdiiI3JdESkvk/WlOXeycWz40KO31XIrgMH+Jlv6rbSW5zQD9et2eMe6wv6/E06GmHQV+s3qtbedQ1BiUYYNyI9g5WPvryxFyGw+1L6PpOBghjWA9kSZHYXJV6PObEem344fOl5pHT5ZRz5OpipLVSQoDJUIlxjAX1/M3VCc2Lux5sdSO+3g1Wa7KdJhDxkDh+omZlX3qX+4B5LIg2K2Y99VNoHHwXfOoPJsmH5RlWRB1pDry6vfxHGe+vFclxD4CJ2CqFs2v0OWXWs8UoWM5GWzOtGgnZ6SRU87W5Lq2aYGXbSeo5q4evA3VIAdqZBfqp8yxBOKyCx9XONsr3JEkG87bjKghZAMrQqZMTejv9XcbqSJEu8+j X-Forefront-PRVS: 0864A36BBF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(979002)(6009001)(479174004)(24454002)(377454003)(42186005)(53416004)(50986999)(3846002)(54356999)(189998001)(76176999)(106356001)(110136002)(65816999)(5001960100002)(65806001)(87976001)(1096002)(36756003)(66066001)(65956001)(47776003)(69596002)(64126003)(5004730100002)(586003)(50466002)(6116002)(83506001)(92566002)(40100003)(23756003)(33656002)(5008740100001)(230700001)(4326007)(2906002)(4001350100001)(19580395003)(19580405001)(77096005)(2950100001)(122386002)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR07MB2133;H:dl.caveonetworks.com;FPR:;SPF:None;MLV:ovrnspm;PTR:InfoNoRecords;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;CY1PR07MB2133;23:tsxJO7IMJLaQuzOg7kpjQ5hfg/WsZcyK2nqQNx6?= =?iso-8859-1?Q?kZRgDXUwcYuk0ntPK95UpVrjr/yby2xJ2+IYLvNKCroNyQn97FjjdOcEdH?= =?iso-8859-1?Q?PwFun01lvduksls4we52ynWaXzp5P5ywxw+p90qBhcEdHwq+PZey2vuA8s?= =?iso-8859-1?Q?q2UxPqoZSNQy9w1mFRAKZE3mbrBufQLDU+ibej02NP2mUbDP59cp/B7krJ?= =?iso-8859-1?Q?hI1x21SXaEBHadllUgjCsFtvhVPtic5Drdy9L+YB7siUMWcv82YUvglr0I?= =?iso-8859-1?Q?ocwfasem42SsWDNiENN1G8XHvtLt2QmPkEy5iH0qDZJfw/siqTi1B7bjV4?= =?iso-8859-1?Q?+JslGPyZdQ0gr8O1pGMXmB4fwlKbUUQEY160byGarj3fBT5SS0DOL+VnoL?= =?iso-8859-1?Q?5J8kps3eYGxyGBejGAthpqVv7uLxOxCBvld3Rtz/HcgZAQ+2xoc2FvFsuj?= =?iso-8859-1?Q?stI91c1pDKiCh7NsjhUzzSXHpPq+8q5/PaheVf5k/qDD/dCFoPWnRTt5ki?= =?iso-8859-1?Q?03wkkAoaVa8vaPbuVc8vhalbW8POOnWI1etgJjkL9McuUR7voqbKDZVh/P?= =?iso-8859-1?Q?K7OOamJiK+aLefZskCPFe/owdtbSsDch0ZT7Y13IUy3F0XgXqoJ43xPGUR?= =?iso-8859-1?Q?/am+H5I/9WFjP9ptHarEv04b/rooGDTbW4Lqhny+7vzQufWWByx9lpcz2t?= =?iso-8859-1?Q?ramM5VihlDBOPP65AeuyocYAsOgKvqrEsf4VofduChO+1NwPkVFqO7PROU?= =?iso-8859-1?Q?gGGysJzkItJfNRqZkAjkT6dzQad16tsUGQH1agUjOU/wlmm0pAgBUdVhIF?= =?iso-8859-1?Q?WbtBL2NVukY1Enp02dj0bsEyyWUrJelbQr8QGruFGUJojEJpsSG+94lbU9?= =?iso-8859-1?Q?AOVNnIxi6Y9LNsDED67wqofxvghyhLZQIPMIFTHN51VTis50KgWvj77PrR?= =?iso-8859-1?Q?3IfaCesLdfEN0siMAicnFFY78vbrtYR8fdJWZdXI2/QQShtFWD4bwzdsB5?= =?iso-8859-1?Q?C/joQbgJsH7uEfj2braC3BqLHwTqBCyXRatqbyuuPsenvxhAaHHXTMKE3P?= =?iso-8859-1?Q?R62QhHUACGcMw1hMFZOhkF6w2lifyu9l3LQUgjbbcWXiYSt5bM+nf30CGc?= =?iso-8859-1?Q?PjgBpPzmpBVA/n8TKoEwZBe6I5+FTvCTJK7huUqpO7UVzu1xmiQOZDrIa9?= =?iso-8859-1?Q?oWJbU5LwzLHrP1yTIeoK1fI9BMBGblPbZaLYxVtcBms0rfD+GuJPZ3jJM3?= =?iso-8859-1?Q?ow4UtZmB3z629i+pe5fDWpllIG8UDoJnNms1ZSyBXYoiPCMg5os5xbrLoU?= =?iso-8859-1?Q?5sDbydV/rRmTPojU0UyYJwJ?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2133;5:XLXLTaZtuoRtMMvKnyN0bFZggvhuLTnF5hM/M1v8uGKxtShVTFSEnHlsXJV5QyZ/rbm8TOR3tJ1M/TN7I5AoyWDH/m78pALizLvKaNN6x4/7OSVlCtlx6w06UxZx5nJa/9GdQHBSjy/APYI/wZBqzQ==;24:omlEiqVS1PVsYi3DVxfzh8VL5R9Uc9UDnrBX7BHmPKcNk8QZFkeQxKsBngnKFVe3TKHqATWF6rCBeM4i7Gcz3spnFp3jMCbGtpiHdBEG2aw= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2016 19:26:05.7202 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2133 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/26/2016 10:53 AM, Will Deacon wrote: > On Mon, Feb 22, 2016 at 05:58:23PM -0800, David Daney wrote: >> From: Ganapatrao Kulkarni >> >> Enable NUMA balancing for arm64 platforms. >> Add pte, pmd protnone helpers for use by automatic NUMA balancing. >> >> Reviewed-by: Robert Richter >> Signed-off-by: Ganapatrao Kulkarni >> Signed-off-by: David Daney >> --- >> arch/arm64/Kconfig | 1 + >> arch/arm64/include/asm/pgtable.h | 15 +++++++++++++++ >> 2 files changed, 16 insertions(+) >> >> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig >> index 9f0972a..6e22503 100644 >> --- a/arch/arm64/Kconfig >> +++ b/arch/arm64/Kconfig >> @@ -11,6 +11,7 @@ config ARM64 >> select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST >> select ARCH_USE_CMPXCHG_LOCKREF >> select ARCH_SUPPORTS_ATOMIC_RMW >> + select ARCH_SUPPORTS_NUMA_BALANCING >> select ARCH_WANT_OPTIONAL_GPIOLIB >> select ARCH_WANT_COMPAT_IPC_PARSE_VERSION >> select ARCH_WANT_FRAME_POINTERS >> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h >> index bf464de..5af9db2 100644 >> --- a/arch/arm64/include/asm/pgtable.h >> +++ b/arch/arm64/include/asm/pgtable.h >> @@ -346,6 +346,21 @@ static inline pgprot_t mk_sect_prot(pgprot_t prot) >> return __pgprot(pgprot_val(prot) & ~PTE_TABLE_BIT); >> } >> >> +#ifdef CONFIG_NUMA_BALANCING >> +/* >> + * See the comment in include/asm-generic/pgtable.h >> + */ >> +static inline int pte_protnone(pte_t pte) >> +{ >> + return (pte_val(pte) & (PTE_VALID | PTE_PROT_NONE)) == PTE_PROT_NONE; >> +} >> + >> +static inline int pmd_protnone(pmd_t pmd) >> +{ >> + return pte_protnone(pmd_pte(pmd)); >> +} >> +#endif > > Can these not be macros, like our other pte_* and pmd_* predicates in > this header file? They probably could be. However there is precedence for the static inline form: $ git grep pte_protnone | grep '\.h' | grep -v return arch/arm64/include/asm/pgtable.h:static inline int pte_protnone(pte_t pte) arch/powerpc/include/asm/book3s/64/hash.h:static inline int pte_protnone(pte_t pte) arch/powerpc/include/asm/nohash/pgtable.h:static inline int pte_protnone(pte_t pte) arch/s390/include/asm/pgtable.h:static inline int pte_protnone(pte_t pte) arch/x86/include/asm/pgtable.h:static inline int pte_protnone(pte_t pte) include/asm-generic/pgtable.h:static inline int pte_protnone(pte_t pte) Actually I am a little surprised that all the arm64 pte_* and pmd_* things are not written as static inline to achieve added type safety. The generated code should be identical. > > Will >