Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932131AbdGXOOk (ORCPT ); Mon, 24 Jul 2017 10:14:40 -0400 Received: from mail-bn3nam01on0065.outbound.protection.outlook.com ([104.47.33.65]:10912 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753294AbdGXOOc (ORCPT ); Mon, 24 Jul 2017 10:14:32 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; Subject: Re: [PATCH v4 2/2] x86/amd: Fixup cpu_core_id for family17h downcore configuration To: Borislav Petkov References: <1500888165-2345-1-git-send-email-suravee.suthikulpanit@amd.com> <1500888165-2345-3-git-send-email-suravee.suthikulpanit@amd.com> <20170724111408.GC28024@nazgul.tnic> Cc: linux-kernel@vger.kernel.org, x86@kernel.org, tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, peterz@infradead.org, Yazen.Ghannam@amd.com From: Suravee Suthikulpanit Message-ID: Date: Mon, 24 Jul 2017 21:14:18 +0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170724111408.GC28024@nazgul.tnic> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.84.17] X-ClientProxiedBy: CY4PR16CA0006.namprd16.prod.outlook.com (10.172.173.16) To BN6PR12MB1731.namprd12.prod.outlook.com (10.175.101.16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b4583c3d-d615-4245-5fa4-08d4d29e4cdd X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:BN6PR12MB1731; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1731;3:TRhoHWqdM8EpmL6AIcvNd3WBPWcFqUkTTjb11an46O8N884f0HuluQNUWRGzBF8JnTaL82ViVKHutqSowk9Br5kX2OHxE8Vm5SgW3OwhiWsub33vMQ1vWYX5id1u9xSEs5KEx0+y83rrA9bnKj5hDvfrqQb7DHf2RPPKNOFMiLP7cwXUJhh6EbRC+m6N1+OvDWEckmubqQCg8kJKqfv+DA55/bmjETylXRnZqvNlE9bp34WUevbp0CK55N2m66BhCGlnOX3ePMyCFq3sk0LlyzyndO57+LWWLPdjtcZObmJqc7Psi0MTTba1YrW/nKX+xxZ6vztxJKvT7ggPi2EWoApxNaYSbkW2QfTtAzu9F0pVzEqHVGaf2V/SPs0mwazix6TjY/h5hprUgUegI47V3BspJqBeTrAso2Y6x+RbAAq++Zvp1dPf/HXWMIxagTM+u2iAru8f9KzT5URMygpLaY/kjSqmRRx5NzUP0ec7wzePPvIx3IzRZOjhsyhZJ1tYKk5HgOHaa8HRQlEEl9sbk4SUP1g0OSZAX8J+brHDP0OoS0UOta/rXh5vmK8WrvxzTAV6MdmwqJJzBxDtrEqHMrDP2NRE/6+6lqVqvCD5mDQJm49gbtYG72JVlNCeXtuoqv1pwOeCIlavZpQkeNngYkexViPSE4P+SpRBa2d8s63uNJBilAg2nJc79mp23tO8M97kQbqs2YCWPM50AdUzssp3D7q7RffavyyINNtFvs7xnTfEpVKVPPiM3qlA8y6BaB1TAy1lG5WyekFKeLclaw== X-MS-TrafficTypeDiagnostic: BN6PR12MB1731: X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1731;25:/P0lKfhc6QIFWfGrip2RnpOw5RFJvyJCKeP2YbJyLo+raxKb0WnG93203QtNM8T6ExsRdWveWaZL+FEhwo9N3x+ANa1+ypwEfEprBcCopnCaZ8EcvcHYFtqQZ3uqdBZ09uoHLnRL7ExaXgPBqpMd2mL6E1WzsXQog8bEpseLVXQU9YMj07NBr3xprdWrf1QRqdEgBTYNf6eWlchpf+cmrxoYcTuXJEZ/V03s2z2HG/xNeKw/ZzgXDs4PONK6HQqqc5CEMz+TSzcQOqmh9J4OzZDZxfzVCzR89SZn8VXCfFX3Wn6AGXhc8g230HrR664JbmB9olBt9Q+4ZdBc83HDW+kLAG72bONNq01TD6PdBvDe0jDHhjQ4WT9/8I90H7fJTyLXADsAD8eSQ7x1NhqzMxmHDExVs14S98jKiNjVCwcEaQJ5sAScZALCFthr1D85uzGydxLR48ss6iS+tA/FDfsQTQjsWj+r/v8y2Xpyx2nShb0dEzHQdm/kctWPOxraudLaCv4uqB2M8m3Rvp5bhq/D61cVvnzt0b5dqCoV76Kx48CXjDBk6Xf8V6FI4UIUUXBZpb3ool8qEhJxJ0y/6h2nmY0ga9PW3IHElzzpzc99T6hPYYLR9ZHXFNVjFQ1pvJwvXINUUGyaRLtZYMTuO/oxFp385CBUfW42YpilGF1C3VlrBq/pM4UuArDvyCZiAyltQF120PN7srbGHsGeXCq9iptGaAJq9YVURDzO/q/P6/59ttZJklePdbIG/KGg52UAqYCRR8gSjtJjCZl1vNu/r3CpRojNGQZKrjxfmZ+UhgBW9u/6FkW90U9SSSQT5i4GmNG3Og6XAARX6bnatAWG3/t57YZPXzR+TYykoU/BbI4LlA1mzlyeNwdpYCU+YUaVoiQ8e5XgLMJO9gE4ZJDS5t3rlgBStJUVIB/HqHY= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1731;31:DmHRxXyRj4YHdSUyunQufsBgwIkczrv72i/FySn7ha1/nnb/jhO20MNY2+BjcrEOwwKX7agM/PzhF7mPa+JjF1X6DofGdFo9KYB/5hnllFCIuCsj2obgjheA7jRs3fOd0r9VXeM4togmfdqcCct+WztaxFppoO0CWD3XcmQ97cszwRzf15LYZr1b+4ftLAnFIhL3PhiZItS6AD9ZwDNJqa1ua+Kp7oD9RJphL1WqCKZ87uQsGTr/CVhg+SZX0PgWV7S6ysQ7Ya0GwpiNwPJ7STNh8VHnF+ADsSCNaTPY6VV2KtQccomn5rjkgdryOWIArzOaN/BZ1D/Ijzpajf1n6+mJ98yP08pgNkO8XcrgvmgE7uJzxIoHtUF3UpsWcTG0KjyW0M6cuTVCFFr4qhQW0p4HWysMk8Zwgr1/InyTzBn+XbyDjcVxj1MGHKaSGlg0/VSUS+UWasgmWeJJIubAMdHvjWvDfRT3Di0M+C3b3RaRwkRm49uRmkigxriEH1WKS5lVaRvNYptz1YJWoHfKw8WPBVOr6F1kJvdRtcAtZtRUT2dpnAITcn1Mr3E6Nr4w5Rks3XcIIoSjrwLoFLXB5scOEqObGtakkzTS9nNdMzU5FlkYTGsOZcbJu/IFxaiopNLQctv7qXF79rOQ8BUBkJvC4plxz6Bl9kOZAqFC9ClDzOalDLvJx3tO7/JkpFJQHHjg/QSFLwxjvd/2cuTLbg== X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1731;20:zhBvhfJU90a9lMDU5FgF/VyXy6vs0GY9XZ5AjW/mVxKiHauwqVru6PgNL0TKDpLgJorZxb8CG0psAvJxszhcwnVLlZZwsmvEYL0xmEQWrIvYyfhmRuftcDa2iOYPv+0HEDRS5A+DWa9cA3zG+HQGZv8Y4IMKLSg+u0vYdO43O4XudTgficJJuML35HIjVmfU+W3dVko9fKsDZoccLCAvkAoDZNOmpoVa/mbvE4yWGMXyvFK41mEDQ69yZe50lWX9Pr8ea9YPnSrMXcSkq164ksSmUcDMNFc/euQn6bGXVx62vKaMO78ir0RG9fe2+0Dt2ypx174cF1cgmNKN3jOe85Viv9UCmfee1GwiP9Y1tB/0IHF/21Ox9nmlTwtpFiVj2RdCtZK2GfDesO8pBEnoaY3iFi7x6BlokPGVa7/T5imF+5ZYG8CGSLExI77JN7AmybLtFNVtgOYX9DKX193LJTOr+Rx4zJm0eGxYKCsjrct4D0WIFTXsEzAatbaAn7cn X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(42068640409301); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BN6PR12MB1731;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BN6PR12MB1731; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxNzMxOzQ6R3VJZ1Y5RGhuU25GSFNkY2o3OHNEb3JMaVFD?= =?utf-8?B?bXg1TTNrOWdjNDRXdnV0Q0NPYWJybHpqT1JzQlk3cldPNkR3UkNqT3RXaDJ4?= =?utf-8?B?S1pyTTRwU3NSL0RyQzN1SEJiSFkrZGxjZWdXbXRLVjJ6ckFMUzVWUWJsTWll?= =?utf-8?B?RWxuWXNjVjAxczhMQkVhSitQdCtxZVBrcXd1S29jdTMwbmk3QnovUFZudTZX?= =?utf-8?B?MmpnSkhkejU3U1NncGZuL0xKRnBJVVFCbFBta1dNNkFFejZwWjJQUHZmOTlQ?= =?utf-8?B?NUZpbklsTUlkNjFTZ3NxTU55SXc5ODlyWktYcUxQTEhZTWg4WG8yeG8za1dv?= =?utf-8?B?QXA0RDYxK3RkZ2NPVFBvWjlPMlI4eklDSmpVUmtuS3BWQlpWMUE3R2tXWTQ3?= =?utf-8?B?alUrRHNkTy9KeXVLNHlibDE5MC9Ic3VYbVBYZ1R1OTBYd25uV1hybVNlYUdC?= =?utf-8?B?YnRSN29KSWMzNEFuNGRKZE4zYmtyaEs1K2YwUjZHZmtrTkJmOWpPOE1zekJ6?= =?utf-8?B?L1pSU0p5Y0ZVaWJkcVBnMnk3SG81YkwzSnJRdWpxTnMrby9rYVMzYlRzM01x?= =?utf-8?B?ZlJpR3g4SzJuYWk3b09ZVDlrU3N6SVQ4djAvUHBGb1ZhQVFseldTMUVFUWFm?= =?utf-8?B?WVFPKzJKK0x4UlozdFFVcW1IVVdlYnFMRG9UWGVNbXp2WVZ4SGtnNzhtZWFU?= =?utf-8?B?RXJqY0NVUzBFS2NCU3ZIYTI2TUk3RGVpcytPQ3E1TkFMY0JyYzljZjh4dkhG?= =?utf-8?B?aXBRNnhaVlVUWm1WdFVmWWltelhZVVNRa2V5RkQ4ZVNJZWFHQzNib2FTWGt5?= =?utf-8?B?MGFqZ05IcXlHNmlvYSt0RisvWkduQ0twQU9zQU1Nc1hLSnplNUlFbGpBMmwx?= =?utf-8?B?Ny9HNFBkSGtkMjB3TnMwMHdPRTBFSm92Y3lwZnMySDV2NjNnWFZPTGhzQ24z?= =?utf-8?B?YnNjeUg3eVR5VVJIV0FXTHpqWWVFUVl3NWRvcWJMK2lHNVZ1THcyZ1huaTJv?= =?utf-8?B?VnFFOEJTSG5oamU2OWlVOHB3ay9MbHFaclYwQlQ2VFBBdUZBdXd2UmJackl4?= =?utf-8?B?TzdqRHBzdzNlZ0E0bHQ5bFFrdG5TcWVuUmhkZ2sweEpGNjN2NzZ5U2FaQlp0?= =?utf-8?B?Y25TZ3BTSzVVclhzbkV6a3NYK1J4THZ5V3I4Z3g5VlVMQ2dkRjJyZVlWaG1U?= =?utf-8?B?dkV6czIvRTNzY1NDTGRCVUdCQlI2K0ZDdWU3RDFrZ2ZKU2dNaWVaUTZjSUs5?= =?utf-8?B?V0ZrY0JGOTl0Y0VIeTZiNHZmcUhEYWcrOTh2RmRSL0V2VFhCOVRtSHVsN2ly?= =?utf-8?B?cmhLbVRLV3JiQmNmRjl2L20yOFdkUW1YTzlLMk1MV2xyOHFiNGdPbzQrUm0z?= =?utf-8?B?SCs0SjV1TFZ5WENKRWIwL3Y0S0Y5NlBXTk5RcytyVFgyTldIMVltb1pMdzNm?= =?utf-8?B?NmoyRE1rZzh1NnZOYmxEaWwrYXRkN09RY0tWTHR3ZE9taUhmSDM0c3N6cnNF?= =?utf-8?B?eDNoZDhCeXVPclRPRFAwWWZSNEMzcVZDS2l3b2ZaY0J1N3FSSW91TzFyZzY1?= =?utf-8?B?bUtuSTVlV29OWjI1WTFJeW1sV0pYK3RoT0hwYlNkMWV1MWdseFIzd3pIa2Iy?= =?utf-8?B?UjJ3LytKcE5JRWxxR2RUMnpVeW9qa3hJVWl1ckMyODlDWitZQTFnVUJURW1S?= =?utf-8?Q?kdWwhpQsazEJFZha8=3D?= X-Forefront-PRVS: 0378F1E47A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(7370300001)(4630300001)(6009001)(39860400002)(39400400002)(39840400002)(39450400003)(39410400002)(39850400002)(57704003)(189002)(199003)(24454002)(31686004)(23676002)(7736002)(230700001)(4001350100001)(33646002)(97736004)(105586002)(81166006)(81156014)(8676002)(65806001)(68736007)(86362001)(3846002)(6116002)(36756003)(64126003)(66066001)(5660300001)(2906002)(65826007)(65956001)(305945005)(53546010)(31696002)(106356001)(101416001)(25786009)(6916009)(2950100002)(72206003)(6666003)(4326008)(6306002)(53936002)(83506001)(110136004)(54356999)(966005)(38730400002)(7350300001)(189998001)(76176999)(6506006)(50986999)(6246003)(42186005)(229853002)(50466002)(478600001)(6512007)(47776003)(6486002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1731;H:Suravees-MacBook-Pro.local;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxNzMxOzIzOkFLNlBFcktHS0hURFErT2lyTVBSSWpQUk1a?= =?utf-8?B?VEx5cFJlZjVqZVpha0VTS2o0dzMzWXBibTlUZ1VPME1GZEs0TFhvc3JNZ2Mw?= =?utf-8?B?MHJ5Wlc4Uit4TzY3UFhTZi8xMTgzQms3ZHFRWlJ2YldYdTdlVnRiVFJSNnY2?= =?utf-8?B?VGljTW5CemRRVUlhZ05tRzBoa28rRnJaUU1mbEpoYmVqMis3NmpCSi9KM0pt?= =?utf-8?B?L3YvN01XUHdXVENjUStyRmpCZzJ1aHBFUm5VL1h5ZXF6aEtnOFh1UHlVR3dK?= =?utf-8?B?S1JjekpqcnZ3ZVpMV1lMM1lMbXQ2REJZNFRhTm8rTEZIb1pGem9IWFk5VlVs?= =?utf-8?B?VE5RMVlpbEtvSExTM0pEaGlCYjVDWmRkZWZRamhndG5Tc1JhVUJQRmN4S1lk?= =?utf-8?B?SHdab2N0OGFyM3BCVHQyNmt2L0w3alcvMVVkMzhmWEVzWDVENW5CMU14ZGhQ?= =?utf-8?B?NDVFdER2bTJuOHV0bjVsQkFvK3kxeEU0NlFYOE14YXZvRVpZYWdkbGVmMEJw?= =?utf-8?B?YVo4KzA3VXRncE9ISWtxT3FsQ1FRSmkwMUs4SE12SXo5cVBFMDNwTGpUNVdh?= =?utf-8?B?QzcyL1lrNWwza1ZpQ0RGaEgyc0tVVTJxTHY1emU1dElYeGd2V3hYZy9OTU5k?= =?utf-8?B?bDRuS3BQMldRa3lnMUd5UUR1NXEwcFN4RmlrdnkrY25NamFKa01jTDQ3Yjd3?= =?utf-8?B?QmFmYzZjK3NSbm14V21DS212Zy9XamcvbjNla0pWckNwWjhyK2kxN0RYdXNE?= =?utf-8?B?ZTNMa29kcUFRdnZXcm5vTjF5SG9vOWpmajdxSm00OUJZNUVwc0FYdEdGRzRQ?= =?utf-8?B?eFprR3YwdndkV0JWL0VXV0hTVmZIQXJWTGVOYWYrT2NLZE5ZT0o5MVU3SFZt?= =?utf-8?B?VzhMcFJMWXVUYk5jL2hqTXhkSENKb0lxRy9SZjBSNlRvWTdUdDBYSHNUUlhk?= =?utf-8?B?MVZzT3NCN1g1V3poZXhadW5CdVBoclJvb3NMZ1BkOXZ1ZXJaWkVJa1pEV0Zx?= =?utf-8?B?QWhRai9SV3dNQUNPT1JTTGJPRFpMTlFNb0FnYUFsci9YdDNQMFgvVlhmRzNy?= =?utf-8?B?SUVzRng2bmdqMGxiQ3JnRVNxY2RSM1N6czB4Q0I0QzVsbFAzdjlFV2RXaGdB?= =?utf-8?B?ZUw4Mm5RZGJFWHE1dFlUay90cGV4S2hEc0J0c3M5NEcwZ3NtbGNZTk5UQ1hT?= =?utf-8?B?K2Q2QU83WUl4b2lrTXNHRzJ6TEs4WGxVMDYzYk1hU3NpZ2lsSXRnaEdLQWJ3?= =?utf-8?B?SzArWlNwSlgyQjA2NWRuZXRod0NuajVsNzFncDllL094aStDK0F5Q21GdkRO?= =?utf-8?B?bHREQjJiWC8yNnEwcXNTWUg0ckJvdE9mKzYzQ1ZZWGhuVE5HLzVjZkttRUho?= =?utf-8?B?czk3V24zbGhZUk5LU0hiRWhtUTV3eUIrZUcrK24weWFzZWtRY0xlSkhsY0Yv?= =?utf-8?B?UzErbGhxL1d4eXJyckczaERwU1dRSUN2MTMxeUM3cWk4ZktTS20xS1NSYWZx?= =?utf-8?B?MjVVNDlKMk81enBBSGpTVTVGclVITHdFWTlZRUVaTUE0MjlrSkJOQnhxWGRD?= =?utf-8?B?OTAyQzhzUU9DeExNcmlWaVgyWWdGdGdpK2lLMnkwTTN5NHIvWXAybE52MmEr?= =?utf-8?B?eWl5ZldRbzFCdTI3ek5yeVUvQ3BpMkE3RHhQaGdVWWlIUGlKNjRRNVhBckdh?= =?utf-8?B?cTV5SmQ4WUNhREYvMUtCQjMyaWl2SWFzRDdUVnBseHBrUThpREJaQjVMOTZu?= =?utf-8?B?TzVvSU9zUW1HVVhNd2xTdFBMQWRhRzZpUndnV1htRHJsMHc2aTZrUEpLRjhK?= =?utf-8?B?dGxnbjBkUlpEalkwRXpWbitudkc4akhDNXZpNDBKMk9JK2s1Z0hpWUFPQXdH?= =?utf-8?B?cS93Rks2bkFTcEdnSGMwTmVENjVqeDhKWDRwR3VCU2tUVEZnaWNPRDdKdWRS?= =?utf-8?B?QUJLdElqdXd0TitsWHRHRW1YQmRsSG5meEN3UkRmS1VJSW4yb1JIcmljN3NI?= =?utf-8?B?VER4cHg3TlI3Ym9MSnNlR0RReHpVVFpsdHhWUVpNYXlaM2hTMnNFYnJXQkxG?= =?utf-8?B?Ni9GMWc4SHdJcFBZNjBRR0U1U3kyT3hTRWRydTd2Ry9DSXV0ZXlPQUtQdi9y?= =?utf-8?B?a21PeDAydVZEbERMWWtObGtOTzNFOHQ4aXRwRWRVUjJZNlNtVzdUc0g2cm5Z?= =?utf-8?B?S0pjd0xGTERwS1kyekZVZlJ6MnZRPT0=?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxNzMxOzY6Mjk4eDIyQ1BoVmZYMkRlU2h3dXFmeUo1YTBO?= =?utf-8?B?RXJkVmhIbEFIcTJrWDB4TUk5N0hzUExKK0ZVd2p3bFNCcGlzbnB4RkhwUkJH?= =?utf-8?B?Wlk5VHJpOFJGL3Y3dHo3WXZzRDUxbkF4S01SaDZ2emxnclBWamloc095N250?= =?utf-8?B?Q3ZTNDFHU2YrV2RPT0VZVUFNUWdMajBva3BoaTFhNHQwUGRWMk9oSkpxMm9Y?= =?utf-8?B?YU5hUlBIT0I5TWQySFU1djhHdGNTaUpzekRndzZBS2RkWDR0WXEzUjlYdUFx?= =?utf-8?B?QkV3dWZHVVdLRWRKaHdaSU9mVTdOb0thUHgreXFieHM0SlFBaExZY0hFZzNR?= =?utf-8?B?YTZNT0lIUm1UNmVjblhPQWZWVlN5aTlJd0lGWEVyVFZWOHR1RjZkOE9qaHly?= =?utf-8?B?Y1dNczI3Rk80dVNESFU0cXhzaXIwRUY2MVZiaVY1NEwxQ0Nlb3NVQTB0cW5x?= =?utf-8?B?NXBxZjF4eHBrZUFkS28rRlRYTHFjd3NoVU9lY1VaRXlTN1NHcSsxTFQ0Mk5X?= =?utf-8?B?d2xYOU5zbWRCNVV6cTVpbEZUSGcrMFAyL0N2NWptMjVoRmE4MWtyZU8xVnlu?= =?utf-8?B?YlZYUmd5S0RBNWJnc21MZE1Db2RHdHQ4Z0hodWwzNFRxWTJxQmpxdFU5YW1S?= =?utf-8?B?UVVSOXFLUHl6RXplbVhWeHp3UjJKS2VMOTdBUVZUMTRMT3NKY1B6cDBwRytU?= =?utf-8?B?OVl0blZYTkpXVG40UXlMOC94T2tZME9uUTBhNUxLanJMelN6cEVJZE9Xc2ln?= =?utf-8?B?dmdzTXdkYXpkbjBEWGIxc3YyYjhzQ3BjWGxXWWVETmZERzlNUFR3MmpRcEpj?= =?utf-8?B?UFRjUDBFR0F6VTdTTjFlU0owQmhSZ3p0VFh1a0lOa0NNWGhhWlFnVnQwSnQv?= =?utf-8?B?VnoreFcrSFc4eUxqSHN6VThycVMwTkZ5T0prcE1vWFJwdkVSQzJaUlIyQVBH?= =?utf-8?B?eUhsSE5MZVl1ZFRTUGFNZkt0R2VNU3ZkWTdUY1FJdWpkZ3M1Tjl4OG80RnBJ?= =?utf-8?B?QS80dTAyOUk4U2FtNkxZK291WDVxYXBGQ2ZCWlZBeU9ncFdESHdQQTB2cDhP?= =?utf-8?B?SjQ5TzBvMEQvTTFtdk01R2JiaTExMkdQcXRhR1lOdTlDdjdHQWIwWVdSTXp3?= =?utf-8?B?VTc2K2d1aTBta3ZEajlBaXZVVEJpb1NiWXRSSy94T1AyLy96RlB4ZmFoNnVx?= =?utf-8?B?cUYwMFVVQlY3TDFBYy93ZGNSamJJUlZ2R1djL3VLY1lQeTNkNU5qaldSeGVP?= =?utf-8?B?dE9nZDUzYXB3U1pzKy9xZ2xkRzhGUWlpVVBTbGxKVW9zQ2M5dWZndkVFYlJy?= =?utf-8?B?R3hoYW5iai9ZMG5SV0dBNCt1ZHE1TGNqYk00WDhLVGZjenBtOUdtMll3bjVs?= =?utf-8?Q?+UtiHA/?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1731;5:WYWdtkF/YAMIFzaXkckI6Vq+FcM3Akzn2WpR0hTmG5W5B5JUanFLgFfR6F1BkxcWgVJXHJrCBbrSuK7XGdQ9jXuZknY3PNEF5+/gdFRoRg4fmEW7oI4VgByKcbp1OcvYV8prFOK24Rxnl9uU43BqUapbvyb6m3dlFXGHS8AnWTDlFCk+UbxXds438XcvkFhoivsRTC11Rl+Zbv/U9Y/38ycdDwY2NYCAAflnRWTaINi7gBKPL8Jvm2wJq7wyKBOk4QclWkDGXN4mBuwi3T+bTWYafGutKC6yKsNfIy15aMw8wHcfvVPyDr2q4S9KYaGf5FvMcR3BmngJOAofZT3asn2ojvfO6RJ1vvMHF9/6mg6MyQ9MUOXUmck+j/wL3WFT7W/xQycZHwhObo5ojRu/zlpnu6jAe35q9MbrigDkfk2fAJsZxYxL77wNdn+wd9lJ178TWUq3kLSU80KlEFXqG3GDPVev1f7Vcnb4ohG94U2P0zW2iVIwJuUZqZ3q6IeY;24:OWV2CAkbFnYz9K/0wTFnBNbFJ/j11IV3LVA3g12LwRZvADFc0/FM4y8wJ3pihDjZ3ES2ZmyPCFtNIdw8ERbWtV6CG/AQygP4ylVRq5jqVxY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1731;7:TguEoaFXhAjOTaluEQ6zy/0iCbNnRMfq/lx8ImCOw/pRvBrgksz9JS4NELjW1zqxLTaoWdhNpP4mdGV+PsiaygtD50qIRL4OSW+8drdc0h+5jVbLVTJ6IGoKNu0wHaxzg/DsULZdtwJsAS769v9POL4HT7Pm5JDgTEuDo7NOIYhSGq9BpGJYhbqcUJ93TgPU5VAjJiWxwwZ9srhaOIWgXX/R43DPIG90I9pKXQ/NGdp5Zid+zj3X1mB97H7twkaaCcF1foaMnkn28wzzz5+OtMf1VH3U1hWipHIiCeJZx3z22kr8EQ3PGOdT74IRHf32Y3mS9AMuiKY9mhQ3sPyajTQKERxRb0XlTTu4qQHffm+flCBzPH+ZiZYAq0/yK8vA+qKmSpdQHkXVPFjpZNDASeaHpuGNbRoNNXnWZeNTEN2brIQ2jXfb9sOwn3y77RVxyUrrMvCwVrFNa83iM0YVRmFgMi59vNzPjZlWBuzcweoYVZRVM5ZlJzXpuy/4nOheuHFP+AqkqT4m3Eep0cyHFQqQPJttm/34uZSobcPWhfOWiLga30u9m8BKpMFzL/A6AgZOhV0u2QP2sQDWn2g+J/vg0EWuX1CU9pmWX4ob/Jgl9mgj/fSzO3WJt/zQNr/Rc5XCp5/enfQYjH2Gr2eMH8RzYxL1mEo2LmFGSKgYHWB8iIyoResytomxfdp0DG/4T7nCCRVD8sOHPUBfJyprEKQ3Nk7mbPdKDZ7qq/szLutgVlSD10PmnL77FfW6Rm63Y6wo0tedk6qCuHKoZr2zkO3SCDyGWNyobyGf8sxgrSM= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1731;20:ZFhSQ0Je/MyLhhHuQggcQbbGJg5oPCO3AFFH0UBF4wQaSHtF3NhTup9h/kqpYg6YA8Qr8Ug2afW5+YEB2FSCYPLRBw1CJJVRSMNkhDM+vCLkcsI/BhlKQVnSekvdHHkkglJAL3hXDFsPZRv3pvlH8Vaf72wbvUud2JXDPc5occO2qHEQviw5bvqS3fkE3fLfbQjKUdh72taMnZM2z4buNKTlp1Ie3VxSGRJvJVZCtvx2UUy16hikj1JhVlGjDTkH X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2017 14:14:26.2477 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1731 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5466 Lines: 181 Boris, On 7/24/17 18:14, Borislav Petkov wrote: > On Mon, Jul 24, 2017 at 04:22:45AM -0500, Suravee Suthikulpanit wrote: >> For family17h, current cpu_core_id is directly taken from the value >> CPUID_Fn8000001E_EBX[7:0] (CoreId), which is the physical ID of the >> core within a die. However, on system with downcore configuration >> (where not all physical cores within a die are available), this could >> result in the case where cpu_core_id > (cores_per_node - 1). > > And that is a problem because...? Actually, this is not totally accurate. My apology. This patch is mainly fix to incorrect core ID in /proc/cpuinfo. I'll update the commit message accordingly for V5. Currently, with 6-core downcore configuration (out of normally 8), /proc/cpuinfo is currently showing "core id" as. NODE: 0 cpu 0 core id : 0 cpu 1 core id : 1 cpu 2 core id : 2 cpu 3 core id : 4 cpu 4 core id : 5 cpu 5 core id : 0 NODE: 1 cpu 6 core id : 2 cpu 7 core id : 3 cpu 8 core id : 4 cpu 9 core id : 0 cpu 10 core id : 1 cpu 11 core id : 2 NODE: .... This is due to the cpu_core_id fixup in amd_get_topology() below: /* fixup multi-node processor information */ if (nodes_per_socket > 1) { u32 cus_per_node; set_cpu_cap(c, X86_FEATURE_AMD_DCM); cus_per_node = c->x86_max_cores / nodes_per_socket; /* core id has to be in the [0 .. cores_per_node - 1] range */ c->cpu_core_id %= cus_per_node; } In this case, the cpu_core_id are {0, 1, 2 ,4, 5, 6, 8 , 9, 10, 12, 13, 14, ...}. Here, the x86_max_cores is 24, the node_per_socket is 4, and cus_per_node is 6. When apply the fix up, the cpu_core_id ended up incorrect as shown above. This logic assumes that the cpu_core_id are contiguous across the socket. With this patch, this fixup is not needed since the c->cpu_core_id are already between [0, 6]. >> [...] >>diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c >> index a2a52b5..b5ea28f 100644 >> --- a/arch/x86/kernel/cpu/amd.c >> +++ b/arch/x86/kernel/cpu/amd.c >> @@ -305,37 +305,71 @@ static void __get_topoext(struct cpuinfo_x86 *c, int cpu) >> { >> u32 eax, ebx, ecx, edx; >> u8 node_id; >> + u16 l3_nshared = 0; >> + >> + if (cpuid_edx(0x80000006)) { > > Ok, so Janakarajan did some L3 detection: > > https://lkml.kernel.org/r/cover.1497452002.git.Janakarajan.Natarajan@amd.com > > and now that you need it too, I'd like you to refactor and unify that > L3 detection code and put it in arch/x86/kernel/cpu/intel_cacheinfo.c > (yes, we will rename that file one fine day :-)) along with accessors > for other users to call. init_amd_cacheinfo() looks good to me right > now. > Let me look into this to re-factoring for reuse here. >> + cpuid_count(0x8000001d, 3, &eax, &ebx, &ecx, &edx); >> + l3_nshared = ((eax >> 14) & 0xfff) + 1; >> + } >> >> cpuid(0x8000001e, &eax, &ebx, &ecx, &edx); >> >> node_id = ecx & 0xff; >> smp_num_siblings = ((ebx >> 8) & 0xff) + 1; >> >> - if (c->x86 == 0x15) >> - c->cu_id = ebx & 0xff; >> - >> - if (c->x86 >= 0x17) { >> - c->cpu_core_id = ebx & 0xff; >> - >> - if (smp_num_siblings > 1) >> - c->x86_max_cores /= smp_num_siblings; >> - } >> + switch (c->x86) { >> + case 0x17: { >> + u32 tmp, ccx_offset, cpu_offset; >> >> - /* >> - * We may have multiple LLCs if L3 caches exist, so check if we >> - * have an L3 cache by looking at the L3 cache CPUID leaf. >> - */ >> - if (cpuid_edx(0x80000006)) { >> - if (c->x86 == 0x17) { >> + /* >> + * In family 17h, the CPUID_Fn8000001E_EBX[7:0] (CoreId) >> + * is non-contiguous in downcore and non-SMT cases. >> + * Fixup the cpu_core_id to be contiguous for cores within >> + * the die. > > Why do we need it to be contiguous? It is not contiguous on Intel too. Please see above description. >> + */ >> + tmp = ebx & 0xff; >> + if (smp_num_siblings == 1) { >> /* >> - * LLC is at the core complex level. >> - * Core complex id is ApicId[3]. >> + * CoreId bit-encoding for SMT-disabled >> + * [7:4] : die >> + * [3] : ccx >> + * [2:0] : core >> */ >> - per_cpu(cpu_llc_id, cpu) = c->apicid >> 3; >> + ccx_offset = ((tmp >> 3) & 1) * l3_nshared; >> + cpu_offset = tmp & 7; >> } else { >> - /* LLC is at the node level. */ >> - per_cpu(cpu_llc_id, cpu) = node_id; >> + /* >> + * CoreId bit-encoding for SMT-enabled >> + * [7:3] : die >> + * [2] : ccx >> + * [1:0] : core >> + */ >> + ccx_offset = ((tmp >> 2) & 1) * l3_nshared / >> + smp_num_siblings; >> + cpu_offset = tmp & 3; >> + c->x86_max_cores /= smp_num_siblings; >> + >> } >> + c->cpu_core_id = ccx_offset + cpu_offset; >> + >> + /* >> + * Family17h L3 cache (LLC) is at Core Complex (CCX). >> + * There could be multiple CCXs in a node. >> + * CCX ID is ApicId[3]. >> + */ >> + per_cpu(cpu_llc_id, cpu) = c->apicid >> 3; >> + >> + pr_debug("Fixup coreid:%#x to cpu_core_id:%#x\n", >> + tmp, c->cpu_core_id); >> + break; >> + } >> + case 0x15: >> + c->cu_id = ebx & 0xff; >> + /* Follow through */ >> + default: >> + /* LLC is default to L3, which generally per-node */ >> + if (l3_nshared > 0) >> + per_cpu(cpu_llc_id, cpu) = node_id; > > If this needs to be executed unconditionally, just move it out of the > switch-case. > Well, for now, it has to be for non-family17h, which seems odd. I am planning to clean this up as well. Thanks, Suravee