From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754177AbbJaNVK (ORCPT ); Sat, 31 Oct 2015 09:21:10 -0400 Received: from mail-am1on0070.outbound.protection.outlook.com ([157.56.112.70]:49690 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752914AbbJaNVH (ORCPT ); Sat, 31 Oct 2015 09:21:07 -0400 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 v1 12/20] ARC: [plat-eznps] Use dedicated user stack top Date: Sat, 31 Oct 2015 15:15:19 +0200 Message-ID: <1446297327-16298-13-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-21912.007 X-TM-AS-Result: No--10.715100-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;DB3FFO11OLC002;1:0mw5Ukp+W2PR6nGeiWiafExwjpCNTJ3KfwaVnAK7S+u3MT1LTLwkeGc7ybzNFEY1o9VOjAyeeJ79Re7xqrdj/42yAb9EGB93PVPzVbPEMxLj3HEjb5TDZfEr4X70jCabAevlph08RbR3ihq/L1aY/AACXugMrQ3GNLS4S0VEP24Ng9IR5LkPzLZ9WrdYRDBt1WsVjFHzrdBZP0kGYEedE98U/PBLcnWslYA0Y2mTtwob62CYYF67nxM4eXt/a6loUTnENVfdcwGUK6nvCHCmuAkOMhMFLdfCVj0QGWbFoZlMqmMTWu7xidBppJna9I/Kt4RL957RiduZzFLgaZ6lSpGZ6Jst8PYh5bqeTfe7i6C6wDn6wjL8LjlV2iM2dTEmVHThhqhJhHpVOAfvOMPWLg== X-Forefront-Antispam-Report: CIP:212.179.42.66;CTRY:IL;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(105606002)(107886002)(50226001)(229853001)(189998001)(2351001)(110136002)(106466001)(77096005)(2950100001)(87936001)(86362001)(6806005)(5008740100001)(92566002)(85426001)(36756003)(5001970100001)(49486002)(104016004)(5003940100001)(4001430100002)(5007970100001)(11100500001)(50466002)(19580395003)(19580405001)(33646002)(48376002)(76176999)(50986999)(47776003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM3PR02MB180;H:ezex10.ezchip.com;FPR:;SPF:Fail;PTR:ezmail.ezchip.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB180;2:xGiNOJBA7HkyEukPXfaRIOk09O5bhRFtyv5bipgPU1OMU3BUFXkCXbh4bgclsHdvjch8Al+b18k6nYFVFhnl1UoDi0ZZ59iTPqhYkCi0aO1xCXJD3e/27ZiRKnYAhZ8lzLW8ZPJri/3+F464QUyONusUvYsAs3gbGHJm8BjmXFo=;3:qeIpMyLETY6R9peCogL2fG/Nn0w2Bia51j0yQ0HgyK3BQKn5I9KfRQUw2/qe6AcSAf9saZ4c5nUjG6goSll9E4STAzAAxx9hufZWFi+RmyEih/y4tB4WKuo576hP+AYnvwo+kAjWEj9mGdP48QPqJexVOYLcD1E1ApGCPAcAbFiC0RXe4XEJgd45akNi8gljv5iXT9JkkbSrwXmgJDzuEPXfsTZg3XJZEYQorsDj0j8=;25:csWQlKkkQpmPC+XpjlMJAA/9857qDxlFd48iNDRCTWIZ4uNf/d6T3AzmwHx+DNi9vZnk+djV7dMmVdn92lmEyZrMvU8cZc4jBDD4Y8sVNZROFQ5i9A7kQ1LCKuzWawaASh4mkOCxkIExIMcSCGlckD7ZZphII2tKqUXvK5C6CTkiH/c/qYx4glLJE2oW8kYL6Smk+Q0CQJ3xl5Czq4onzzuVd1XmjDkap8PuB1WmdycXcpm9eO2h48SEoWbV8B5jB3gBKlVBrTDgbZCKwZyyyQ==;20:q3oCg52J0OTE0x0ehqnjfeoulOfoepS9uRCOBNW3+IpansHeLfDFd2P1rAgc+vJYlnDI55EqM7j4Wr9dPEKPH3DCx/IP3LB5g6r7GvZ9a6DtzT2yFVHsHxwKiLG3dwdEREsFs15eZdmCWndSbz/2Ds+cpXZBZud9EcESfnNSjAk= 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)(520078)(5005006)(8121501046)(10201501046)(3002001);SRVR:AM3PR02MB180;BCL:0;PCL:0;RULEID:;SRVR:AM3PR02MB180; X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB180;4:posnIIsCjHbmuyVA8aDNGbOZGCVLyt/PnscqWpH6nJUSTK9VQz6mMeHoZLrEptrNHwWvXVFoNWQO87pk9GXVSk5CK7BV2L8ia9TOfh6bxT+WQTomBdbyw8Qglh5v6rcACsqYQ4IDDi9mtZA8QGIMq0VtstBfjsZ8NTvgb4TxSaeOwYh+Ewd52BYPmGadoNGRj4HjP6qvQH+eT1zapMQLxGyv4gdN1S/Mq/tLRRHqUYRNBhpNG7kh0lZC9oISAPkzvXV1uAbDd6kUBtgZwNaAw8P212blILJNaRAluUIx6WkbE8VyNKBP1TP83VvOJuA+0BXrLJFPg3nwDMrcwfng6vOFdtabW3L/ZLCCgeCo8joulRGus0AUBtGwmiSbFnP6 X-Forefront-PRVS: 07467C4D33 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM3PR02MB180;23:lnq8BjbuCQrG2R9KqFxLAyX/SuTJWtCtVwTzRS2A/P?= =?us-ascii?Q?w858z5h/fIqNoaar4hUalI4Szlw3DDE4N/2E9u/wCAiZ1dtEnNXRkjXbGbpo?= =?us-ascii?Q?qo4DiLSo4GINHYQbEYWKW3LCB4wjvimBrKWtDuUtLbSnpL6Ix/vff1o2u1F5?= =?us-ascii?Q?6UUo7YdKKPq6f6DGtqkYlcW4qNJ+BIezCnaYV5zqkY/2q6HmlLTgZ3u5Gg0/?= =?us-ascii?Q?NUo/AkF0kXNqCqk/PWIOnxB4Y0x+jjE5vQG+OU/5CEjaU0XwkaQqPiKbyooH?= =?us-ascii?Q?UVzADeqCWJLXOz8h4x6UDWvbPuC0gk3ItIIU9X8pFBpTKigxISQhuEfzEufJ?= =?us-ascii?Q?EO802N+NFWOA2Gp/j/KnDsGQUMYTTtJ5zxhY4EZqL/wHQ4LPIz0lzbQ5ad5E?= =?us-ascii?Q?fTYmZIZuEKoQUXn/71DNQ6+xa37oS9kM8p/U93EkgSw1y80duawBPX8ShoG+?= =?us-ascii?Q?qV86WfGrVMY09EVXhc5kdMa6nkhdyrEGXI7dvF7l8PfKJUKnUCPu1QI7+vHE?= =?us-ascii?Q?aIf04CfHtpR9vccnXm2qeI6gOUVmXoz4PsdfWavGAlLEVyenEmh7ju6jdKRS?= =?us-ascii?Q?Hkn8Xor7K6IxCnBJ0g361xUpNnToQXp6jdxJP6H4hAeP+qpxMW3XB91KzhGV?= =?us-ascii?Q?GuYlgZ0qXWQ/Rt7wf+WZm9EEtMgctDxweYuiA3YyJkGMlmA3DU5c9H6JwDJv?= =?us-ascii?Q?6Rex6wEFlNkE5DYkUv0tCEmq95GRYY2Zv3FdjCh8euC2Nf+z0q5nes1ElKwE?= =?us-ascii?Q?HMsSX/iIFOulJo9+6joqXrApZdDBsTUwo1tv/DYy8znxXyj7RUg/dCZqBhNi?= =?us-ascii?Q?lcyTzpJow+dYtDo9UoNuxw9TMZVAlB/CT77qJ6NfDLnbVOjdeNhrr3cm4C31?= =?us-ascii?Q?dupPZl8EKW6zEL5MajHzllG6smDoMr7dxaac9a8o1+xGvJIwsu+/REMMuTtk?= =?us-ascii?Q?TKhomzW/oWLQffzNCYjPPibofYEbgwGjrCxmX2jp1lDRG+jyDtmVmINADFnM?= =?us-ascii?Q?svT66rcdsbySGhivIiIGcSN5oUK8ytdHv3zMADJVVrwYzOsoLPRPPHvEZ5Vt?= =?us-ascii?Q?2fHgEbcQk6o24KIoYRs62JeQZc?= X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB180;5:R+gKsLII28zqmtnjtjRZHAkuCQTAqUw25G7bYionl9oEy7YJYuYTGkfoHAuh1oqhpiweZWscAz5Pd3pxUj+FA/WyrYfBErr/gJX3TsBqQHD7Lb2A5UVjpHe/A/nIyX1WLMOkbYXk2rzKVXUnXILhnQ==;24:871u7U1jrssr+1ldbMPJrQgaZ+V4t2mLjzfb8d87RWJpxBFTW6EI+3M0gQMeFu2/A8+qNb4/fYQiyZCaXyNTtVpjeVTH/aTpNKPUkWPJjds=;20:c2EZFyW0Ky+ZxVNekJnMgHKxWO3lL+WLpBzK1/9Z+6lmLOlHYc8yyzwWpOPc1b5KXkXONqKYM1VjCd4eZa/1Lw== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2015 13:21:03.9061 (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 NPS use special mapping right below TASK_SIZE. Hence we need to lower STACK_TOP so that user stack won't overlap NPS special mapping. Signed-off-by: Noam Camus Acked-by: Vineet Gupta --- arch/arc/include/asm/processor.h | 17 +++++++++++++++++ arch/arc/mm/tlb.c | 6 ++++++ 2 files changed, 23 insertions(+), 0 deletions(-) diff --git a/arch/arc/include/asm/processor.h b/arch/arc/include/asm/processor.h index a603301..7266ede 100644 --- a/arch/arc/include/asm/processor.h +++ b/arch/arc/include/asm/processor.h @@ -126,7 +126,24 @@ extern unsigned int get_wchan(struct task_struct *p); #define USER_KERNEL_GUTTER (VMALLOC_START - TASK_SIZE) +#ifdef CONFIG_ARC_PLAT_EZNPS +/* NPS architecture defines special window of 129M in user address space for + * special memory areas, when accessing this window the MMU do not use TLB. + * Instead MMU direct the access to: + * 0x57f00000:0x57ffffff -- 1M of closely coupled memory (aka CMEM) + * 0x58000000:0x5fffffff -- 16 huge pages, 8M each, with fixed map (aka FMTs) + * + * CMEM - is the fastest memory we got and its size is 16K. + * FMT - is used to map either to internal/external memory. + * Internal memory is the second fast memory and its size is 16M + * External memory is the biggest memory (16G) and also the slowest. + * + * STACK_TOP need to be PMD align (21bit) that is why we supply 0x57e00000. + */ +#define STACK_TOP 0x57e00000 +#else /* CONFIG_ARC_PLAT_EZNPS */ #define STACK_TOP TASK_SIZE +#endif /* CONFIG_ARC_PLAT_EZNPS */ #define STACK_TOP_MAX STACK_TOP /* This decides where the kernel will search for a free chunk of vm diff --git a/arch/arc/mm/tlb.c b/arch/arc/mm/tlb.c index 0c75a27..306ee4c 100644 --- a/arch/arc/mm/tlb.c +++ b/arch/arc/mm/tlb.c @@ -820,6 +820,12 @@ void arc_mmu_init(void) */ BUILD_BUG_ON(!IS_ALIGNED((CONFIG_ARC_VMALLOC_SIZE << 20), PMD_SIZE)); + /* + * stack top size sanity check, + * Can't be done in processor.h due to header include depenedencies + */ + BUILD_BUG_ON(!IS_ALIGNED(STACK_TOP, PMD_SIZE)); + /* For efficiency sake, kernel is compile time built for a MMU ver * This must match the hardware it is running on. * Linux built for MMU V2, if run on MMU V1 will break down because V1 -- 1.7.1