From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752161AbdF0GmA (ORCPT ); Tue, 27 Jun 2017 02:42:00 -0400 Received: from mail-by2nam01on0082.outbound.protection.outlook.com ([104.47.34.82]:19136 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751538AbdF0GlX (ORCPT ); Tue, 27 Jun 2017 02:41:23 -0400 Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=amd.com; From: Suravee Suthikulpanit To: x86@kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: bp@alien8.de, bp@suse.de, leo.duran@amd.com, yazen.ghannam@amd.com, Suravee Suthikulpanit Subject: [PATCH 2/2] x86/CPU/AMD: Use L3 Cache info from CPUID to determine LLC ID Date: Tue, 27 Jun 2017 01:40:53 -0500 Message-Id: <1498545653-6755-3-git-send-email-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1498545653-6755-1-git-send-email-suravee.suthikulpanit@amd.com> References: <1498545653-6755-1-git-send-email-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM5PR12CA0063.namprd12.prod.outlook.com (10.175.83.153) To CY4PR12MB1733.namprd12.prod.outlook.com (10.175.62.143) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 819d72e4-f3b1-4bd0-228d-08d4bd2783f0 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506067)(300135500095);SRVR:CY4PR12MB1733; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1733;3:pFsNYkeyRjcmGmzRPZSYtPOAi4y0H/y/a7K7Rshp0H/Kdp7AGg1wgEJBG6tyGVMcM/Hk2Q/xZUlbMe8BpKwAaBoy1fixB1Skf1EOW8ya117Huv3z0YZRGk0OyCueLXXHk/msomwnVLHetsQjIcaiiAnCIwlGM+T/TckWzACOPL/xhvP3LjEMj9+vCn5KCzgnWemZJd68yu971vOATh4AbpRieABNZ3vAE0gRfvxyIRXYGoHe0kjZPhH0hsXtMrOS52U3muaXFhv4Sybmf0fcGVTGZZVooTdlieG2Kq9t/b9xxYIORy4+kyBK7VJ+Dlca63DgflBGtpdkIj96OaqCVf70iCPO+q9RdvAeeVzTB6ORR9dEJrLa1bpJb6TBJArfbI6Y1HqxZVXa0yVNQlfOwWKTzLceG7IGC9+LDGK3aHmPbu2vgkwYjyymbtgUq1rfohY2AXvQMR/x+WDmLdQo6TDSBhPFzwLuCv2XRdIGBQJsniTxpwMJXwjlRCvwBCoj+MEMgTcEeKqcZMeojglAgiBb2LDUdVlr1hSjq/wfzN8zCDlfpZCgaQOXi5ArBo0LyrgUSr0Jql0AsjO2uVbhauI1hrLwL8dKj7Z5t6EjZ4MukQppWaDATpsK8c2bPJOoFIjUgR1UbvuFWCQHIyzw8RDHqVsL03bd6KuPho3m2q0CAr7R4+1Ng0AehoINs8+IAM1xlJxy0WtQRSd/9y94MMaBgVIasO4kZygoiJ4u/xtt0/XmMXFcVkI8pTza43vvRj+jx2UUtOshIj8mGHn1+Q== X-MS-TrafficTypeDiagnostic: CY4PR12MB1733: X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1733;25:G8WfDFENWlyGkcyCwUiP9cJYaKixHqSSGeQr6cYZotX9919DAa3/a0R1yGrck4/L0XT3IflAatA8iONf75HPOYo5QHybkBNUw1bv+SIKe7XEY1uLtsGDlitaY8uTZkq5I23exloB/KyDrgigXAwxe8S7MCnABxR/DTFDLguvDgqolTrNUDWiITxuM20n5DZbcXdhrs1iN/nNrczdzG4eoRvxMkFRCRRQETi6AKCA9N8MVRBKaDf07VMVh7CnxLduRu+kyQP0/oQkLx1wqbdYuPaudFymBi7tueLW1C9N5G6cwskhzSKu6SVQZcVjJ60Oql9vOrsi1Q9fx2Lr0sPVevoXDkNcik7iVi/KoGuRUkLTh+drDXsZ7ZfF0bC6LOKjIBiIQ3JGhFL9SQ+eoHKkjymPGEYgaaKiPu/qM5vaJeTjMQf5OrfhCXAuauTKe93JheVprpijMNIiUZ3xB932qmE3YDc9mHmresXYoURsOA0+gmqGaBnly49k9Hqj89GH0SrfLXM8Gb8suIkhuLE2i1x3SXwTKxE3zE+fIYinO9lGnX/xx8UmET2NWjsmVuORXDLGRJBvdGehW6z7xfahXVICcCMqd6uKwcWtDr8sBHCXv6/GXSlw8ZYMiyrj37jezz6YeNrjNQjBb8cmNl2sizqYUGMWpkgo4fOjg9FZjA12oa+PjME2EJWWCrPue2ZSextN+Izhw159qAVNEMNVSpvL0asW8nLkTq32knZytIfGDnVOUh08L+MzZNLpaKK17cAVzUwapbNoKbsLe0YXSaCIsKq2zXrTuLMpCTW8byxnsl56hJ308tH7uHGST64o2X1fr8QRnfaG/7o/LNuwz/QnD/Bkm7KStGikGs/uZdvw8G59ZX/4NWG0FR77dwJix520EtByz3tjcj9c6jhsUfGMwvNecdwY1ZoJamcY2Fk= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1733;31:RuYLlxr49bxqzB2PxdPXPNSDLDeHWRrz5LcwJZGYTKOZsR57lHsu1Mu2Lmr0+qgpu4DR7N/lX6liuxx1c5HN2Daxo5D+JqvlH9jZ5EbvHO2iE+wlBDMdnRapKSgSwQJgwW1sQuWa5KKyRO5x+sdCKSnWFh5pGfO9/17p5haDgI3tU1Okoh9sNtHrlhl0i1fQOdqJy+G4i++vVXHVEB2nF0f1gxM/poJWixSKVEu+Vo/27k7Or9IsYbyNOUGzMTSonFVqM8PV9Er6xl74cryGgJM7QHTOpShWq7/YXiSdWkgAi0iknOrumjpSPolPpdXFkDhzz3g3b/s+j6wM21xlKH2R7BmWPe1T2tEaXCPste1AEQyq7058rc/aFv7qyAOtjl2iBSVFuBLRmQuNf1aZzx9vVgIk9nCvRpTZKadi28GLE7UhIwVpMPpNjxNmc57+FvdMJZzMyDIRaxBKc11Bpc4O2VaMX6hx37FLLytfmO2e4QpUQ8H2cA2xykZx2dZ5QUQBU5g5G0p81YOw5NaQbwYfG+1gWNem0twFElMqIe8fZvTWAhZ/d443gD1BBLYLXEMYjsY5VXR5KCMYC/rAJZFR0nVSRbPSbXxSnRtZt8IAet4JJBlpnsc6sqQX6Jza2FvzCuvlheykPMeuY4b8I2k4WJeXzx1g7Qf9Z+FtN0A= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1733;20:8DUIeTYNKYnQMxrMHGE8vRsxtDDLa0fUnw9wdM8ter0JIrbjesEy52NnSv4MRCbvw3VFWrpA+yXE2vHSlHG/mIMKVOrLSE/dWHH8LtLm4TWtmSCjQts+8YUGxgY+w6KpvL5AAz6agX3uV1c1b0EVXAOCFGSeXsQ58dIwISGanyZ3yI1mhX2oVmdWc6lbVYkgB5b0rVJy+7H4NNFBfkgSXDVqlEnHRzZi6OmnkckNwwV9pQdfqZZxnOUAmrrgVe+rq4Krq0zFCxxhI3rO4rEO7GneXOE8Nx6lqWvNEOnqDM44ZGtjGzkXXzPlVN4wyQoGQueSdjI6T55PJU+u5PpH/XGR+3j5S3emh3KLDNyHxB/+h+AgsQ1f1yS1DprNnI3kjKvL7UDosoLqwZ+JP++FyZFtD/nRviyguZM8KnOboLFHgXUlTSE4L8ciYUSju+6Cucn5QNG4dWy4XlAh/T/EJaqpP5eOUze9JgFsVyeGoOBUZ995oq6i9B2QUAsUnWVY X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(9452136761055)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123555025)(20161123558100)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY4PR12MB1733;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY4PR12MB1733; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR12MB1733;4:OCyifJXDj3v1pA7j3jaKlQ5BN9O2T3UU13MXHkOE7t?= =?us-ascii?Q?zuzb9vDyyhE0DXSqOQHHeRmoodvVnOOIixsfo15/2EzK3VS/zrZssUml4rQ/?= =?us-ascii?Q?z0krS6kzp17dQDLQsEPcRy5NU4vPuRgbXTs+8CzBfmmBGVEpQKEZY+/6m9s+?= =?us-ascii?Q?1i6qvFK4E1w1I6Pu8uRCaTdtOtcOo/NpSWZC5GpMzp055XUtRlcVDZpU9oZ5?= =?us-ascii?Q?9CrRGP+R74SwRhv+RFnPGyi3zUHLBZe/pKXhREBRPoi6uLGQx9q+PfqBlO+e?= =?us-ascii?Q?oHuhOS2/m0irsLKciLvMdxOuNOEtKsjpho+2sdPbXwQOtdti9HSxKJV0y9cC?= =?us-ascii?Q?xUl+nyvh3E1yYfgrbT/mKKYmph5vJVMl1bsvgmH2RmUINGWTVsOvgTbQoChx?= =?us-ascii?Q?f09MNF8lybio53Ek/9y54DNr9L0qaoxG5WJdVhO6yQsvmMRumjimOJGIm3Je?= =?us-ascii?Q?vvH2UdrXkvD2097vfGwTopi0rdoEre6Y06jQUP605AzjSMd4XqP/1Qf4FfT0?= =?us-ascii?Q?4P5kJl1QKFnyReHyNBUkkJ/BpR3XJu/nRGBZJgy5fL3Od+zTo1cPDnflIOnD?= =?us-ascii?Q?E0X5O7yWHBLu3ykJWl5/BxVXGy4xcmokPaLLaHPV70fq9ou1FBgC7XZ0c3QD?= =?us-ascii?Q?R0SptQ+61AhNLfCE1tR8QQyONA3oI5X4bG4uUvlrBZhHTenXTs7RIiNJO1GE?= =?us-ascii?Q?bcnj3JVLFsol2TZ8WsokYMGhgPdVpUqQl9gWppaNf2gS850ZxgTai/bpywDO?= =?us-ascii?Q?Ghinx+w7DXxK51gT04D6AGYojR6tZMNsTv0jdMNQ4u+vBgdqLOIocN2+hm6d?= =?us-ascii?Q?+1Zikjw1pJoFj6tAMyDcrJ9xxp5hDhVOrgckQZG2zF40gBnr9KF8LhLidKN8?= =?us-ascii?Q?zxWWBlklKIVAXXhFyXDbNUFDzY+/IewWIKzW6ioPncnMYCD/j55tgP4FCwsJ?= =?us-ascii?Q?tLW1iG6xNjKfvJE1/GlIjSG0g45LwojvNxEBd+g4SaYJB4xd8BPoT/xUjXiP?= =?us-ascii?Q?nVn0C75TVDuNOoRjyW+Dz6vIYq4xkgL4FeoWq1nI68CVD8W2CfZHLNEzqPae?= =?us-ascii?Q?dzuluTPhV9F8CVs044nXFTb0TJ4dznSK9hMZ7N33/3FxAwyIuFBOxCx9uJrD?= =?us-ascii?Q?gBT4kNHrj83eRSTIflL4F2QPqHWqa6HyMxQLWoSwwQqiIEM+lO6UKX5VQU2b?= =?us-ascii?Q?auvYJ8a2s+QsGhwDas4tZg1qLUXqp+73d50/imXqaAGZdtCWzNBJ5o4R6mhZ?= =?us-ascii?Q?1T6T3IxiSQBZQN1oE7lwNeq/7L10NJPbFHrL1c?= X-Forefront-PRVS: 0351D213B3 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39410400002)(39450400003)(39840400002)(39860400002)(39400400002)(39850400002)(50466002)(5660300001)(38730400002)(6486002)(25786009)(478600001)(6666003)(2950100002)(53936002)(2906002)(4326008)(86362001)(110136004)(6116002)(305945005)(36756003)(3846002)(50986999)(66066001)(48376002)(47776003)(5003940100001)(189998001)(72206003)(7736002)(8676002)(33646002)(50226002)(76176999)(42186005)(81166006)(53416004);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1733;H:ssuthiku-ubuntu-b2.amd.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR12MB1733;23:cxwsI/3+xLcwWB5DmBpkRs53NsNn8cP/j2uqqrkJm?= =?us-ascii?Q?VOv/nAmo4Is+PvRY4zm1fhx1h262d91FYg5jiZep0l/iVk7L9m/KStcZ+rec?= =?us-ascii?Q?Jobm6+Plr+uTcWfgFCYAPeS/WSDH6kDYO+XTIvKlaqcIp6SMgBjKFSV5ZR7y?= =?us-ascii?Q?Vk1AHp11424/vmjiXR3HKX2elAf7PlQ3UUnKyiiP+wNcmXDDWYO77RHDoTkZ?= =?us-ascii?Q?RbKzG4nuFg3dyFgtu66cCi3RxnqUV+Fk4bXfxQTgvKFZxtK1ELoquqWIXKM7?= =?us-ascii?Q?TzZDBZR+tVTb+LSwu9KtqSmaClMSr0cKGBuG/S8RHyHb4vZE7F8s5esK2+VW?= =?us-ascii?Q?GjPeWpLNhfw19EoBdzadCqXVu6WxqW9avt77pZpEre2O4Ppm++quIltt3GPg?= =?us-ascii?Q?AQN+DQq2eqfha780iHU7cWau/17Z6A3DQFka7K+wrG7b/DVixbYO+02NiKDq?= =?us-ascii?Q?AWHGh0WYEoaxSencJP4cyjsUvl7RgYFi3l+1tqDksZh7qKfykSCELijjjBS+?= =?us-ascii?Q?gcaWUTDiILb1iBYh3fZUuHZRIGNOgt9CN1Fn01yrez4RcmKfz93KI/jce3mN?= =?us-ascii?Q?/1Qf4IkPDoQ/u3lx0iaYH3XattKnWasgZhyzVXPOvYV5cwx4ak53Olaqtq6a?= =?us-ascii?Q?h+bOBb6kZSp7douZiYxB/usYGnLCW0IMOwctZETDxWIcFjSpQql0ed9hsEir?= =?us-ascii?Q?jP1hRLyVtGZREuX281GnXMDziydJl1var4zJwuDGk22cuPE73B/L5D3+tQgO?= =?us-ascii?Q?JljSVBhXqOuUyi29uDmOkBg+tgkWOnGLwo66Ea/SFG/VqOzo3ZcNJIkBZXzX?= =?us-ascii?Q?j3oZli6siZSFTOtDKUKuYgX7RU28EtQQci58ULPjkCGM7yOyMqQyzp+Zo+mF?= =?us-ascii?Q?cpVDriD4enoSv+y9mIIrmT7sSdaLXah5CDuBxC5jgvPSZTUngLx/NNZCUv4s?= =?us-ascii?Q?WyAToCD0wUWf5s8UpkPaeEM+oBxc1iXTdqctR+6z+DA/m2PXG+BfTtbs6U/S?= =?us-ascii?Q?2b2z9fqw1fEtyuByi6iuBqO9tRsr9L51i8Ylrb9RFQViA=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR12MB1733;6:PK20KXU8zkJG+HSV0OKT+l47wLGfSBEJsUAQhrH+3F?= =?us-ascii?Q?b4+N+N9/o6Qq03cRq8KUc29OJL7IM9LrR1JJlRcRN+wQvXTQjLcuax0JFtPW?= =?us-ascii?Q?HF9gZKFFAa1tf8lK85uwnw1oosBM96fm0hJ2SSpMC10Ysh9wsIhLXOmgoFsU?= =?us-ascii?Q?PikURUiGayIyNjbf0VAwf5FIDQDqLZUXj5BlTwzrxBxmrbpB4Ec/F5b10cbr?= =?us-ascii?Q?TyXG3d2Hz4n6IOuuvJjl6vLsuXHdQ5FubGdI7+LAOjNmhploMuQcgcUvZv42?= =?us-ascii?Q?VdkfIM8jFkhnakAmMYhWX9GH28fqQH6vN2jjRLcyS6emVjAig04CGydorjRo?= =?us-ascii?Q?5VNgnCmLQsqJDlgVx+eS7OnE6wOnfreS7+fxBIoh+HXq4YQ0ajBuUg04j2MQ?= =?us-ascii?Q?PiuN3AegvgGkUpKaSy3h5vsFQBh1VImN1lHUa/GHrysd3klZkHP//fY5wy6S?= =?us-ascii?Q?pA3b6pcOv4FDxAm4E2kkJBm1NhxhaBxsW64FIrDjSzDXLGuZCkumqz4aPcT8?= =?us-ascii?Q?FuWvbMBmNtvIVbsGkTGO2WdXQXUqGGdaxTM/p/E0E5fJ00tRIJow5fAg3608?= =?us-ascii?Q?yKz6qk65Ik4OBAx+1/e6l7FQkxAm4sJBN/SceQO9KUtX1Q5Nm2i6otVyZeQW?= =?us-ascii?Q?gy7t0hqrKTpGpgGO1f6oN/+usw7iBwDlMYw6LSq+rHPRHQLYXHy3US4qKmfl?= =?us-ascii?Q?UvgOk3RLDG85tMPI2y8LsevZfZqpK4pZWUmOSjhPK14h7I1j2Oqj+onrMdBy?= =?us-ascii?Q?CRMvHJtMaomYEq8hU2P6dq5R8yv5ZorwX3sfQD1RHElc6LBOtplmsoSlv0lS?= =?us-ascii?Q?OvJrIYk0B8FpyKmty7CSZkFDAPesaWbAAZ8DPyiHmuerTXFdhiP5ACfEq+CK?= =?us-ascii?Q?6e9cL7OhKOx4CzcSpO/Q02M4l5SuWjFxJe+GJs0DoRJjJ+4YrLZ1m0bqBBeN?= =?us-ascii?Q?17H16mS02JPHlFZ8MfYn2EMef/+JxmABilsLeA0a7OkxAgkT0LlwkY47UWxS?= =?us-ascii?Q?z8CdXtiRiMxLJjCJmix9bB?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1733;5:uBStpfr3KZNk/pEx8et3wXSZtJpyQnhRvPFzR6V+m1gfdMC20JOQ/52mNa+xnFnywJXvf7FQtGV3vJ25ihO78N4JQozsmhhchMua6rhurwSCXFmTTZ0V4MmewP5okko6tfcM0i7RG+MemLVnTHrFiQYaudH1SaGghXhdw0aNtSus+iaw1MmYfx2iJ8BUpE0aStqw9KmIjgrrust6hz2NkOotO+Ks9kg8zvmi8TV9EhFcArofdRh9+16XliuJJ3HFfdpgmz9QlYOwPTFqAGSpfZYZNdvi/Wv3q029H82TtSQiNrI5Bxu7OPU9NxgAjdmZXgTkNsaHLrsX5D0ZjT8bI5eGWFndzBOXdHy1tCjpBsb/q2WELEruuIO87y7sgu64cA6MqCcdp9GH2rlj7GMlb24fS4MXud3t8AXKHcwXojobip4R3opl+kymn912b7zqngCoz+QhFvfGUDmnv4mZfuFcAC6VsCZWYtaDspVZzkk1wpeD9AOO2jHOwjIkgFr3;24:egbaioSu2xJdri9D9x/VPBZU33wQiNXp4eDjySHfX8ZabuulbikNYFbkh8h/yok1Zx5cXZukwAQz4Rb79lVOs/EXzUg557mxKD5/eWpO9JA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1733;7:r4SIxLHxioEx1VdWIRaylCzJQrpwNGcWawNz1oPCy9vjRF5am2b6rzLQui3y+JOFXfL0VplKKVTr5KthQtUDVbJJCbtHcGgvJxA6HvuRKVtxl0flTTeN5o7+Id3hOPbfZE89bKXtp1Y78/Kwp5CalJo+KT/AAmftUIQ4AQzkr1JFq/cQV36qMScezFe2EvRz4UvB+W9EtXOyYwsPlagcATvmdtJ2n6kUVaTnCm6yQ9KNRMiq20uPtAChhVcmnJ7ayNnhMageeNHhVUS1KQiPg6jJw7YUo79c0jErCsgY3MOzZRVMn+wJ3cPKg4Aj2n7vUx4o6zFXuKpESgsIKssL/HenVlQtfpkv/ZC3kzM4XwWcODr9EbYbAOy5mQcwSRuBDG3eeBhvgcaUyUhC6hvWSzwrxDhcTULKrfPex9iH1Py1mHL0O0qM5DMPNfDKcDQX6KCS5vkr7Ti24kdWCdMo4MbEdqksgZ0kxTMNcAKNdF8GdGGjo3uxwZ0C0sDkJWgy3k5LOvLuawynNdRxTjxk5HXr2P12s5eE8FD8FKyj8pCy7byk3jNXYDSPLsvIZlyYie1vT0TGrXgS1435WgrEC2ugqVomjR3HGUWqzthC5lBEUIHZe3tmc1uc4Md02k7ABAYqDoDokrMqBP1cp/deUN0G0qdyZ7ATMwqp+2aqx3vNbFz1qdw9y83NKa1DG275TtRQm5MKFKAvVX658O5SEv4b9Gxij0Fo5E1PMZN4c5cLn5t2oNh+hr+jNA9gAuXf7SztjkC0QW2syzQPDPsPr60Vt/+kjgnJr6U3mQ1PqqU= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1733;20:L0JTRPMWVstxc3E6Ho7r6fuXiAuNX2FcSFFIyo9d7eO+x9l6Vze/yecTuYOVg17GIyjaC3NAgsqXIdENHV3g45cwhNDRNzBndNEn5BVnGmiM0lVXNiUywkwf6xqvYF5T8MKU5OTuRBmb+S1EVy+YrbfUYhv1tUEKHtH7oxTdCW5RfAiajOu27nEndMhnduoXsO0n7J6ghK82Ei5m5tm5+xWG5ZNj6U3am/+a7mP8lj0xp/I58mhRUDO80lTVPfDa X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2017 06:41:17.6685 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1733 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org CPUID_Fn8000001D_EAX_x03: Cache Properties (L3) [NumSharingCache] should be used to determine if the last-level cache (LLC) ID is the same as die ID or the core-complex (CCX) ID. In the former case, the number of cores within a die would be the same as the number of sharing threads. This is available if CPU topology extension is supported (e.g. since family15h). Signed-off-by: Suravee Suthikulpanit Signed-off-by: Leo Duran Signed-off-by: Yazen Ghannam Cc: # v4.10+ --- arch/x86/kernel/cpu/amd.c | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 2f5869c..faa4ec3 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -306,6 +306,29 @@ static int nearby_node(int apicid) #ifdef CONFIG_SMP +static void amd_get_llc_id(struct cpuinfo_x86 *c) +{ + int cpu = smp_processor_id(); + + /* Default LLC is at the node level. */ + per_cpu(cpu_llc_id, cpu) = c->phys_proc_id; + + /* + * We may have multiple LLCs per die if L3 caches exist. + * Currently, the only case where LLC (L3) is not + * at the die level is when LLC is at the core complex (CCX) level. + * So, enumerate cpu_llc_id using ccx_id. + */ + if (l3_num_threads_sharing && + l3_num_threads_sharing < (c->x86_max_cores * smp_num_siblings)) { + u32 cpu_id = (c->phys_proc_id * c->x86_max_cores) + c->cpu_core_id; + u32 ccx_id = cpu_id * smp_num_siblings / l3_num_threads_sharing; + + per_cpu(cpu_llc_id, cpu) = ccx_id; + pr_debug("Use ccx ID as llc ID: %#x\n", ccx_id); + } +} + /* * Per Documentation/x86/topology.c, the kernel works with * {packages, cores, threads}, and we will map: @@ -321,12 +344,9 @@ static int nearby_node(int apicid) * Assumption: Number of cores in each internal node is the same. * (2) cpu_core_id is derived from either CPUID topology extension * or initial APIC_ID. - * (3) cpu_llc_id is either L3 or per-node */ static void amd_get_topology(struct cpuinfo_x86 *c) { - int cpu = smp_processor_id(); - if (boot_cpu_has(X86_FEATURE_TOPOEXT)) { u32 eax, ebx, ecx, edx; @@ -405,19 +425,6 @@ static void amd_get_topology(struct cpuinfo_x86 *c) /* core id has to be in the [0 .. cores_per_die - 1] range */ c->cpu_core_id %= c->x86_max_cores; - - /* Default LLC is at the die level. */ - per_cpu(cpu_llc_id, cpu) = c->phys_proc_id; - - /* - * 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. - * For family17h, LLC is at the core complex level. - * Core complex id is ApicId[3]. - */ - if (cpuid_edx(0x80000006) && c->x86 == 0x17) - per_cpu(cpu_llc_id, cpu) = c->apicid >> 3; - } #endif @@ -799,6 +806,7 @@ static void init_amd(struct cpuinfo_x86 *c) #ifdef CONFIG_SMP if (c->extended_cpuid_level >= 0x80000008) { amd_get_topology(c); + amd_get_llc_id(c); srat_detect_node(c); } #endif -- 2.7.4