Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752834AbdHJPVZ (ORCPT ); Thu, 10 Aug 2017 11:21:25 -0400 Received: from mail-by2nam01on0060.outbound.protection.outlook.com ([104.47.34.60]:31552 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752810AbdHJPVT (ORCPT ); Thu, 10 Aug 2017 11:21:19 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; From: Suravee Suthikulpanit To: linux-kernel@vger.kernel.org Cc: mingo@redhat.com, peterz@infradead.org, bp@suse.de, Suravee Suthikulpanit Subject: [RFC PATCH] sched/topology: Introduce NUMA identity node sched domain Date: Thu, 10 Aug 2017 10:20:52 -0500 Message-Id: <1502378452-6632-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: DM5PR1101CA0007.namprd11.prod.outlook.com (10.174.246.17) To CY4PR12MB1736.namprd12.prod.outlook.com (10.175.62.146) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0eed93b8-2915-4674-0158-08d4e003730e X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:CY4PR12MB1736; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1736;3:I3WJEAgIVfPeX0J5WihNkkbZlw200Hf1g8BrbbMwtlAh7Ox8iNXkgBlxRUr8KXo4QPe9y5P3MvnP8L+rlB13kGpCOECb+i3MdxNEsxx5SaZvPM6md5gHlGrUWwc8vpYVEWpgCCJn3gx6WRV6dEowWPcBZEemL5+Cg8o1kWtyBufmOyraFWzyB4UB+6k32GrqRVERiFLyHXSCZ29TldnsSMK4OYHZBswjsV81j8x9eerZmCikcRdLwQvyX8IapapV4w1GbGpJ/Yqi1SgV1haao+X3bArHId2Rw37Hrpi1uBStmJSnQu8aIQarDeY7PhxeKBNHt9zB1rQoSAt0OMmTJau3HuiXaAf0psDs5/8igcl+2TRdGr8n9lJcjqCouwrpQmmOqm1CvFepYdQuqgzqr3HVhhwWZUIm6/hgXen7o1D16yp/ZcvJe2ZVigFC0SI0w4PFbHatuLMXG4XgZHd/sy5mL27jMzlwR5IAzA084TM5J2AP4h0EuF2Jgrk9ouXwAZPAGmd3Vo58JnI1SI+OhLeE7WdnCnIuWRkpM0IXqzCX5wAPBEXcht5KFFAOR3dNa5DPlN7TmZxqf3LGAPi7DyPZTjvLn8O5LML1u/RCFrwaBjp8k7BH1SBWUa7jYpd2PxPeywDVwYAk0t3DU9uCmuWYikDH1s2TPY2wGMhwoafQWRTj3fzTbp9f0/XJkWY4reAgtSNpr68R/DQvLh+WXmoB8T0fN0cA4E2LvlmslAZw5nxFjWV24pKOQctRQ9kbzxJbxCwEzeslcCTexJ5FgoHpNu5iHMEvuD+BPQ2W9N5DBQB74vMt6sHpzb1E8cjt8GaSwqX+GqiSnNjJkCPL4g== X-MS-TrafficTypeDiagnostic: CY4PR12MB1736: X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1736;25:r8RuksWol2pgyqph8pC5YDV4PnoDAe7bl3N+Onk5+yqxPl4BktmtGROq04tiQ8GkJSIEsKFJjBbX917V4b6gtKDDRSW9FdLKg8dy2MFZ/eUCjrbvLZ43HUqLjf4GDAzVKAeL5rjOjhNjmDPMyG9tqhBD8JpSfVv219c7M+9Dvh+ZcQ0BfC1fvA7NaXiZhYlgrQqfa8rQGhXdojRKOIgzamgZ+vqAD8N+IkZOHBrMtfmAJT3PXfUqQSvBLpEa4y1tkqJGvoHznkZPMoDtEmwfsWTifhp1gOl+wyMfCEqw5jbW0723FSTE7SGTGmoy6rUs+rpTzFWbXxO7T32ARk4N5emidOqB0qDRglGQe7RHzk2R5YE6b/TUpXr2TlK4JDLAL8y5FONXd0gnQQKElns1XZ/qW4mUIJ5+lc2NgWHqOND7uZRItj3YY+CN8uvqpD34YSsxQ4VgAUiEznrG962RqzX33jQywOjO6naKIEk8qMg0D9mkJZ9RlRQ4zFclXgLqkKhpOSGbTGkTYlugkTj0iusJMvPuDoMLyQMqdSWM7CYwgKAbMQ0XIKyaXaDVF/3nsNnyb3FrMdwD5NrOSj+u5M3Lg1vP9WDfzwl2C5SVSqbeXnz/wQeIFCCX7gv0G1VdRfXkqMTY0SVzpKGWkZKjMm319ayxiB7NoLAJ9pt7NdSihAqABiMWpVmj4zutFEVP5uXbgLKbnmc0GN5C4UmNU4yVVrLmVUyuVTghCVCgmp5idtigZRTVUelnCeq49RNQCKosMI+d0s1ZfIMnkXTXqwi4Io9NrW6p3N6eumb8N3/XvWhM6AWpjaH7avmM0WxsP0bCXoJyTT2FVngJ9CqH2P/wZlPSFa93IBosWnyjZNDsCnTxDi/MtH55ezg4JjIHUQdiJcb+q6UvedX/apjQz0nvCKuLzGv2rra8DjJIpgo= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1736;31:5Avcn+TOYsPLWR3Jgcn+utFkpRb6ZKt2HWhpQeIXTh6m3pA4qNIx7AIGTCrtGohXnQNlhtdoyz+7tm0bKfITabf3RywpE9JXEzVVoEz2KqjQyIxUUsMqZlh+99mdRoaEjeYr70GVWB7mTHpfmt+Q8PUSwpQpl6kPvXZwMM9TKGz3CeAiOQGFv390tlbKdX90/1RN3Zcm6sW9+tLogQJFr1EPcsvjJPQ8o/U0ZgxMpHfXTCdaKKEX1u8nEPpLYjzFTy/TE7AuH8pmAml3epM17lo87BtiqGyI+PFqA9fdNoE+fYAno3wICdFwzfAwQje1zGymyrA3y5il0MOSzXFdTImzH7JtfK7pou/0+Fh10CjQG0SdDvpJnx6D8X7KWK5CuMN3Z/9B6gHdbNmLwx7kJLi4NbH62y2dtefRWZxVPrucKEjRMmIV72APu1FCM6ONkil+DOAz/eEDz73FmPGWp1B+5fVgC4XGwaz2+YftSZwpezJ4D+IEcCXQEeg5wtEOtv/ImGs1DnE9KSz0s98sJ8jbBNtuCe4jOxCn/BB4c5wyckkB+bBqApadTZaYwHrpBf9+18nD5j0TjcRa7L4gjJ6x+cUMKSS2f0Q0aPOWH2w7jIn8LEGL2vLUOATMhXK8H/xAWOMTSIQsG1xpiq6PAYl4LwExBLkIMYlt/K4L7C0= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1736;20:JyMgjdsR84v/Te/jDu09aRf4a+CXivxRzuDjvrG9gJSr88EMkBifFg/TuPhO60N9N5nn66V0fqRMeBYm6phKTf/6Una7vesWw0Pscd/okjrbm5evhd3JOXLNi3cwgaHkjfk2v88Bweik927VR7alnjhPTfp6bWjqeYxOjpNYrcHXVaqHYi85KbbHaj/XO0/feciMDK7WvO499l9/10bxxBxm1YXdN+qO2MZwitpS/LdVGmsXdabKvVLGzbgsSQssM90vu0+vI38ofJctzVMtpt1g8MjrI2ifiO5kmYenOzVTVdvhrK23nmrN4Hx8NQSgX/RPKDJk8Pq6h5Jt3Q+DBdj9voRT2aZJDuvPpvuHn165cPXIZxaGKO02fS+dPM5hBdEIAr/iHjwFaPN91Q/C08xRf/SToR1R7jHzFEGwTp/ADh9tEn+l7vV8EE+yrHDK3/6bBI/U+5giWQI7EgYC4U0aebAxXtotlKWKijZ1a0GviPO6ygdcSAdHUEFpAryF X-Exchange-Antispam-Report-Test: UriScan:(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)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY4PR12MB1736;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY4PR12MB1736; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR12MB1736;4:NrZcOoO/07l8vTR4gOnyY3dfnexiRn9FWGHqA6w4HC?= =?us-ascii?Q?mZBUPxMnk4JDAqD9D66Zjz/KtrXWhhsCDUxfRuwY94/phAXxbJPNV7R1kHYF?= =?us-ascii?Q?b5C0gLmAqIwUs3dh4f83G5UWsHneNnw+EeyY3GNzM+iTK3RrJoMEOCHSNkmX?= =?us-ascii?Q?LVFqFhRwE92CC9gUUrM4CyyaMFm+2CIjU9QKg3wbw65x2h9o15yM/QMp3ChF?= =?us-ascii?Q?1KWXURXu8WIKQslDqKnZwwXSk5i1AS7QkV6owCZ1SSKOzf4vMHqPFnigsGP2?= =?us-ascii?Q?67QFUKHg74bNkVcdMs2ZM7IFuYwybgQ0jcXLMXstpqCkitFtUaP/GeUNkWTH?= =?us-ascii?Q?ajZo0L79X20js615k2hc77+QS/X61oJHY98SX80MQKxZfi7rvGLilKdHKiwW?= =?us-ascii?Q?06Dw6HMMz3XmxhERoYwx7oFe084voJh6OlJugYeJ7G3LSG7ccZryPnlRYLQQ?= =?us-ascii?Q?iSvQfiLHBnluOgDX8JOpNGu0zRu1anE+g7YWpo8NGoOvGSRBbd+zMrnTQxig?= =?us-ascii?Q?sH8efSYRcD9MQVIEwOhvvvPx1ipBovzl0hwLe/HV/VRXEn3YfzX90oCvBKWS?= =?us-ascii?Q?LgTSzPSuM0jRwTPJdW+ZQan86e52pnksmcgWHhOK/EU6XX03Sqm30mvFSkvI?= =?us-ascii?Q?c0nB8+Tc8wRCn8a+XaXrf4pzC86+v4D7ivMRV1bvaebtVaxE1LZQO6uF4NJm?= =?us-ascii?Q?HhDWAFh/XPviMXwNrt0yCIoHzJSq5ZaGvaPLCwWg+w4y4dw4EvSqyT1MYQTW?= =?us-ascii?Q?0u6hDVRGbow9vZ5liN9lPLl+pBVfzg6QxYgpmj9CZYPPHZ+9Lu8FCpp1Z50M?= =?us-ascii?Q?DwmUQtQ31wWieRt2sVesLOLY0ajDuyGqJDb9OvbjTLuf/5Bc9VC3CjPZ20S7?= =?us-ascii?Q?O17lyuguMx4dgRWkqkyLuB1fXDDYOopzeRAHQJNm5uo/x91kZK/sQFRzxZ4h?= =?us-ascii?Q?G21gJpQDwJqLMPODQZoqb5/+vQSPftdH7mTGWwB+XQIwuvStGv+siAv7/wUk?= =?us-ascii?Q?5r/e8K5Df7JSMn+J99zi2elyiwAG/trc+uhtgc1QTx9bCp0pS2CNicAlqvgs?= =?us-ascii?Q?D0k/W0pJNqIxBUFdbYOPlHhfyr+7dExMkk+8jiltnwTs0946yOI+HAhH2lfT?= =?us-ascii?Q?x1X1+9SQDiP/BeXZnkQAWL/Md0vNVJWQOj5OdfkExz3g2becKJI8MbZqCCwW?= =?us-ascii?Q?p/VeM1B7YI3NDEJv3PDkgFC9Q/Hnb7CZwvmnRA+XVSEoNoDz0mQWmUWaW5vY?= =?us-ascii?Q?edDRVsALlEAlAB8HE=3D?= X-Forefront-PRVS: 03950F25EC X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(7370300001)(4630300001)(6009001)(39860400002)(39850400002)(39400400002)(39840400002)(39410400002)(39450400003)(199003)(189002)(86362001)(4326008)(48376002)(6486002)(42186005)(5003940100001)(47776003)(6916009)(105586002)(7736002)(33646002)(25786009)(101416001)(5660300001)(305945005)(2361001)(53416004)(106356001)(7350300001)(6666003)(2351001)(189998001)(66066001)(3846002)(6116002)(38730400002)(478600001)(8676002)(110136004)(53936002)(81156014)(81166006)(72206003)(68736007)(50466002)(2906002)(50986999)(36756003)(50226002)(97736004);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1736;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;CY4PR12MB1736;23:Ua74N62nuSR0ZIRm1xmMXwYvDFDxbCFdne8V1KRFg?= =?us-ascii?Q?bQF27CpwSVuxn7ptYd5lZFP4U75ZaNft6NSbL7EbMt8VBrVTcAPMkS5/dzGA?= =?us-ascii?Q?YvJWImqvSr4lavsoR5AtLNmDas5Jx0AEW2XAYYTFcs8w82p4R8K81i6rLwpR?= =?us-ascii?Q?DUUauPtDGQUW7dq0Wvmuc8mt3OHvwS7kjZARfYCI3p7+1I2qr897SvUfA5zm?= =?us-ascii?Q?KNJ3aC7TL75OXspdsGeOtBj+8jDXbUJT/Lk7Waaks7vwehgEfmcmP4B1m3Sb?= =?us-ascii?Q?rinyZ2WNngP6RF/bplcS0WOO4u275ayWEzYZI6aA5H57NRJrFf2H71jU/Qiw?= =?us-ascii?Q?/m1kk3F9+IfI6IvAdEewtQAzAqhIqv13WCvAmF6NBkT6/6xxV2WIREbLCyM2?= =?us-ascii?Q?ptBqONHG03g9+53l6+6Jjl+CARqV20iKOCOKkfjhGeSXfuiut9j6yKfYw69s?= =?us-ascii?Q?xGn78y7wwd19u5RDU7k39skd4irYFWtw+YAdZ7Y9VAZG+4PCbcjzKOnYWS/u?= =?us-ascii?Q?Ih4KUxpqUat8MgeSvuen/YW4KhSV60pgqos3fxWSkUT40Sj7Jtj6rJoF5F9G?= =?us-ascii?Q?HcLKd5oblG3V7b42ryoYYccVDN7/6i9zlHrL4bpNvyrVLFeLtySt6Jf8E53Z?= =?us-ascii?Q?k69Zh5zxH4zve8Ida9VIhqcFiBdiOwMUy9nLfsflgla8vEqUwwzMuLNvczhH?= =?us-ascii?Q?E7ExNXO0hyKZ2DaIugeqNr7aobBZpAgTf0vqkT4v2bYqU+9lLxxtn9oBgCFc?= =?us-ascii?Q?T7Pc+ze7Sp0PQgdrU8vbnjV6ky5msIp3LxrRs3FfiZE+mwbAufQgCEm7dWQw?= =?us-ascii?Q?cHALL3pHaB5oTkSZjZlWHpuCWIxHVYxkoipDrxiSzMfWM+KjhspbS4rpGTi5?= =?us-ascii?Q?1LVAsiZ3LT8jqUTHNbDVe4YWXLe7/VzBuGp//u59ilQ4yzCl5Lbpsu9snl8M?= =?us-ascii?Q?4KbEO2r1LYkYbLtJ8ANl6yR3BzjTLGZYQ6gTL8zYlbtUnTIAO7w1+wjKn9rq?= =?us-ascii?Q?TrmO/R8gNi9sP3CQBtD0JQI9Lt8LENoHFvDkVNyZ79OAgx+HWL2Z32FBC+G6?= =?us-ascii?Q?QK45alMyZepRJKkiC8tGSm8u2/HiwuUpxT1u2He9zXOhrSvUZ9NAbxz8o0Fw?= =?us-ascii?Q?GWToQB8hsSV4S9NLypPXKtQCaOOdvx0EXqWr/9JcqXx2b8o8H5kz1//17nbe?= =?us-ascii?Q?YOKpJP3WaMt3f8XkCLmSMRLTDuILMZmus/ybTa1jnt+vh9toQmgLvOcgswkh?= =?us-ascii?Q?mXtAjSnmmqZxXyAhjyRhx5DBhZRCHqXg6QhqkOy?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR12MB1736;6:cEPDyFDE1+mC6TTokjf1b6tvEi2I9Yt8B6AMoZlOk3?= =?us-ascii?Q?k225I+AIAc6uaAJY6N/5JCWQfxzoAbTZOGvG/VfncfMXZn8uhieM5gW/0UBH?= =?us-ascii?Q?75LIbTAlYGXf4VzPnyLjNnuENWijcxSg2OtMv12Dn/1gxIzQofktiGVyWhGn?= =?us-ascii?Q?ehmLCSnAOdIawuZoEmj5QHUMEkpbYEHUNMfPJUEQOkPk8/lRCR7MFcEOlfJx?= =?us-ascii?Q?R9R+qMiaFE+lxnoU2kKfZh/NNvB+09D83xc6idYOYY3Mc2+0zg+PxUPIaPls?= =?us-ascii?Q?efK6Z+oDEZ05IyR56lB4/jYvey/WWoeyacitkpn8pqq4jiN2EU9ks3HRFcuA?= =?us-ascii?Q?L6TdMiqx9uF3Kz63OdPax9aeJUfMf+mHKxYqTz7NwitfWXLAr+Fr74yv0xwb?= =?us-ascii?Q?Zk49fF+Ydv0+99PE5JCwxaX9QoqDzvWNAjRKC8v+13vMcBHv7RgwEYqfwLnf?= =?us-ascii?Q?uElKNARkhRCg+oaKY5m5UyfcuyhQKaeDY/IgGWXiAXFzbgmp7WDogdlQ6stm?= =?us-ascii?Q?P7CScZDu99CyhNknJt3aC61tbDZ6PUQ6rU1JBGAsaPSnvNPLBesXIhZ5/RlE?= =?us-ascii?Q?sSpn6Wgy++8Yblbkx2KLURFkyhQX2VJt6/Xoi2qtiocw0GYb7PijpBv/2wE1?= =?us-ascii?Q?BPvsYFOHSpWtawyLK34Flrxh4Ggw7tEmkjYWlTRhDwurAjB/pek7kWpQ9e+v?= =?us-ascii?Q?Rrxj40YosCEnGJRS2jeCvwIpBJ0orH/WmaVjoMPmhrgZnSp366JcgVXxsOel?= =?us-ascii?Q?e9VfhuD5bXE1N4ojDKMZwF9EWxTwqQME7xFu3q27eha31ZpgXsvqfengKFA5?= =?us-ascii?Q?mHYBJzjDe8k3eUbBy0wkPSTDeH6huIeFOmrPEN22r7Jowb+j8XYZ+aLyZU8H?= =?us-ascii?Q?iEBOdPIkvlZGBKABZjXefvPIg9petSck0hUpHQoUw4ma4IQyOpPrf2OpJvcY?= =?us-ascii?Q?dq4IF/ORNqgvXbxO0HRX0Wcel81pfqyJxncx/XXtOcOm5xdHr7hwhq8AZJZt?= =?us-ascii?Q?4RRo0ETMV5NfLyCgV0hO/F?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1736;5:v9vIxz+kox8EzBUL4zfoxdbOiIq4HAolrumIKb7wSl0LRDpgJnPv056ts6QmeYqWpkXAg2yXzKLtB0WL3f66UxqGrvqAMCQFExM2c08bIHEIQLtOq9NAkhyMbmsbdlR3wGvjI0sy5PZqaVzGlqz8YYFTPWvjkMesJzk2qwlT6iB9EH+hW22+UI7mdLzEcNq+nIU9+DZ3Ujg7qZLANv1CT9DqdVO/vOrO1cM91nO+NyHETlAdk1x5rR5xzL4TV2UGSUVrMRY4+vwPG5wozIeBvkUAcoz8/WB2PU1nuHsHg+DK4Frc2RfLDx9la6eKAOpAMI7iGQjQdFidrZcbWq/eh5keK7n9iAwtnMC+aKXaw1RUOcaGTnDNTVCWaDzUxhgXbcH0d8lvhQPqYedJ1T+sTsNJxn7MaXPWVi7pMx4imZ0JsYG4iFUP/IAxq9EsUzzk26JSAN1dO5pJGREhHahiPutcr9bXDzyidFrGoIRVxkR0Ehdo4pAAamZ/q8t7NRca;24:N+3jqbU0nrbNHHM/9XINF4Dvw5CO4ZFmTfQD9NCdxeslDl0U7q800pW4ZHzw5XDWsihwINzHo9cfbUMxDX+Gv3WlFldE7+0TAXNXHp1DC0Y= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1736;7:VUa8s+7Lt0Sf5TtzXSoOJETicNpSRK3JfYz6uUWypWBu2o/mFV7xHv9GvEJZnro4NA63pI7zbpBQSco+8FCF2h22iSO/LMScMsrSm3jOH9RnHa1HfzUNhSNrAac4sU+R1hFfmvyOe9As5HX/AMqAnmhv5pumBOY8KPVrUe31Yds2+xqcflqUpWU7Eg4LPH2TMtvbd98O7kKxT8480kemakasSXf4ZGhu7Sk5gYAB2Bsqsk1U4rgVFWyw8VQPD2/gimtZkXa7hCbp/mdNxBfV0q1tqeTDHhv3aMZdnZ7+80DNWmPXVXJeA+snstvLRaDvvBZFGQkpCSiVk3TnYpV0pLyt36S5JLolSzcC3LJVtFtmfX6wSBh8q8CobhtbVuRugNYltLZv999PZxicbkG/AmCXyldqw/BY4gHccSzjZH6aXwgJl6g5JL2lBr9/agmTFM4P52xvYzjNZLn4blKLITosPmvnRhSlefDFYqJtoIVIF4GeCT94GxB8H1J27kTk23rdy7ZYVXcH/5l/VCjGeKNy/RyqZBxnmqaSqFAZyYHURXkOOQuUSnanvplz2vEad0+c/N2/Jcw/5RfurSrC0I1/pDuS+2mSGKYZiZDytf6s8WI9TeXm7h2OsTnR8meqrcIVdRFN1y6ilL78UTZqp4TswuhFDuTSMdmcAi73s9tlssQ4C3yvEg+RKwNvCF59LBA/kFVBPpgHguROoV3QV2hutHhrGoJfYoGzNqJSdJDOkhkS8RCDWfCBs2PHMCKYL+HBwVt9HbA02dMq7vA35qdDTNw72Ww/C/xywPyyI8s= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1736;20:K6fYOeQ4hChqy7AxP5clMkOdJPe64OtG3LyccNpgsY2/7JPOmo65K4LHmc0YqLjOvRUw5aCN8gU36TtzGBc4CA3I+IQ2ZbdpDlcdKyNt+H75nUaJHET3lorOoUcyDTxvmcBCrnu2avdNA97qsNPjTHMgTT+IUs3CPFhZtLCi07Izo6j92IXu/jpzGbgqB+u5l38aX4Da7bjNtOzYmtMRx+jxP6CAej3G5rCegstekGkFZtqrTGIoHXF5DTGPuW9P X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Aug 2017 15:21:16.9185 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1736 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3822 Lines: 108 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 hierachy 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: When running 'taskset -c 0-7 ', a properly balanced system should schedule 8 threads on 8 cpus (e.g. T0 of C0-C7). However, current scheduler would schedule some threads on the same cpu, while others are idle. Introducing NUMA identity node sched domain, which is based on how SRAT/SLIT table define a NUMA node. This results in the following hierachy of sched domains on the same system described above. domain0 SMT (span a core) domain1 MC (span a last-level-cache) domain2 NUMA_IDEN (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. Signed-off-by: Suravee Suthikulpanit --- kernel/sched/topology.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index 79895ae..c57df98 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,24 @@ void sched_init_numa(void) tl[i] = sched_domain_topology[i]; /* + * Ignore the NUMA identity level if it has the same cpumask + * as previous level. This is the case for: + * - System with last-level-cache (MC) sched domain span a NUMA node. + * - System with 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(NUMA_IDEN) + }; + + /* * .. 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