From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756028AbcANCvd (ORCPT ); Wed, 13 Jan 2016 21:51:33 -0500 Received: from mail-bl2on0098.outbound.protection.outlook.com ([65.55.169.98]:39530 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755811AbcANCvK (ORCPT ); Wed, 13 Jan 2016 21:51:10 -0500 Authentication-Results: spf=none (sender IP is 165.204.84.222) smtp.mailfrom=amd.com; alien8.de; dkim=none (message not signed) header.d=none;alien8.de; dmarc=permerror action=none header.from=amd.com; X-WSS-ID: 0O0X995-08-31W-02 X-M-MSG: From: Huang Rui To: Borislav Petkov , Peter Zijlstra , "Ingo Molnar" , Andy Lutomirski , "Thomas Gleixner" , Robert Richter , Jacob Shin , John Stultz , =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Weisbecker?= CC: , , , Guenter Roeck , Andreas Herrmann , Suravee Suthikulpanit , Aravind Gopalakrishnan , Borislav Petkov , "Fengguang Wu" , Aaron Lu , Huang Rui Subject: [PATCH v2 1/5] x86/amd: move nodes_per_socket into bsp_init_amd Date: Thu, 14 Jan 2016 10:50:04 +0800 Message-ID: <1452739808-11871-2-git-send-email-ray.huang@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1452739808-11871-1-git-send-email-ray.huang@amd.com> References: <1452739808-11871-1-git-send-email-ray.huang@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.222;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(199003)(189002)(33646002)(97736004)(5001770100001)(1096002)(86362001)(4326007)(53416004)(1220700001)(2906002)(106466001)(5008740100001)(105586002)(36756003)(19580405001)(19580395003)(47776003)(50986999)(87936001)(76176999)(229853001)(101416001)(48376002)(50466002)(11100500001)(50226001)(189998001)(2950100001)(5003600100002)(586003)(92566002)(77096005)(5003940100001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN4PR12MB0852;H:atltwp02.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0852;2:PG9zmjHJVTesnLMPrOqrJssre6VI+jlIGA9tnOlM/cBEf164pqnn2kq7vQTTMcwqNr8CTkkBOyi+6uMUmw5s7QcKgF1fhVh4q0WfHo8E4vhRs1HTBatrt/Ie6wcQQbfiSHEBgetb//4qW0LeRe8zMQ==;3:nVIu1GswKHVYRbk+vE5BM5jUbflzDt1d8DYPkhXbgNG0p1HWCYLBvHbvkc7VMSmq4SLGSO9Tsc0bJLtIxMnpeMIgfsxixvYMflsPnIE4TJLytpAZFGJ0Mb+/O6slNwwAVkGK6qZIpOvtTzvIsBtYZAeggrGK4L8VGDljgX2yahNy8rqxNva1t7IRO90+bAMhprX56RZTMgPhW9pnK3LGePwsZwy0MwOqJL/R/xsyVb0=;25:3vM1PcKAPAdtVBG0UJp4++2xnq54EMxJ+JTzmM2r5cotneEwaZ5BwiYz1I0khJuHQwFEm+kHdXqxnHf0GOIFVzyZOO5malBg+wQ9eBITb3RCiRLyGohsj4CsNvUcPy5txAJ8ZRU/Jma8bvhqrawsZXsjiDSJ2ZC0cZkDz4J8AS9rKN0pMWp47waEgYVMoyEocA+oVRZpBRqw374wM4DcdIgZO6cg3COpzE5UqNjVodDfeI1XTBKlEG5m6RuLTH3h X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN4PR12MB0852; X-MS-Office365-Filtering-Correlation-Id: 414b8c1d-cde5-45ce-eeb4-08d31c8d8d8e X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0852;20:XVQ9UiGtFlhX2/uIxkdzwvFtcd9elXQNLAdR1OJdXVX6BVtS0Aw8qcsMDB9R+LW1suJVlnSnp/BWkaQW6T90dpxg7sRTs1AVUW1TsmOUF+GM5qCbSSC4j8LDvAMkw3D8RlDUIz4zhepJHAmC44ZelF9TmWVRgNnPwk0raaTROxIpH0R4Z+MFKb3Uu4gTruCS7vAaDMIpDdjIqOFz1zH/fI7x+u5kKbEBHDYi/bEzT0m8xOl6NAZ/qq3Wj/I7m+T2p6zV16mSbUiv2aJwtuYuOUU8EW8yeeiLFD8OlsWbJIFJSt8jFx/uCUzH295bL1BOJj++qU87RyWy69kiCStwIUpHV7EE1JmVXAXpq6DLhkc4Zzai8vohSGT3lfk6/leC9Bsieg01mOShZmTNa+DEyN8ATTqZj6sfR56A5Eh6eiZGoR6HfXS1fnyX7RVVaB+/vW2GbxlfI90u3TkhyoJhhpw/Kl7X3LcnN3IZ5VqvXKyPtM4UkGzPHAv1TP8jRcEa X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(13018025)(8121501046)(13017025)(13015025)(3002001)(10201501046);SRVR:BN4PR12MB0852;BCL:0;PCL:0;RULEID:;SRVR:BN4PR12MB0852; X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0852;4:qUCUI17v++0qjD32+81xC4q/+2WseZu3QvK+wipTjM81F7jVQhJzYW4POUr1+A1zIJQayEHQAnk1CiWm1j7pU1M7LIouSVrjj929++T9EQMNEqQnCw9VDIT1Wv3wgpI5QP3xm2zwbEV2xAmyOO8Ezc0mD8XTe4jC3rJUtezCI4KIIFyrqF2TYCTPkRPqnUXaqUp8Qfc6elXBQTQIr7htonJYbMlVydEhI3Q09BiRFQqKLvZr+rWuxWnEppWN729goXZ0kijXacKmUkcnszlmLdlH3R4c5sjtZVVYK+j2qXk3Lsir+EVmq/Y4VJypd4JXnBLiPobX3dP7d3wmHssPtF1/KKEbmgeZIocvRc8i9D03N3t0XCa5fbRHIBbDAIN3lLu6HWtuutMhipRKngpMYe9wwFuEzKHmdDrPcdk5cC2Q3t96gUSvdUCjINxBcohmGZ5Lnxrg01TuoVb25hkXAb3tTXNB8zqwuLoZgnABS9Y= X-Forefront-PRVS: 08213D42D3 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN4PR12MB0852;23:/fIdrfAVYRyBlPzkc4geOzytDT7WKx734V1Ijl2m1?= =?us-ascii?Q?7Zm+XS7QBVMgjjyzn4mxmaIDbVGCgH1PrW9Dg3X4UyvhJlDhPu1/sCo6dEn5?= =?us-ascii?Q?gf+SMvZsagZ8ztbQ2AbKbGaYEe1gDkYUUpvETbGocVMya4DXFuTr0C+905Rg?= =?us-ascii?Q?NnIftx6VBFGM04iea5YjpZo/HaO5PcwtAXO7v7smLha4oLTCeGEGw7HlQfQD?= =?us-ascii?Q?QnR/XDD4Swx6Lbqd5fUIkLC9oPTUj25EdzZ/7WGM6vijqBk9OUU9N0OhKM1F?= =?us-ascii?Q?AavnTwzQ8VlNoSUmAPDoxLW0jmYcu/PswLm3caa0r9FTz1BtyoXqIIg/N7ry?= =?us-ascii?Q?hWY5AtazqMYE0ENZlRQnxzXe/5ZsEUD1+qOPwNOlW3q/INlas0HpPaNByG6q?= =?us-ascii?Q?1GTwWVrhu+YLK5xT9pfGLSZ3mUa06N8IwFMQc2ifbIm/Pv1uFV8OvCTUyjDH?= =?us-ascii?Q?mYXdHlfox5eoUBeyPN6rwxYnNVuy0jt28GNwgdwv1EXtX9CWgI8v0NImQyrP?= =?us-ascii?Q?SRha4VBRA0xFSsoBWl5KXUz2nkANewNl/cLrksUXscx8ozqFWmqDhjzs0f/k?= =?us-ascii?Q?7Mq6QhJljTguBpp6g20xWlVrpgG25tK38JVg5K80Xk5KhSRdMe/9KTN2Spzq?= =?us-ascii?Q?O4l1tEcXz1AZ4HoMbALaRoFpJZy1QcqzL2uTbiF6DSB3lPOrmULiFy1wMOmm?= =?us-ascii?Q?YgaFwikGJ+zSJZlc5YwHvJkaJHskWl+rsqj+3sNc8uuakPWqfrPVO26XpZgJ?= =?us-ascii?Q?nYd0840U/Vw/debnhWetbjoi448ShYQO2jH/9xU2oudvmLYgnF2zODvcghqP?= =?us-ascii?Q?knB4eD2SjycBxp+aQLWseSpkVQx+UKZWS/Ib8MvMJ0GIF4HI8eL27BO8i9+s?= =?us-ascii?Q?nlyfamenwEmF8sw3HjdgNTQTLyvIHMIXPpj8SZpTGOAmYm62kS9CYUQ7W/XQ?= =?us-ascii?Q?aTH+5duy74EP0HrNFV2JBdCqX7NCsNXYn3BVnQMgIyJ0LiuR7U/QeCpQ3vjn?= =?us-ascii?Q?rrFRtNGE4QRunHcZ9MmbyXy?= X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0852;5:Dzj95/P4ll3ruIl1JFFVRxDB++gcMWBZPsDZbJ0LxhcXmuxUP5R9PRWvOHmuBEREDUDP2j1IPi9aHe++GRYdnJOX2eb/Iby7DnqbGyiquWdfpC2Qui2mc9BWkg63+94ivYTe95qCslYzHelrPPZWIw==;24:l1upfRdM5H3k7F+gmpAD006Bcj/eO/qcY2NJsnmPmWLWHvsKnDY3ABu9tm+0wKFDC3gzLLeKjft7VSsr3pjFSm9rImjQ9M/vs7nU9exXRvk=;20:ELpQELwKvqAEK5hqWQm/ChG+FdEr9APai0bioYfjMLPMCjrc8EOqmqzibSmlW7Pkcg2+22Nd8FC3eZestYT35fOiWJrBplJHfi+5tZTqRAKZyTk4l+t7LzHwpQLKwLSYEWnaXFJRO92dkTHtCKXsJF+GV6AIH+7C+ryzKAmLKdAFVL5Dxy3Ak5qDTAh0fxmCZ3Brm/R3anRbRCre8GSayaS+VeY8n9gHWhGK0bAljC6qQXrE9kt67MhBdiUIot+v SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jan 2016 02:51:06.8261 (UTC) X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.222];Helo=[atltwp02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR12MB0852 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org nodes_per_socket is static and it needn't be initialized many times during every cpu core init. So move nodes_per_socket initialization into bsp_init_amd. Signed-off-by: Huang Rui --- arch/x86/kernel/cpu/amd.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index e229640..97db1b6 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -308,7 +308,6 @@ static void amd_get_topology(struct cpuinfo_x86 *c) u32 eax, ebx, ecx, edx; cpuid(0x8000001e, &eax, &ebx, &ecx, &edx); - nodes_per_socket = ((ecx >> 8) & 7) + 1; node_id = ecx & 7; /* get compute unit information */ @@ -319,7 +318,6 @@ static void amd_get_topology(struct cpuinfo_x86 *c) u64 value; rdmsrl(MSR_FAM10H_NODE_ID, value); - nodes_per_socket = ((value >> 3) & 7) + 1; node_id = value & 7; } else return; @@ -523,6 +521,18 @@ static void bsp_init_amd(struct cpuinfo_x86 *c) if (cpu_has(c, X86_FEATURE_MWAITX)) use_mwaitx_delay(); + + if (boot_cpu_has(X86_FEATURE_TOPOEXT)) { + u32 ecx; + + ecx = cpuid_ecx(0x8000001e); + nodes_per_socket = ((ecx >> 8) & 7) + 1; + } else if (boot_cpu_has(X86_FEATURE_NODEID_MSR)) { + u64 value; + + rdmsrl(MSR_FAM10H_NODE_ID, value); + nodes_per_socket = ((value >> 3) & 7) + 1; + } } static void early_init_amd(struct cpuinfo_x86 *c) -- 1.9.1