From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753326AbbKGLAF (ORCPT ); Sat, 7 Nov 2015 06:00:05 -0500 Received: from mail-am1on0087.outbound.protection.outlook.com ([157.56.112.87]:39296 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752372AbbKGLAC (ORCPT ); Sat, 7 Nov 2015 06:00:02 -0500 Authentication-Results: spf=fail (sender IP is 212.179.42.66) smtp.mailfrom=ezchip.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=ezchip.com; From: Noam Camus To: CC: , , , , Noam Camus Subject: [PATCH v2 15/19] ARC: [plat-eznps] Use dedicated identity auxiliary register. Date: Sat, 7 Nov 2015 12:52:33 +0200 Message-ID: <1446893557-29748-16-git-send-email-noamc@ezchip.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1446297327-16298-1-git-send-email-noamc@ezchip.com> References: <1446297327-16298-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-21926.006 X-TM-AS-Result: No--4.341100-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;AM1FFO11OLC010;1:D6UXCi0iAJT1QBz77B8/Oefq00qXxIffAGUYWY3qMAWW9wDB6l57i77DlaefJTbSricgbl5rLoZPzT8vD4GiPdzJaVAG0GVzil29RPKmSAMR6bQm6b9zWk4r9ZASVgpYXw1e7zYgdNxlmQedIRjq1N5SF8fwN0CDDUsmvLEhbpwDWOmjnPe3scyTXzoAEJxT8neJhXgQ/8LklLuLsdFLvQ4bJwHBga8oSWTxYiwM/L8tuUbxEAvYe8PO4plQyXkKKj6OGL31Bf9oz1oM+a0OzqqJZKdvATRd3yYkIveTGTwC76hmr55GlwclJxc/dyAuY7BUq2ByVs7pU/LbgwFOhusRIAYh6xuUDxVRMfHLHlMxRyyFq7IVeOj7UD5JbHLNZZNiIpFDcMlBOngpGQLtiA== 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)(33646002)(76176999)(50986999)(86362001)(36756003)(5001970100001)(107886002)(110136002)(229853001)(106466001)(105606002)(19580395003)(2351001)(189998001)(19580405001)(48376002)(5003940100001)(4001430100002)(92566002)(77096005)(5008740100001)(11100500001)(49486002)(85426001)(87936001)(50226001)(2950100001)(104016004)(50466002)(47776003)(6806005)(5007970100001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM3PR02MB180;H:ezex10.ezchip.com;FPR:;SPF:Fail;PTR:ezmail.ezchip.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB180;2:HYoLaqkoQrNVPsJ2lRyMk8G5VgtTbf5QuiFPNeNLiE+nTkmPWl5+TqChhDbn1zBKlrmknEXmZzvKY+imvs2YgzgW5+eL42t2hQJJq8OcClx/EheuXSAllNT2ykUhhNNC0ktxFiS/B1a1vo2VSDBwLapDawqbJFge6/UT+50GENI=;3:F8DSfwLuuJLenIZkC5eC0NU+0coj8GHRqySiI5+Pq8DxVijDWtJzFz1CK3BktOsYGYqNLkKUdG0K5nGVjXmyb+1Q61BCIrkNmDSXWl56TRMxP+rzfmuf0DthkoDnV/PLYug7vAB7M2iAnPspwgTD2DVcN3o/PmY2mookxLj+W3mPtZxdPXpu+YmM1JGJVg1iWU46nkYdgl4JGrhK1gnLXEJTeUrDxuTO8EnMRaFgCgk=;25:H4l71eNIwbg56MxLxs2rgatGz1PvDGadjjvTinZnOUba0Zyu+4GB3cVkbpy9YCp2bniyJ+/OFe5Yw0osMZlLn7dSkTUyNmm6jhW/hQsoh7s4Q1OP6JBqqN/TjGczEFyVpQK8ZwyFew+Dxmjd0lkjz4vTRKWU9IcSxovcJfaSIGlH/o4dr1Uv7nbbO0HZeUmkRgv//O4rAn44XcJEgMJu8BUOy/yO+e1ZEN2VFnWN+BwNFWQtbG0GAhk7nituoLpzGDZqmI+BoL/NzeTXNp5cDg==;20:gT6vMv2Zg/ggAFbDiAU/wEc3AExo+HOpMeimyuWiHxnv3Woy3BFJbw/Lz9T6VpyMLi1YvWVMBotmkjOKrS6B+L0bwSl15lOl51cNVVJNPIQ3zNdfaFSG0udLAvU8qUMFU6eN3xZ+Mgup6c+zCn18tTHQwFxc5Fxs8+k3DmMD9AQ= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM3PR02MB180; 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:AM3PR02MB180;BCL:0;PCL:0;RULEID:;SRVR:AM3PR02MB180; X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB180;4:/GnBXKroOIiiXhSp7/ztstO548FWHzSY3Lfqy7fyPlLO5cOknUWOQxgd4GyYtPp1sD2iwMhMrC1KVb30KLI7DBWk9nT/eCWEfEz2gd4pidWh8TJYUauKBM2HX0NaGO7rGwnnSJLckU2b+AeSsDFrOZguLRO5Jwvia6o6oTx4TeESJkeF6xzmhoJ6DrL4kn59fsU2c0wTGwJ3S+qta2//EddqV+mLvC7+VtxBbX9saqbgoc4I1UVYQwqxUN2NLykqXBs3R5YQ2Gi2v9OdLqoEyFpolVVYNivW0KNp7ZgBPl4RUi1CAQiTIUDk26Sa0lDLcVz3rqWNpoe/uKU/g5ehx5O+jgdHCfjYP4N6VObWG7n1HHPCthsAeILTMJBUG6Yu X-Forefront-PRVS: 0753EA505A X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM3PR02MB180;23:WfUAgdop2qrs/tCLJMwDiMQC9XsqSLF3IIgy+1QBPE?= =?us-ascii?Q?2+jUPoj3InP4cTgobUw5WMK+mJczPH0SvTCUohkciZ4TFfiyLUllsMJCqi9i?= =?us-ascii?Q?5sbXZK0b2dPKW5qy9DyhVRWFts53wQcZSTjBqA806SVJq1w7erCZzv0mlowS?= =?us-ascii?Q?9L9NledU0bleJrZY/tygXgpONhwUAyTGvz0qhaPWcmnks8lvG1/xHKu6AGT6?= =?us-ascii?Q?Y0evWa8YQa9TZaSsFy3nPkBRwcA1THytD0fLqWlq1jUjfxbkNZ8In9EQWmbH?= =?us-ascii?Q?Et2YrYB13hDInZHU58jyuk7RvTfKoGfNaMPNiZ9/loSXmpjDviZL4uRdxVuM?= =?us-ascii?Q?/QILm49KZCZIKf4XrUyFzxGdtbEwVoDv/7KKtkJgcVvnIjJ1yW9QPsZuzBIa?= =?us-ascii?Q?fSu0q4ZiOzdNshEauZRwLXL9a148sXdKDYY4iJHyoAePYuDDXDi4St5g7Zml?= =?us-ascii?Q?XKjm2Jy9Ld177SVMTGkOxcgw/nWp/gdGNaQh52tB7oXEq0hldAH9Kaq1MMGH?= =?us-ascii?Q?uI42iSDmmmgyTZ8jfhqIM5DRTq2J9PT1ZoEEjryBcCRupK2y3bLDGWWdq7+a?= =?us-ascii?Q?XDP+eNbT7sWEMxAKf79u1E0OJslMvPS6cOGjL5uRGYbUt60sy9oxdWzGsDCV?= =?us-ascii?Q?Wn8AJhdofR9hX7zSiAWAt/qxMfEutQWrs2oV7SWkDAlAIO8ZtxZb7y8W+KEq?= =?us-ascii?Q?lC9HT7FbYxDaNqZH4lW0IiUCP2gB58tfLtSAzrgYEntLkQmSU8ydjf+HqcQj?= =?us-ascii?Q?ulQs8QY+YAGMHNWuIn3IBUpBBQefkDmbFcLUOWc+W5zadUPam9hnE0zhh5o5?= =?us-ascii?Q?n5hEavPRYCLxeDiolL/o7BsXt2OvoXcJCbl0yBQh/AvWvKotMoCLfDklzsHU?= =?us-ascii?Q?D/9KfPXT792J68SDg2m9hzE56Jl10K5SZkz63mN77PCckjeO8KYLp9s3HlQE?= =?us-ascii?Q?9UztyQpr3LIrFJuRxBOWYacHJizAUOZCgnJNDaZlcg6jOCKw8AGy7byhX37N?= =?us-ascii?Q?ZWCYNRILjBg3b0ERhKGdED66+/L4x7ju5V4njD4gM9YMFxhCalEOj5W7KbcX?= =?us-ascii?Q?RhTheIrUGSf7SW5RuztkD1Nlem?= X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB180;5:H41Bif3Hy39QAj8BcjIBdvtvn2v8dInL8DVqUBWOdk1Bb6GwPJr80VJ9q9oziB+NEJPgU/+wsQwcN/w3lf0seKgFpPw1Tqte7u703VQNlAYetWN0bq4JMZy4r5qEZWf5rUrUUNWOLHjFiKxjqkEqbw==;24:zjcRwC5AvDvyp9mum+bg9Mtx6OqEaYQ31/HCetN0F6/TIHg0Tvl4xXZKkU1T5z8Pny6Lqg1/fevE3qUVrTW4qU1j1JdwtpHkWGibCMxLl2w=;20:uAJAKQZ8fcMDE6J2twkacpK9Uktt/N3qn6KEqqW3WBsaTlQ8GwcVgr4ykqdA9Hs8OHA2aOS/yMk5YQAD0NlbwA== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2015 10:59:59.0667 (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: AM3PR02MB180 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Noam Camus With generic "identity" num of CPUs is limited to 256 (8 bit). We use our alternative AUX register GLOBAL_ID (12 bit). Now we can support up to 4096 CPUs. Signed-off-by: Noam Camus --- arch/arc/include/asm/entry-compact.h | 8 ++++++++ arch/arc/kernel/ctx_sw.c | 13 +++++++++++++ 2 files changed, 21 insertions(+), 0 deletions(-) diff --git a/arch/arc/include/asm/entry-compact.h b/arch/arc/include/asm/entry-compact.h index 1aff3be..bf9a6a1 100644 --- a/arch/arc/include/asm/entry-compact.h +++ b/arch/arc/include/asm/entry-compact.h @@ -35,6 +35,7 @@ #include #include #include /* For THREAD_SIZE */ +#include /*-------------------------------------------------------------- * Switch to Kernel Mode stack if SP points to User Mode stack @@ -298,9 +299,16 @@ /* Get CPU-ID of this core */ .macro GET_CPU_ID reg +#ifdef CONFIG_ARC_PLAT_EZNPS + lr \reg, [CTOP_AUX_LOGIC_GLOBAL_ID] +#ifndef CONFIG_EZNPS_MTM_EXT + lsr \reg, \reg, 4 +#endif +#else lr \reg, [identity] lsr \reg, \reg, 8 bmsk \reg, \reg, 7 +#endif .endm #endif /* __ASM_ARC_ENTRY_COMPACT_H */ diff --git a/arch/arc/kernel/ctx_sw.c b/arch/arc/kernel/ctx_sw.c index c14a5be..92e2e82 100644 --- a/arch/arc/kernel/ctx_sw.c +++ b/arch/arc/kernel/ctx_sw.c @@ -16,6 +16,9 @@ #include #include +#ifdef CONFIG_ARC_PLAT_EZNPS +#include +#endif #define KSP_WORD_OFF ((TASK_THREAD + THREAD_KSP) / 4) @@ -69,9 +72,16 @@ __switch_to(struct task_struct *prev_task, struct task_struct *next_task) #ifndef CONFIG_SMP "st %2, [@_current_task] \n\t" #else +#ifdef CONFIG_ARC_PLAT_EZNPS + "lr r24, [%4] \n\t" +#ifndef CONFIG_EZNPS_MTM_EXT + "lsr r24, r24, 4 \n\t" +#endif +#else "lr r24, [identity] \n\t" "lsr r24, r24, 8 \n\t" "bmsk r24, r24, 7 \n\t" +#endif "add2 r24, @_current_task, r24 \n\t" "st %2, [r24] \n\t" #endif @@ -109,6 +119,9 @@ __switch_to(struct task_struct *prev_task, struct task_struct *next_task) : "=r"(tmp) : "n"(KSP_WORD_OFF), "r"(next), "r"(prev) +#ifdef CONFIG_ARC_PLAT_EZNPS + , "i"(CTOP_AUX_LOGIC_GLOBAL_ID) +#endif : "blink" ); -- 1.7.1