From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933294AbcA0OfU (ORCPT ); Wed, 27 Jan 2016 09:35:20 -0500 Received: from mail-by2on0061.outbound.protection.outlook.com ([207.46.100.61]:15024 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754032AbcA0OfR (ORCPT ); Wed, 27 Jan 2016 09:35:17 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Robert.Richter@caviumnetworks.com; Date: Wed, 27 Jan 2016 15:01:09 +0100 From: Robert Richter To: Hanjun Guo CC: "Rafael J. Wysocki" , Will Deacon , Catalin Marinas , , , , Ganapatrao Kulkarni , Lorenzo Pieralisi , Shannon Zhao , "Steve Capper" , Mark Rutland , "Hanjun Guo" Subject: Re: [PATCH v3 05/12] arm64, acpi, numa: NUMA support based on SRAT and SLIT Message-ID: <20160127140109.GQ24726@rric.localdomain> References: <1453541967-3744-1-git-send-email-guohanjun@huawei.com> <1453541967-3744-6-git-send-email-guohanjun@huawei.com> <20160125102148.GE24726@rric.localdomain> <56A86DCF.1020205@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <56A86DCF.1020205@huawei.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Originating-IP: [92.224.194.222] X-ClientProxiedBy: AM3PR01CA034.eurprd01.prod.exchangelabs.com (10.141.191.24) To CY1PR0701MB1613.namprd07.prod.outlook.com (25.163.20.150) X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1613;2:cAKynMtb43F4p9+To7sgM+F3SI1i6L+6jQseC78beqRTE/fwwpEUXCo0iHDtWiC3jVVCLK197iMsq2p4GaVZOHM1pDwDWZzBEujg8eV7/q28aiab9cR+cGaoU10MAVFeEy3a7szcePHkJMRKtehYjg==;3:2IqngsntfL/9UQXQ6sntAD8SlILyg2y18l9Kw9J0Hzi7L8kf7tX02AiRauqAQaoDbxNc6WtMJEcQa34CMkK8CIx2HAwmICFdVgM2iVD6gwVEh3Lhu6PiF2fvDAZmjE8Y;25:rbxiaO37GhPsnvPtvyWto/jTXh9EqogSP6yVoQM40dxrYie3GIFzWCJZyVbccqOUDrW3IptgmLQ4wFJASGJi/vPERp2WCb2NquoPHRteIAAQuy8i4pBqcC/nh5hpLfrIbeQcQbVZDw4e5uxSlI4AFRbkUqt0k0qhc3A15876As6BtS7is4ifQUyIC53sPh7SfVI8jg5DMOERVer2ca5qIpERx2aGtJ28VN2/Cqw909HgkC6p7/mSI9tbrLOTGYn9 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0701MB1613; X-MS-Office365-Filtering-Correlation-Id: f334db7a-12e3-4a12-5bdb-08d327225804 X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1613;20:HoPKLOni0n3NZn5vAlJC2bZAqdURHlS4RvdQuYTyjYz3Mvp6sWMB3Oo192hvo5+d6AOKqgprY3ZnYVXuYfuHzjBr9QhgXRUeItvae71uAADbk59fukG0S7lvXitk9TUcobAQD2XWR+JB/4lz93mMugMqzv9282Gcfg24K5AkXNbCH40zH4dFsz5Mfdia8LLLKCQYt1PsCghT5FvEGkIwhPzDX3RJC00/DKg/65ZMIfPORuRskt7SlrxXttHsEotr88j0pdyjr9rMg+yO6mhIBrSXKEvSw/WGJhjv3m0ssTgy12aLO6b6QU+9DL6wK2QNKmYGGSZNU3mXLDFSTqrS3IabNziEflEC7HV9aJPQIW8jYTBl/EDUPL5yEJtku2EPoky5wH/1V2Cp4RgiMwdNVd0CNSBfrkz59BWcj9eiWEeGixeoNJibIDHpVN5XtIVFZD09xhpCorGMHBBOjxNTcnEYUxY/Xp78icUphgfGbzv1+geA4zvHUxzNf0GD5AzYe332S8HJxQnHUrxJn6h8Y2rWMXRgUGVMRpTLLwTxOcJ0SJ+oLZfLXWqJ4d7sK9XYh/KebRt1Xfs6jL/tBfCzGoRdq15QGfALbeIvIkRGpEE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:CY1PR0701MB1613;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0701MB1613; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1613;4:9USGyPzURrRgGkJ2g2+aibxer9gTwSQZ4cX2lkmqGEWWrid93x+BvIwqTYH+PhI2LohOnosbUw42ORUGVdD4+DHeWSGMv3ITqHh9Fz1V/ugX3hcSIl9jOEa76snWkZsra4kg1JEUjuQMCczeAZDMq9arOEfsszCesoVEJ0bHYQ8siz5d8ZNwF3FYFCHuz1NJg27pgOJUQV1mlPODWtrdnv1qVc56nk1Ue8LuSwNb5GfyoD6FkhFTO4K8V8/AVeFOL6olyOPbFsF9XG1LYfdjLjV8Bwlim5g7l2BHtVl1I44jL/BtenVVji847ecc7D0H0x4xkG2vjV8GZasxpSa52YniH0GD+KBHd8eTzFFDegdh2ktovUtSYch0CfrydsH0 X-Forefront-PRVS: 0834BAF534 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(479174004)(24454002)(164054003)(189002)(199003)(5001960100002)(54356999)(3846002)(2950100001)(23726003)(77096005)(1096002)(110136002)(189998001)(105586002)(50986999)(1076002)(47776003)(101416001)(586003)(76176999)(106356001)(6116002)(33656002)(87976001)(5008740100001)(97756001)(50466002)(42186005)(2906002)(97736004)(83506001)(122386002)(4326007)(3470700001)(46406003)(81156007)(66066001)(5004730100002)(86362001)(40100003)(92566002)(93886004)(4001350100001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR0701MB1613;H:rric.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0701MB1613;23:4fkP3s6lDkT0GwVN6znaOTUIjrTP3VivgQ9YmF8?= =?us-ascii?Q?MtneYZnOSadgnaNqxXb6fzJMykbUsUnFcUx0T7qpc3TWiKy7mG83KGlHpEuB?= =?us-ascii?Q?37xJZT+t7q8NzOFfIcHFxntWoyTwJ0t31WGt64YIZwVVGHCbMC0UWhAW7//q?= =?us-ascii?Q?39MdxOJ+5GoWN2zPFVbZbuHNAnxPQvFqMZw6FzT60NNa3chTZUBb+k5LZQmw?= =?us-ascii?Q?PQ3ueBj9QBZ8pttS9aQS8JdVKWFJCJld0lDx1Ktf/jdnVARizD8gPXeu6woE?= =?us-ascii?Q?6AZaAGLlmYxXAy4Z+V0r7yEYJXZrdoCc3x310PWuFSjz9YMrxMroDG12K7Oj?= =?us-ascii?Q?G/EKJqsoKddSWCwKr/ChLHepxCzqAJNVpWhkheAutsYsjVHM1OERhSR/VyFu?= =?us-ascii?Q?BRO7aOZi+EFi7o1KjyElF26/Xx0JXxSwv0m2FsVeGdqaIEI0SEKbZKmqfO87?= =?us-ascii?Q?mgfGxNsFEIXQAMIpQ7OHmLgYJAP2I8VHsS4UL4LggsfQqFjlTAYiu1hqmEim?= =?us-ascii?Q?pDS0/Wvd+kqr+65t7ffnXecrc9OY31iS88CB4XeyALdPoIV3PD6Khz237FU2?= =?us-ascii?Q?XSYDwsd7I15QaeocjezhWIGX76Qato8BF+uwB65wSoL9PgliQxhSd4GSIuSy?= =?us-ascii?Q?7K93sSm8ta9K4XnQ/cQmobHuN9MGSZrwcSSzTSn3kRLU0jiDTgVB4e/IU0rY?= =?us-ascii?Q?TjL36/HaHKiy6VhHo+OU5FnQdwO2t3CJKzPS3f5J2F3IoCCqpFfCGu78fTvu?= =?us-ascii?Q?NgCzqNRtS9/V18M8/tCbJnGM3pT3AG1GWWJzCUkximSoZUv7Ae3LbLFMB0y6?= =?us-ascii?Q?YHtmhur9R57cxqlGgVtKNxfnpZJR2mjFvsCXR5A4Zhe77wozKUpv/WoUqPnK?= =?us-ascii?Q?POhPy+3dAqFjjIdAVizzvm6AFkRhqYXHjupWi2JSnEuLz7jIyvZ2Ys9uWaGy?= =?us-ascii?Q?JP+xqpFkOpaRJE7y8uHcVh8/NN8Xf74r0nKtMHg/YXXUQHzGF5MhFzhL9zqo?= =?us-ascii?Q?vuGbQ8kcZbpeiQEAzSFGAoyWkuSv/C31ERWazyiwRq2sQZMKtByWmyXIFP3u?= =?us-ascii?Q?dEa2kpRpTX12CA2CNyds83Bao1zAxhk6c4xOegjsNPxLKOd6PnQa2FJmw+9k?= =?us-ascii?Q?1bGmebHQRd8SQ2AtAG9zdQ5S8MmNCaLp+jr0hxc8B6WB6AahRNl/BLA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB1613;5:h/9WDxo3RtgEjnFNC7PRQmu0QjNmeS5tYHzWbsvndCO0AyFeVVoJ6UJKCZFtcji2wiXQ/rJjwblJ9p89+BmTVC8c/kJF8MEzAnV9APvn0eFrHgTBjmR9yWgnxX9j9LiS0hzVqV2FYAdUoaeC3jyrPQ==;24:lEvEqFeWiD5sWSe5lwC3dlEoC9/VMFPXBcdYA/MSvLf8w4YKKrIkeqZlhKpKHPWqqfsFY7/Bdd8/Vil0gaPnXS12YWSdPZMoZs8gmOqkaEM= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2016 14:01:22.0454 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0701MB1613 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 27.01.16 15:12:15, Hanjun Guo wrote: > On 2016/1/25 18:21, Robert Richter wrote: > > On 23.01.16 17:39:20, Hanjun Guo wrote: > >> diff --git a/arch/arm64/kernel/acpi_numa.c b/arch/arm64/kernel/acpi_numa.c > >> new file mode 100644 > >> index 0000000..f7f7533 > >> --- /dev/null > >> +++ b/arch/arm64/kernel/acpi_numa.c > >> +/* Callback for parsing of the Proximity Domain <-> Memory Area mappings */ > >> +int __init acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) > >> +{ > >> + u64 start, end; > >> + int node, pxm; > >> + > >> + if (srat_disabled()) > >> + return -EINVAL; > >> + > >> + if (ma->header.length != sizeof(struct acpi_srat_mem_affinity)) { > > Must be: > > > > ma->header.length < sizeof(struct acpi_srat_mem_affinity)) { > > > > Allow extensions to struct acpi_srat_mem_affinity in newer versions. > > Hmm, I think we need to remove the check here now. No, we might have an out-of-bound access then. > > There are three cases: > > - firmware ACPI version is consistent with the ACPICA one, then > ma->header.length == sizeof(struct acpi_srat_mem_affinity ) > > - firmware ACPI version is not consistent with the ACPICA one, > for example, struct acpi_srat_mem_affinity is extended in > new ACI version, but the formware is using the older one, > then it's ok to use > ma->header.length < sizeof(struct acpi_srat_mem_affinity ) The check above is ok as we need at least struct acpi_srat_mem_affinity as it is now. If we later change the kernel to support multiple versions of struct acpi_srat_mem_affinity, i.e. use data from an extended section, we will need to add code to handle that. This will include support of data with length < acpi_srat_mem_affinity, in this case we may not use extended data. > > - but if we use the older kernel + updated new firmware, > then > ma->header.length > sizeof(struct acpi_srat_mem_affinity ) > will be the case, right? Right, and this is a valid case not resulting in an error with my suggestion above. > > > > >> + bad_srat(); > >> + return -EINVAL; > > We need a pr_err() here to avoid that numa setup fails silently due to > > bad fw. This applies to all error paths. > > > > See my delta patch below. You can merge it with your patch. > > Thanks! I wil merge it into next version. Thanks, -Robert