Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2034310imu; Thu, 10 Jan 2019 07:14:12 -0800 (PST) X-Google-Smtp-Source: ALg8bN7pfVOHU6ceQ/e+tHumIlSnHL12yUu8EzzxFxthOIJC4r2I93cEooKzPSOC8sf1hoa7XCKn X-Received: by 2002:a62:3c1:: with SMTP id 184mr10697340pfd.56.1547133252361; Thu, 10 Jan 2019 07:14:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547133252; cv=none; d=google.com; s=arc-20160816; b=gTIHlzuC2sYuFWZ6khvbNQlg7VkH53LzjOe6Iq/uGH7/++HqDremueySEU6WIiLW3T asOrylIQacd9aAw6ND9RwKXmRLOgV4693Xsbk5bSnN6h0e4oXeECuKh8NecYbFTHhn2l s++DubIBcuqyySf0qc4ZGY5a5NbEyfz+H7XCu1uk8fmgZjwnc42g52iRSQhHjUyJi/6p O6k2oJxdnsht7mXMyV250dEgYltE8Rhj5kLPHkWI4XaUEZOb8+Qa2cbKMGX/l/ZodB1X lPDVUJq3PBLpZZnpUAABiqwZ0TjLyyslKM3IULqWDr0ExypnD3jmPsmx3GKc9JwdwpcX A+WA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:cc:to:subject:from:references :in-reply-to:message-id; bh=HrcMi3whQy8PEfqZvGNbMtFv8T5FaezX/OZmCIy2acM=; b=Q/zVdyhtuSzFPuJX3SBD77ZkKU/M3S64YGs6F+RzPurkmZxtlQgAJavScviYtwl1oL PlBZEcJ2SpdcyxdUIoZ019BDSW6MvlDwnKXSKI/vLSeMK0sOvlxxLuJfY5iwLreROVUu rjIlEo2xqZ9xJ87IdoEfFrBYUhihZZXEhx2ys4AzVrl5bexI/smb4yGEfr/gE9txDGem LlMi/8dkw4ACuazsVg90V6l5xJmdvbL+7aJr74AxVIiy9OXiigGGu8GybU2biB3yB+8z seSPQ0KSlKcYVolDuBdTXVuDHzK7QNmL9Ka7u+AYNn6t9Np9VcqnB/pF1ITcjBoUuuOZ N3AQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k91si3280054pld.283.2019.01.10.07.13.57; Thu, 10 Jan 2019 07:14:12 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729740AbfAJPMW (ORCPT + 99 others); Thu, 10 Jan 2019 10:12:22 -0500 Received: from pegase1.c-s.fr ([93.17.236.30]:64470 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729707AbfAJPML (ORCPT ); Thu, 10 Jan 2019 10:12:11 -0500 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 43b8c82Mvmz9v0fG; Thu, 10 Jan 2019 16:12:08 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id Phh_-gWp3-bK; Thu, 10 Jan 2019 16:12:08 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 43b8c81sC0z9v0f8; Thu, 10 Jan 2019 16:12:08 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id BA6CA8B8A0; Thu, 10 Jan 2019 16:12:09 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id 8urukiNxpEue; Thu, 10 Jan 2019 16:12:09 +0100 (CET) Received: from po16846vm.idsi0.si.c-s.fr (unknown [192.168.4.90]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 7D0F18B89F; Thu, 10 Jan 2019 16:12:09 +0100 (CET) Received: by po16846vm.idsi0.si.c-s.fr (Postfix, from userid 0) id 2F0BD6BF21; Thu, 10 Jan 2019 15:12:09 +0000 (UTC) Message-Id: <505e1dbe9c874a7642efddcf0446229d37b05c95.1547132682.git.christophe.leroy@c-s.fr> In-Reply-To: References: From: Christophe Leroy Subject: [PATCH v2 15/15] powerpc/kconfig: make _etext and data areas alignment configurable on 8xx To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , j.neuschaefer@gmx.net Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Date: Thu, 10 Jan 2019 15:12:09 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8xx, large pages (512kb or 8M) are used to map kernel linear memory. Aligning to 8M reduces TLB misses as only 8M pages are used in that case. This patchs allows the user to do it via Kconfig. Signed-off-by: Christophe Leroy --- arch/powerpc/Kconfig | 16 ++++++++++++++-- arch/powerpc/kernel/head_8xx.S | 4 ++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 18744290c078..4f09150c92f5 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -732,7 +732,8 @@ config THREAD_SHIFT want. Only change this if you know what you are doing. config ETEXT_SHIFT_BOOL - bool "Set custom etext alignment" if STRICT_KERNEL_RWX && PPC_BOOK3S_32 + bool "Set custom etext alignment" if STRICT_KERNEL_RWX && \ + (PPC_BOOK3S_32 || PPC_8xx) depends on ADVANCED_OPTIONS help This option allows you to set the kernel end of text alignment. When @@ -744,6 +745,7 @@ config ETEXT_SHIFT_BOOL config ETEXT_SHIFT int "_etext shift" if ETEXT_SHIFT_BOOL range 17 28 if STRICT_KERNEL_RWX && PPC_BOOK3S_32 + range 19 23 if STRICT_KERNEL_RWX && PPC_8xx default 17 if STRICT_KERNEL_RWX && PPC_BOOK3S_32 default 19 if STRICT_KERNEL_RWX && PPC_8xx default PPC_PAGE_SHIFT @@ -751,8 +753,13 @@ config ETEXT_SHIFT On Book3S 32 (603+), IBATs are used to map kernel text. Smaller is the alignment, greater is the number of necessary IBATs. + On 8xx, large pages (512kb or 8M) are used to map kernel linear + memory. Aligning to 8M reduces TLB misses as only 8M pages are used + in that case. + config DATA_SHIFT_BOOL - bool "Set custom data alignment" if STRICT_KERNEL_RWX && PPC_BOOK3S_32 + bool "Set custom data alignment" if STRICT_KERNEL_RWX && \ + (PPC_BOOK3S_32 || PPC_8xx) depends on ADVANCED_OPTIONS help This option allows you to set the kernel data alignment. When @@ -765,6 +772,7 @@ config DATA_SHIFT int "Data shift" if DATA_SHIFT_BOOL default 24 if STRICT_KERNEL_RWX && PPC64 range 17 28 if STRICT_KERNEL_RWX && PPC_BOOK3S_32 + range 19 23 if STRICT_KERNEL_RWX && PPC_8xx default 22 if STRICT_KERNEL_RWX && PPC_BOOK3S_32 default 19 if STRICT_KERNEL_RWX && PPC_8xx default PPC_PAGE_SHIFT @@ -772,6 +780,10 @@ config DATA_SHIFT On Book3S 32 (603+), DBATs are used to map kernel text and rodata RO. Smaller is the alignment, greater is the number of necessary DBATs. + On 8xx, large pages (512kb or 8M) are used to map kernel linear + memory. Aligning to 8M reduces TLB misses as only 8M pages are used + in that case. + config FORCE_MAX_ZONEORDER int "Maximum zone order" range 8 9 if PPC64 && PPC_64K_PAGES diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S index f095c3c18455..dc7c8be8d9da 100644 --- a/arch/powerpc/kernel/head_8xx.S +++ b/arch/powerpc/kernel/head_8xx.S @@ -405,7 +405,7 @@ InstructionTLBMiss: #ifndef CONFIG_PIN_TLB_TEXT ITLBMissLinear: mtcr r11 -#ifdef CONFIG_STRICT_KERNEL_RWX +#if defined(CONFIG_STRICT_KERNEL_RWX) && CONFIG_ETEXT_SHIFT < 23 patch_site 0f, patch__itlbmiss_linmem_top8 mfspr r10, SPRN_SRR0 @@ -536,7 +536,7 @@ DTLBMissIMMR: DTLBMissLinear: mtcr r11 rlwinm r10, r10, 20, 0x0f800000 /* 8xx supports max 256Mb RAM */ -#ifdef CONFIG_STRICT_KERNEL_RWX +#if defined(CONFIG_STRICT_KERNEL_RWX) && CONFIG_DATA_SHIFT < 23 patch_site 0f, patch__dtlbmiss_romem_top8 0: subis r11, r10, (PAGE_OFFSET - 0x80000000)@ha -- 2.13.3