Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752474AbdHKHl6 (ORCPT ); Fri, 11 Aug 2017 03:41:58 -0400 Received: from mail-bl2nam02on0076.outbound.protection.outlook.com ([104.47.38.76]:58930 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751545AbdHKHlz (ORCPT ); Fri, 11 Aug 2017 03:41:55 -0400 From: Suravee Suthikulpanit To: linux-kernel@vger.kernel.org Cc: mingo@redhat.com, peterz@infradead.org, bp@suse.de, Suravee Suthikulpanit , stable@vger.kernel.org Subject: [PATCH v2] sched/topology: Introduce NUMA identity node sched domain Date: Fri, 11 Aug 2017 02:41:15 -0500 Message-Id: <1502437275-1842-1-git-send-email-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR11CA0007.namprd11.prod.outlook.com (10.172.17.17) To MWHPR12MB1741.namprd12.prod.outlook.com (10.175.55.12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 08473ceb-494e-4619-cd5e-08d4e08c6f2f X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:MWHPR12MB1741; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1741;3:5qOcAF7pC3Np6r9dEJZlrRTxZZlMjWUdDGvWubPG6712QOe7xBnic544dWQUW6aZHbkIWckhKRAoa80Av97YV7huLu9/IcaCMrzSkYhEMPb79yNQ2Oj1Hyh3cy4R05kxlhee/jh0dk9kWVRv2RGSO1w07O3nyxnAxezwwzZaUlm7wPHwdGH4TLUvaBD/5+0qLDq5F+9yQlIDJNvFr0XetQu6oXenaMgmoVmIa4ut+RA6Nujl61vsfUDgNSyRZFWiNdc2ca34lvZJStbCcNfrwVFZrKcSGxHx4CR152thRvT4o9mOGaZRIBTNPNUe1iD3ghdJLkZgQv8XLPb0NGTnYqfmosITncK2py1/hCYKfeNBpPfKJ9f/I39KXi6T3t1bf/EcgLpIa9E5mBugGzkiUgcMPEGIDHlGB2zS7MYaAjTigq0wnDERaVeOJax4f+JxP6NVlu1CnuHkpPrMJaLjF4CyVfNmrjVt2IH0eG7CsOVgxWKY3sE9NdRdDvlEL/beN6OcT1BlkXqhosYaOjh+sXEjj3vb6hSiJdHu5tgUEYsudlcE4Ax8YVVnDPhaNZYw9zMh+WjQSPBvvUiYyev4WEY6c3Z3Vtk4eSHzelJCqyF3LO4FpBTOPA8gvIZinokMV2pz/MQ0JaQJVyl4F6Yu2Fnitjy985YLLb/ZWaruDW2D9zTqiMcb5c12fUMJ1vpMX50ZvxtS/bsO5pcYiyvosuRJlPK3+5DRPBOe3KEwoQ2afjD0KRaCYIs9VaNLC4Umd6D+PAeEGuv/PHal7xVV2CRc4sAvBRHyrv/mgjBTC7VwxdTiY0T6fT2BSdU0znHASGx+oKtCQxg19lduU6FYlg== X-MS-TrafficTypeDiagnostic: MWHPR12MB1741: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR12MB1741;25:7Epmkj0xLyjaAuj03RDIpuLgM0Bfm1hTkPQ66wN4M?= =?us-ascii?Q?K7n6JEw2v7enOWUQY4r6aThdpAqVfRETist7SVKsXakb+swjgSkqbuklo0aw?= =?us-ascii?Q?UaHAhjT9p3sxQ7io9gz41sVIw8EdxB0yBqkjS43lAZ1kdaOqCbvlKl7BgybC?= =?us-ascii?Q?Ee7J88QVIR5RK5aQm45L56KScDMybMyvIMddxmRc9SLOWtv+djKkgwpvFqR9?= =?us-ascii?Q?iRGnzNJ8kqO3YVW6EaVLyg4b8GUhuk9izRdIk8AZt6m5R+WPsnoy53a2+850?= =?us-ascii?Q?hdUU0OX+bPy7PK9A6fYLZVcG6Ym1JWqUusO/FkrrlyrZd4NbeWFqefBQX8Cs?= =?us-ascii?Q?JiSt3LhAFZUQ3B7f9vTdXFj2Ac8L/u37pGOqA20SbOn3yruPKRuWivHSgjXh?= =?us-ascii?Q?vHiACugt2kSMzZjOns17mCTAf8+Ofn9UUmwbA4o5LUqfO1Z2VjVUTOgHQDXk?= =?us-ascii?Q?2husKZ9cmJMPnCo/bLy1p6coOL9qQ58mXIpspqaeuPcjcXjgo6Qm12LTMNa3?= =?us-ascii?Q?jQYH0tEtldzl1dind/DdZacloW/FAdX1cZyV48h9ERuAGzAjINIn1bD7HHBD?= =?us-ascii?Q?wMMcO4chIfljM0VOuMOLFzyl8nazxqa5/Ef72WPqdS2Z9Ce3njcCyt84akwS?= =?us-ascii?Q?HJAo5weNh6kToFnFu8ifvKx0vlBEHqKBQj3tD+Ur5vTYqwA+Uj3CMs4fX3NY?= =?us-ascii?Q?ak2BwAQrTcqqIy7MXle6jzkvHKjwrCmmf1cSKVtake6G/PxwE1t6gyZT+T/V?= =?us-ascii?Q?b7XTg+haOwy09LwgNWmObZABAlEwqKPizHJTAqIXav5HKe+VB0zDQRKnBgHN?= =?us-ascii?Q?cYMylqld0kab5yHSHUUXHEN4bt6GUxHAFaOy/J6X7vBvg9ZYXDpxq3LdJO1W?= =?us-ascii?Q?jcBnNFvg+JMh5YQORuYkxUREsSGDPfy/CVYzJ6iXUzq+wVV5KF3dFR9CiU4P?= =?us-ascii?Q?LSJVC8ednrjyhRG2tFg4cu/i31pAbGN/X+0AVoZow=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1741;31:cIaYYIG0VF8Cbg4XDPATpyahJA6dJ8nATzxJ+D/mFA928JpUsedAhMbKrUU5tnEj12a7VLEEKnU++Ku/tJOCZqj6N/HO1Y4AHEXGVN0wpvXCrrE77guNmtG5gqXWTn0dhbEObJ8whBJLLmLILu+7lGNJBJ/WPIGFtPwrnkT0hkUhp1JbD2zBXt1Xxr4oXIZOyZhij1yzedosueVlaEtLFwKAX0DPAqRKoceiDOzhTzSFRjk35geafbWjwaXScHvEv8GH55XHa7AVuKc03KgKjnkSQbr84wIsUR/ntccyXkxnMQ4FKumnUuY8SIevGo17ZZgE4KR0Rl6t4eqyWTT/ZJKY7kkQpCaxoZ1uzEN4vYvFU3C+/UMuAYGXAYp+WLliGMpEGUJTuH9KLkFRiOmQNFCotEOhnvUQBM55k7++xV1RBWUjdM5lR72PnvHQq6bCFwFhEd7c+TYInygnNxILT0cF7f6yEAZo3MRrOjiQMVF8LONsVL/4CWn4fqPZOOCDQmF/Dj746ZpJ4Xbpqg/i1w7offDclE93oJ/XPj23/lXKkrmP4AY9R9rEQoFuCqPnjULGHuskebR3ZtUJlvtCkZg7P0SnAujwut9ssNboaVQhtYw4+oBaXbztFxbZ0R6qayQ5G0cIdjdT/d5Tf/rSsIYkigwqEFKGpUCIvAtYAQM= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1741;20:agOVj1SFeBfc0lq3fPgq/kcjeijvMAPAkx18+DY3Ru5/NMpvn/7QMCSTFvVCxd/Xuvse7JNjt72SsqYraPxjeKmFV4EkqEUiL+qwwca7yroky2UAtOKc0cI2iNuFi+w6bZMtDheflcGBtvWlCH5/MFh0fgpTqHD2Ezyg0IFPgJkQb7pqRPTDYD3VNE1IHQ5juXGENeiuh8rYly6qV19jP2GlUongJgrOiCk0O68LKz+BU4ZpVl/MxEwcUT6pyWUwSuMAp9Jh7HAaMXrvs0x3teJGKtd79u4Wgb7ar6YiMyawFlkemaY03ZUGjyQI32ZOvp8WDop09EA3T3GCLSITBu5Z/8ueh+HFbPtYuK22KDd39U/mK49Qp2EeBFtKlXY5e/5DUYnkrsiorgIZ4bE57jH9QKBdhgRT2qbnmJb1pdMknGEbIwTCAR2AsZJVs73lefXB25tI1UXYXekktpyRQpuK/PgxbY8WXejguxHAVQt92UPLFxTtDiKJsmogPfr2 X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6055026)(6041248)(20161123555025)(20161123562025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:MWHPR12MB1741;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:MWHPR12MB1741; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR12MB1741;4:1q/pvTOgh151pd7MCwR5ynKzGFfAzAH5rHRoTFfnn0?= =?us-ascii?Q?ZOwfvfW2/asRmz7Q9kfXeao40GbO4XOVItOM3Z1LwCbdd7WFDEE+g0jgSQhM?= =?us-ascii?Q?7iAh4HdBFT6pbBG27TZ8WkC0rJsgBlm26wKl/ovFFxC3Ak8midKI0PwgS31I?= =?us-ascii?Q?R/yahMvE42SmDbtwDAAR/bI+BSBnBUvhV7iuWx+W+qdN/RYHlKqSvyhUzzlW?= =?us-ascii?Q?kMQG8wtR6+DF3Qqn+t1LIn7jXUYtvpgwGIgLm9lq+f7qB9i1W2e3zT03ZIlE?= =?us-ascii?Q?FdMtBvC62SbXoR4i/wb9dU6yKxgvRDec+pP5rxmFuG1kl8fKdCgUkcddXjCv?= =?us-ascii?Q?4gzMttwCm9rdf4shGJHJCE+UJcOILoEPOGD9BjQ/kM09QW7edRgxlXsOH5nt?= =?us-ascii?Q?HHD/kzB40IXpkkdvr+Na+NKsqjR275EDatTN50+mWAYVQSprnD/fW4oCUu/I?= =?us-ascii?Q?k3OuZxVT2IYVMru5vP3P3adU9NlANZ9FCOcZ71Rbqo/Fk1fp2DEhGRpWA4R+?= =?us-ascii?Q?QLV0R5iDEvpLhMxbEkAnmdzOQIsjC31z2mSmgB7rxcg8HGxf63gdU8IfZEpI?= =?us-ascii?Q?4DnTxOSfLSK8flEmN8ocIoIuxGMqzczWGUruCKSS6koEl9E0F/HSVHLr7Wtz?= =?us-ascii?Q?CeVTltHJCq0nxXysflZAOYgv+9nOYOaiV2NqbT8PE1wPEH7pEjyegCj7XoEQ?= =?us-ascii?Q?m9Aq48qyPPIwLymg1dcj25v1N7PSb8IMSQu7yIJbfHrJjcYCrZQTy8XkT0yo?= =?us-ascii?Q?Lu1mB24J94dBJWVUp6bJ2w435rP9X8+GHU2ldWjDinJwCZSjgDy4QZL6SnJI?= =?us-ascii?Q?G8tEAb6b/AchigiPz9mfKXLqUULemP33ZY1NRu/OLqHvBSPaWVIkgj4pA5TO?= =?us-ascii?Q?n7XSybx2Jx9oBw2+4vyFazZFohDbQVlZLAdqLTpik2eNleKoz2JI8hr3Hxvg?= =?us-ascii?Q?fnoF09Vrfs+1/8sTkr/0d11HbK5Vn/91QeC49+jM7ACxqrIfYa6nyfb9r534?= =?us-ascii?Q?U8NgnKJ30d+J2wtkciYZGymeO0gIq2eSLXNYEg1VDo02lnV8Eb/YxHs1LoMa?= =?us-ascii?Q?Fyz8Y3ztm8wBbMfwv2KnKm6KbDW1kR/phYJbSSb8S9ThiXTScUhqdQPDfA80?= =?us-ascii?Q?bCVwsawGyeoNXpL4H9lQwLIsXWFcjJfb9LxVi9ly3TU+Tx2mOs8+r5G/lxLS?= =?us-ascii?Q?QaEf8Faw/WM9jM8Oj5atZ21FLLdaqSLHMXV9lfh7Cv2xCLC2RggJO09QyICg?= =?us-ascii?Q?mhwz48ygEt3l8PIb9BFi+Q0/TMd2z5Xmd1htGK?= X-Forefront-PRVS: 03965EFC76 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(7370300001)(6009001)(39860400002)(199003)(189002)(189998001)(48376002)(6486002)(478600001)(7736002)(81156014)(2361001)(50226002)(305945005)(6306002)(110136004)(8676002)(25786009)(86362001)(3846002)(7350300001)(6116002)(97736004)(5660300001)(72206003)(81166006)(106356001)(53936002)(36756003)(47776003)(68736007)(105586002)(6666003)(5003940100001)(6916009)(33646002)(66066001)(4326008)(53416004)(42186005)(2351001)(50986999)(101416001)(50466002)(2906002);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1741;H:ssuthiku-ubuntu-b2.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR12MB1741;23:AksulermtwipCXA87DYeakdGQectK+izCO1RtntPs?= =?us-ascii?Q?hqSZWh9ioxs29LkbFrj+Hiuw6P6Bw+U4E6Nh0Ffp1A50Kmlx/El/pT5DX3fH?= =?us-ascii?Q?a5RWVdEWZktncAe8/W8MMtmDeVyRMMsrT512U3oWZEr0EZv/spWYsAfmbA1x?= =?us-ascii?Q?VAT4Lkg2Sy25VJdB3BZevuPtbUlY1hJ/bKMaQAeo6j/b47+xnPrzQP1kY7lh?= =?us-ascii?Q?UMiUtapF68mJS4yRO8Ry+LJkuKjhjI3fUe6saut/AWhxwmcaKQq+Gt03LXSQ?= =?us-ascii?Q?Qi0q/4RdgPg5Qb6mxAts1dvkc6FqJxxF77rGXfci8KaV41mdhPMRkKgg2l4x?= =?us-ascii?Q?m8n3OVK13N1vGY5S4S0NxgAyRx1EN61hXGUIq928ZlDokJUFu1hViFbApm8o?= =?us-ascii?Q?ibPkyQwWkfDHUXaXeTdZh8cstULDGNlKmiQDPcaXqrgDFTDOyKCeWXlOFuBI?= =?us-ascii?Q?Eojw/BFni9WzhYdk2iCUQ5mDUUP6jBhotLfkXOg0c3Fw0GE0mh9q+QNCJvJo?= =?us-ascii?Q?aVGKWBs6zNY6AMa5KYLmyZ5g9GZA8G0ohmrB7FTAap/CZR7h2AEe6E3AiNuG?= =?us-ascii?Q?LFPg3tl45+opdtcK2U00bJ43EYLzVL1x371btDfn8osPXeGYaxj8eF35hCLl?= =?us-ascii?Q?HpVsq29XlkAIZLPcSJ2a9sHDTpA38uIR3hgl328l9lRyQm6Exge4het3vh1k?= =?us-ascii?Q?Pa9eCDe3J6TTutQ1uKEHqv9BPbCYu4seVepDGqlR1mFs1OepKAI2r7MhegBB?= =?us-ascii?Q?N6xmX1xmIBD8eNwE44Ak3UkpjIfRAOW0QTwwKcdC16wUQPltgvro1w33y/ZN?= =?us-ascii?Q?h2uUXF0GQOzauis1XCY8R58sYwALqDwY1x/hh2xpwZtbxzs1vB8wVlB2ywBf?= =?us-ascii?Q?xuGaWDT6+N3xmqsJduORwW1mGoGpPIm5zCnk2Jpb3fvaGCVLVs+esDHU+eHY?= =?us-ascii?Q?uvQkETsbEyDNiiV8e/rnb6IxMhExZ/aT4LxkUgFyMGYkyRdrSBnR4Sk9SS0t?= =?us-ascii?Q?tPushscunyhvUN/bAXkPeUiTJBO5BzIYFVXNnszLJY9t/OVFeLAGsplRfU4o?= =?us-ascii?Q?BEO3u2rJ2pQI2v1iY+PgXFWHu1EwxGhWwrMS7VsxdSvtAkVIzE4bNB+8RFTv?= =?us-ascii?Q?UUunNfL43A=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR12MB1741;6:cmzjaOYsgrOae4Al+OwVfqLS4BL0Ue5cajw4cQYhVQ?= =?us-ascii?Q?KkH9rawUvvXCsflVZzcBAlMi43t/87AUfjRt1AvbzYQWn4xnAhIY2ZW8BcwA?= =?us-ascii?Q?tPtrzIuvRrVRvuNTNHMbG7uutGEwb1WarDrlLIEWKt57pqUxzCgYd+6rrW4n?= =?us-ascii?Q?OL4KpXgt86/MJF2yl4KYyXzjdpn5pLKd1VjK9UgRXrDhvup4G4qbOE+X2Gsm?= =?us-ascii?Q?TOQkScfu/4yUMgn2YCfJjS1/9YluiN6jSpy431kTXUgaBvVBxi17kbaMVxA3?= =?us-ascii?Q?yN7iZIJIO9U00fnma8fpRTpA306Gz4SGMA7OGD6+VhQ40N/RDMBXAMmsl3nU?= =?us-ascii?Q?Idnn0veGEbTJArYIRr/PQG3H/YcAC2rKFZGroHTlbeivi7Rj2uWcR4Lk2YPu?= =?us-ascii?Q?Bgg/Y1fHhnJ/i3M1Sg2YhU2Ij4OwUlnfDCIYjpmAbfnCa8OfIZZoxIs2w9Ip?= =?us-ascii?Q?PFi5c192E2lzDQWJh/DGdejx0mzmXxUW8+pT/dm48aODvWH25aFofj/vWXts?= =?us-ascii?Q?nL/b6XC+ve/rqOd80Q5La+GIC0xYQpNdqlJhUnvHi04KHVWcmW03K8jejOnz?= =?us-ascii?Q?n6UDIlSR4eFhzFoLMpBBEGmP8BxCsUHS0/eWNZj0W6Bap5XWvr+lhN23Kkbq?= =?us-ascii?Q?EHg0I7+91ywKUpAOMM8o8ZWore9KugJOJn41PNpq3weE7Sz0TQKF1g3jgLsL?= =?us-ascii?Q?o2u4dc0HZ9Id5FuYnNkxUSfL16L7fzYgVd7XTAJqQbl5dt+UAnV7u9b7ccAx?= =?us-ascii?Q?Jw4+grdqdbBvQSvCvdgHJkCIxrk9A23Uy4cNF6K7N78iUx0NKs1e78Crbobv?= =?us-ascii?Q?JYgBIye2IxxUaLfdoT3SnheXucEbqOyodIqrF4Ua90wyoRxcQxE0RlkyFKnc?= =?us-ascii?Q?2JGLGVyNb4ihk9G4uCjr0uUAUDpgps/TmsykdmJcWoDVKAS8L6ZezvShpXga?= =?us-ascii?Q?6CXBanwrPVf9FtQpml1OSLTzHhTOIHm689Ja3ZOySByeappDHZLiUZu7qYD5?= =?us-ascii?Q?lGcH6j64NzitVvFn6jsC87?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1741;5:hsUjifjRPNX1ql9wJ2nmp91V+AV+s8PCZRHbz4Gc+xYdnnGZu2dAfA/0T2E0QagpuXfgy1eVRfLzcSS8Ow6iKqgQYuU27gSbcA1Hew3VB7L7INGR9WfpX19gv9coE3HqXsl1qVj/9ZOzP68I7Ev4/ACodL0wsy0kSjdQ/BNFfBj5Dg7A7kgbpkuNVV9VzRBitnlo91kSGsuI1yF6SG8aijAL/G6U2rPQ1ioUuq3a21B5RtGqPFL6euL2ULIXBpdyeTv9BwZ4aP7MAGJfBFIcpA4wCQUXzr/3RKMocswqn4+sTOjUjusrwvDvRbJ330W+I2korpNy+6EhQ/BE8EGmgwzQcq5IE7jBFqeWhKZQbkCcJcO8PLvDxmL+j9Td96eFWUQVtY1goGm4ir4sD27t/EywrM3qZKXPl+SsRNya7zT7YIgHrl6Yr+kvexLD3GKrIs9GT0FsStljQABiLPOgLCvpVZaaOuuOCvtFn3yQdmsMkNjgzJkDtc4jRaBFKWlq;24:NcWUYeAq4ydm+xWaLhkz+Is85abWJm1fGckivjZYzMPEVPIgweX25LWpxsW1HMFaVB/ZHZ0m18LdX+4qbtaGooNHOHvWMzTlyGTu5f2Kuyg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1741;7:tcOS1RA3WZnC+LyAncHQAVYTb/Pmyh40vGqiIAUPTEPUlDns38tqUcWZvrDCtT+/uC2OIJLXju+YrI7nxkuhmyKpKjcFQT+/ikAPiBGVVKh7YNChAeCsms1vlyMT285mOhitiepm1m/g0dmC87kL7Xj/TF1v3egEgqm/BPVPmwZe65//bwKl6N3/trqZFl9QD0zgqwU/7oJGXIb7vkHpzIePsgIMz7kMq4rxdvwGI+6xbprWjzCMJ86ZH3JnnwQqYHOZAT/N3UDHotFkxZ7uOM9uy41K8BQdhg+hZ9P2dF1bz/q2Vyhf6x/fxTkEoXZ6v+BqLynCIQqFZil3mDWQdTyPS/dkLbJxzOlKxvglu58RJPK2ThzX8RxWqP9I7T5CFZjxHR9VzQNcR3zXDRbANaV0TU/DBejQwE44lpIGYEpcjgIYiHkT8Jy5yV0CzpwsdZ2buG0U0N5MVcptNL8llW7E1JcLWTqWLTvgbwbMHue62k+q7emPHFlaEConMVHIhXQq4Z1UxdnoMG9FwQ087t9Bvpc4rKGwiqWf9oXQKdCH/BKPVs67zvz7nuKiQ5pRWFS2vJpUxHwiKUU8bJFVJXENmWFdSCKYpp1udyM7L9M//3+3Hn7OnO4xtZt93O5jtjvsaXZc6J7kmoLNIhUpgMZAUzINzV04un8z2+g06yuiUBp8Wr1wSvl9tW5CgxoSHW+5x0npJPjKkNistwJLlO8EaqaS2XjCRp4dpNyWutE67KEHxBPlELLH1Ug5+HN8Q1Yf0ixR8n5YeHLb8ytBhak10jaV7O1CHkyo8xa2wsQ= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1741;20:sLjdmPQLaRZosAJ4KGr8V3Uyk6tUbF8e4okep/ozcZctHz3YK0F1EU/oUC/rjjjgWdWxjiTn0gVMM5AFl0dWQeyXAkdF0XQtbfWLUPAZJUtg0jjzrQLwB+Vp34Lx69i6VrfgYdGAbibWZqom05FLAJOnqcX0KHbAB4fXYw0YbAZCPNLXshDC844KmEJF3hI4U2p5mjF3syLqCunQTgSVtOMlcGlCLkqrnMiKunEyDydxIfOMqcODg4JwKiIriFOD X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2017 07:41:52.0435 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1741 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4207 Lines: 121 On AMD Family17h-based (EPYC) system, a NUMA node can contain upto 8 cores (16 threads) with the following topology. ---------------------------- C0 | T0 T1 | || | T0 T1 | C4 --------| || |-------- C1 | T0 T1 | L3 || L3 | T0 T1 | C5 --------| || |-------- C2 | T0 T1 | #0 || #1 | T0 T1 | C6 --------| || |-------- C3 | T0 T1 | || | T0 T1 | C7 ---------------------------- Here, there are 2 last-level (L3) caches per NUMA node. A socket can contain upto 4 NUMA nodes, and a system can support upto 2 sockets. With full system configuration, current scheduler creates 4 sched domains: domain0 SMT (span a core) domain1 MC (span a last-level-cache) domain2 NUMA (span a socket: 4 nodes) domain3 NUMA (span a system: 8 nodes) Note that there is no domain to represent cpus spaning a NUMA node. With this hierarchy of sched domains, the scheduler does not balance properly in the following cases: Case1: When running 8 tasks, a properly balanced system should schedule a task per NUMA node. This is not the case for the current scheduler. Case2: Sometimes, threads are scheduled on the same cpu, while other cpus are idle. This results in run-to-run inconsistency. For example: taskset -c 0-7 sysbench --num-threads=8 --test=cpu \ --cpu-max-prime=100000 run Total execution time ranges from 25.1s to 33.5s depending on threads placement, where 25.1s is when all 8 threads are balanced properly across 8 cpus. Introducing NUMA identity node sched domain, which is based on how SRAT/SLIT table define a NUMA node. This results in the following hierarchy of sched domains on the same system described above. domain0 SMT (span a core) domain1 MC (span a last-level-cache) domain2 NODE (span a NUMA node) domain3 NUMA (span a socket: 4 nodes) domain4 NUMA (span a system: 8 nodes) This fixes the improper load balancing cases mentioned above. Cc: stable@vger.kernel.org Signed-off-by: Suravee Suthikulpanit --- Changes from V1 (https://lkml.org/lkml/2017/8/10/540) * Update commit message to include performance number. * Change from NUMA_IDEN to NODE. * Fix code styling and update comments. kernel/sched/topology.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index 79895ae..2dd5b11 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -1335,6 +1335,10 @@ void sched_init_numa(void) if (!sched_domains_numa_distance) return; + /* Includes NUMA identity node at level 0. */ + sched_domains_numa_distance[level++] = curr_distance; + sched_domains_numa_levels = level; + /* * O(nr_nodes^2) deduplicating selection sort -- in order to find the * unique distances in the node_distance() table. @@ -1382,8 +1386,7 @@ void sched_init_numa(void) return; /* - * 'level' contains the number of unique distances, excluding the - * identity distance node_distance(i,i). + * 'level' contains the number of unique distances * * The sched_domains_numa_distance[] array includes the actual distance * numbers. @@ -1445,9 +1448,26 @@ void sched_init_numa(void) tl[i] = sched_domain_topology[i]; /* + * Do not setup NUMA node level if it has the same cpumask + * as sched domain at previous level: + * This is the case for system with: + * - LLC == NODE : LLC (MC) sched domain span a NUMA node. + * - DIE == NODE : DIE sched domain span a NUMA node. + * + * Assume all NUMA nodes are identical, so only check node 0. + */ + if (!cpumask_equal(sched_domains_numa_masks[0][0], tl[i-1].mask(0))) { + tl[i++] = (struct sched_domain_topology_level){ + .mask = sd_numa_mask, + .numa_level = 0, + SD_INIT_NAME(NODE) + }; + } + + /* * .. and append 'j' levels of NUMA goodness. */ - for (j = 0; j < level; i++, j++) { + for (j = 1; j < level; i++, j++) { tl[i] = (struct sched_domain_topology_level){ .mask = sd_numa_mask, .sd_flags = cpu_numa_flags, -- 2.7.4