From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934026AbbLPBQX (ORCPT ); Tue, 15 Dec 2015 20:16:23 -0500 Received: from mail-db3on0066.outbound.protection.outlook.com ([157.55.234.66]:13408 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932992AbbLPBQU (ORCPT ); Tue, 15 Dec 2015 20:16:20 -0500 Authentication-Results: spf=fail (sender IP is 212.179.42.66) smtp.mailfrom=ezchip.com; linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=ezchip.com; From: Noam Camus To: CC: , , , Tal Zilcer , Noam Camus , Peter Zijlstra Subject: [PATCH v4 17/19] ARC: [plat-eznps] Use dedicated cpu_relax() Date: Wed, 16 Dec 2015 03:10:36 +0200 Message-ID: <1450228238-4499-18-git-send-email-noamc@ezchip.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1450228238-4499-1-git-send-email-noamc@ezchip.com> References: <1450228238-4499-1-git-send-email-noamc@ezchip.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-11.0.0.1191-8.000.1202-22004.003 X-TM-AS-Result: No-0.947000-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD039;1:SmA0Ip2ijU89brVkkJgD+ys4bW3NnypCZvQNHA0MPz7AsRUMost0tBZ0UVbIabWlN67Bxx5jrNY6HcGeK+G485JckPg0lFDA4KLnUnOqCObTi2L5SgDu3T8qgalEU9DFAoBTIHqI8DZyEZZCdBqaogNNcLxnpQKoHOpytW/rNyAaagAESuOqrX9T++xIhpGLzoJ6B7/IMHAvEgwG4X4+ZDB9AeT0TJCmDXoo/8NEjOe3OxOadSvk8GVHasUskjW9M4cqE8IiSmwTNSfQ/JP9xDrJ0AMJbFR3wZeie87LEFxo+CmL3cB1g6m02fc+E7K5MBwDNqw3LszbBVOlqwhNyxwDgZSpztr7qfQfWvDYISopi5MhmhtditCrX0hP43srVfQlbcgqF9JSU8qH4W5Bbg== X-Forefront-Antispam-Report: CIP:212.179.42.66;CTRY:IL;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(105606002)(33646002)(85426001)(50986999)(5008740100001)(50466002)(1220700001)(2950100001)(36756003)(11100500001)(92566002)(77096005)(1096002)(50226001)(6806005)(586003)(48376002)(104016004)(2351001)(110136002)(5003940100001)(19580405001)(106466001)(76176999)(19580395003)(86362001)(189998001)(87936001)(47776003)(5001970100001)(229853001)(49486002);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR02MB1085;H:ezex10.ezchip.com;FPR:;SPF:Fail;PTR:ezmail.ezchip.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB1085;2:Tr7R9e0Xp9QxtrAvINGn6l3wG7WYXdSQhXvUZ3BW3woikzmEubn5flZpjy84z3lNP2unP4dEaUM5ClZrNWdTVwh2XPIlpMyoIv34t8bsCMjWzLcz6krQCJEQmifKCeP2inFAjK7IiJE/ZqxbQLf9mQ==;3:3fWIprrCvEVjZe8fPZ8whYDz3u3keXPjJq/KZOpQM7dCwcg7ZPNmI898ridQl6sRREBz5cLWh5zCaRMGWmOmUpOQ4NIVgEAed1GfDlxR5rgxTudKQyCtCY/kZ5pCt+vpXbF5V+aOo7a9BLq6QHM5+gA6OPsxAEqiL4ZZPl9AfQCZCFuvEKHCK3ed3QD4VUjIlAkVhuhEBEkiv7ACR3WB4AWtkKYNwTuiu29uny8HzF0=;25:arSimeiaW/WoitX0pmHGZVUd1CvO4rs1hFu7ygWO2WOfBBglF/3Mw/vdqcgYTVTw8pUAvBpecHdmaPGw9fE877cXkq8icOVe0Ktt+1cgpFZtR6ADPEBIUvDd12eMvoEP3ayCsnQje2mjF1ch4v97CsuFHRZdXbyf0INstnMnzwOdwt6rEaoW327+/8S2OZwwzikHYKNKgEi+jptcif0suYPbOJF31KgiQNp5eRlZY6sWsXfgK9HnckZ42oBbj5Yx;20:vBzYsi0/CRQFiFJRtyFiO9xestUxkhx9NNSeNAlmaRKRIFpEfZ3m3RNRdVkZl6LFMauPTlZm0CCEkSgfCrbErpY8opRu2RDsA0ayseJke9SLlD1paI2XCrqe2CFyo4X/yXJz5qaZAOeQyk+fOy6T1tUN9KgeimTkMfInAWm8L8U= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR02MB1085; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(121898900299872); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(10201501046)(3002001);SRVR:VI1PR02MB1085;BCL:0;PCL:0;RULEID:;SRVR:VI1PR02MB1085; X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB1085;4:RSGgPU860HGEGvrAnFUn3SshBe23+KVtzfygjXVbBNHE0LPPvjD60iXUThrGYuxzs+ZB75DIqygxOSUs40cT7sZ0lukxbu8UeGG3cEB/J7gVI3DW3hedhJDSHHcDQi910nK8jvfZ5AKwZNHznodc5WfKVNZpjKZgV5VBJcOvGKyvEVVnjPSMWGbyUt8iQy1Dgmpi+7dMxDHzz7BQzPHwxSeiilXzKcJxbz5gCBSo05yG4QLRFt7Yjsg6GV4AoeJX8zeUgmmlI+z1ceV4fYZ8XHvydfzzLYMKphdxQtJmSjdTlkf+j5+5l7WMLNHbtg3VE2tuukIhgOxOnduO5abMHocxd3HfsnZI3SC/dCzyNb6192ilyIgoI2t9z6aDOEThvjhR5/LwENRaZ+8Stp8Z9kbrEHneQw4uJ9DdUeH8AJg= X-Forefront-PRVS: 0792DBEAD0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR02MB1085;23:NneriSlmxCcM5Ya+KNgpoW6iW5OGpzK4T1WxxPLnr?= =?us-ascii?Q?JSjeUNhAt+dI06lsIyzcBnmSLNwxMbIFW2MtstVGeV0knoOxgOq9FnYywn5D?= =?us-ascii?Q?Hp9zupo43R9JX8Xt5sq+EmrE7PJ3wu12DQMuoE4kdiVk0XKHME70IWQsPd4+?= =?us-ascii?Q?K5dgjTJ/kgeUvJdWO6p3k/BgHoT+hZWGJR2uq2LpC1POF39ajhF564g6K824?= =?us-ascii?Q?IQllbVSEJuIqudJYY0Jb4KOsYY1oOmwRXzA/2JHofooM5S/z5AjqBhyhq3xx?= =?us-ascii?Q?0TK1GWs7a2+2nwhrjGSVEcsQ/IDKWlKduIuT5rmcUsJtZkP4i37xKG6+TOUz?= =?us-ascii?Q?i3GvGP2+dnP2kEXNze8MZDEEycYuJFgMPhbspVme4XXHz0t4u55e3HBibgRK?= =?us-ascii?Q?1BVGdp93aICHkxpkAIm4Js3fJJJdCPKYhNx6hMUKsSOCNfY8QKLz/iF1izxZ?= =?us-ascii?Q?dNCPc+VU81nGOSqzYXtLzCWumCLnP5e7shhFDO8LB+TiQcr4r6lLfzLX7LAA?= =?us-ascii?Q?ECI97B6cQnezGvkALJQvjI/zTB9lZjGtA6wfAM+q4tLD5Goh8YfVIQFhgQsr?= =?us-ascii?Q?cRhFANVHpAFv5MX8VzJQs5r3NiCdz9wHs/1CPaPKVzTLE4qYZxhOnJbzp8S0?= =?us-ascii?Q?7J70t8ciJQB2/GEZfSMTfqnpYIY0jv/4pm0wZgnOxAOXrETQi7dsJXrRIxKN?= =?us-ascii?Q?OCFiJs74Xz7M2GbEmfJDsLj1DBFffVqhxpGt78Q6EEXolp9bzaC+yl5Tra2w?= =?us-ascii?Q?TY6WyWmA58sPRgzXriBZst1dzrgSeYvOnSd2XLBAZZ2U1wsFeOlIjfjZ6cS5?= =?us-ascii?Q?8sSw2YfrGrCUaE6FBcajOZrG403K4jct3jXH4w25UFXBKlS2CfSb+EDpbP+G?= =?us-ascii?Q?ks2Kth99VYo6UrGYp5mhbG7uDe+NqlswG1NUA4ZUL5xTu4P/l2VBEfavL8Qa?= =?us-ascii?Q?MKTFL/TjsMAdU9pRSEaJ2K/MTzGCtOUjmZVJGusdE9m/DSUZcuqVvQ6CD+I+?= =?us-ascii?Q?Jl9tLQkBGu2Y7SKFoSXDZy9qrPFpoJKGApMn6FyDn+FAw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB1085;5:SLx4VUfLa34DLupyyqBkKpKBEwFJjJq1cChtr34/fy2bqlC6LaUVZA/q5nCptTGNKh496FkS3MqEd5OS/GxpIU/s4AoVt6mQOofO2mpzGqgXrXlllc8y84qBvNhT87MmrkYzW0NfYeZ/klbBcRzlbA==;24:A3alaubZolLP4P2cvxIKAZGFnRfmTSOfOhRM7RnUOd0QMQHd2+Ox6TRq35SNYkq+ylH1bi98zQ6jVpM1yqDYwWzAf2/B8vvAhG3waHSU65U= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2015 01:16:16.2404 (UTC) X-MS-Exchange-CrossTenant-Id: 0fc16e0a-3cd3-4092-8b2f-0a42cff122c3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0fc16e0a-3cd3-4092-8b2f-0a42cff122c3;Ip=[212.179.42.66];Helo=[ezex10.ezchip.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR02MB1085 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Tal Zilcer Since the CTOP is SMT hardware multi-threaded, we need to hint the HW that now will be a very good time to do a hardware thread context switching. This is done by issuing the schd.rw instruction (binary coded here so as to not require specific revision of GCC to build the kernel). sched.rw means that Thread becomes eligible for execution by the threads scheduler after all pending read/write transactions were completed. Implementing cpu_relax_lowlatency() with barrier() Since with current semantics of cpu_relax() it may take a while till yielded CPU will get back. Signed-off-by: Noam Camus Cc: Peter Zijlstra Acked-by: Vineet Gupta --- arch/arc/include/asm/processor.h | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/arch/arc/include/asm/processor.h b/arch/arc/include/asm/processor.h index 41142ab..974b878 100644 --- a/arch/arc/include/asm/processor.h +++ b/arch/arc/include/asm/processor.h @@ -57,9 +57,18 @@ struct task_struct; * A lot of busy-wait loops in SMP are based off of non-volatile data otherwise * get optimised away by gcc */ +#ifndef CONFIG_EZNPS_MTM_EXT #define cpu_relax() __asm__ __volatile__ ("" : : : "memory") +#else +#define cpu_relax() \ + __asm__ __volatile__ (".word %0" : : "i"(CTOP_INST_SCHD_RW) : "memory") +#endif +#ifndef CONFIG_EZNPS_MTM_EXT #define cpu_relax_lowlatency() cpu_relax() +#else +#define cpu_relax_lowlatency() barrier() +#endif #define copy_segments(tsk, mm) do { } while (0) #define release_segments(mm) do { } while (0) -- 1.7.1