From patchwork Thu Aug 12 23:37:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vineet Gupta X-Patchwork-Id: 1516468 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=fTK1KaUn; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=FDVpodf9; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Gm35q5H6jz9t4b for ; Fri, 13 Aug 2021 09:38:07 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=cPxrqY9Ojmk8VuBPpl07LmmaD/lzsA0V/LEI7Tyx0Rw=; b=fTK1KaUn6kEYkj Fn7m+HZprQpoH8L24NA6UhehJ+jVamuDvV9UqFVNRsCa16FHLOVOhb7Toey5dhn2cM463A4yI/KO6 wjWRqtQTQpUrDFD2qxM2eCm/wdhortBVXoeVzGcaDZpQEQmrqVTAvdBKbNjPkpuPh3bpEyc0+UST6 5EFp7O9sFsknDOkKJrcM9nh18Z8s2IYMX9M3rC72yDngG1i5dLE8Vt9mNpWHjMbZXSxTeZMDmZcy0 uZhsGtUNDkEokNLCfdLj/lAZCFmMtXm+qOkN6HpGcPC2h6aIMQ6Qm/R15YQYy2z9aFE/2Dbwtw6Pu sVTFU6u1lpdMETdb+3VA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mEKGy-00BTw3-6c; Thu, 12 Aug 2021 23:38:04 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mEKGs-00BTrd-AX for linux-snps-arc@lists.infradead.org; Thu, 12 Aug 2021 23:38:02 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id F2F436103E; Thu, 12 Aug 2021 23:37:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1628811477; bh=cjVChcfrvuXbPh5LIL6KQzVZ8QD79IVN7HLo5LoUmIQ=; h=From:To:Cc:Subject:Date:From; b=FDVpodf9ZzkWEE3mkU6g0FyvggmUWx5aTtCy28S8sNtDcQqYeQtz6YY6mD72MORYG MvAK+xPkEqL343KbpeOF1z+QV3r4XQgoIDmJF/elSbcbqYE36d0edUIbsQYGlJaY8O wd1gNUbJ5b4XrWGOr11MhN/SJy3H6MthI5n/a68rk+ctWTmPfO1jNRTJQjdLa1sAPi RY5tjU44RbYFk1Ss60IhzVSITiAslJd0GBzbJeWbvtsMXIMgk1Plis5hmrjl8eFO0F 32pW60PwJfv/lVPQIDXjw8f+NjXmG3V19HJ2BKtJ23mTrGKBSsPaFVzeIfK/fXMBFR tQoAbPzU66q+w== From: Vineet Gupta To: linux-snps-arc@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Anshuman Khandual , Mike Rapoport , Vineet Gupta Subject: [PATCH v2 00/19] ARC mm updates: support 3/4 levels and asm-generic/pgalloc Date: Thu, 12 Aug 2021 16:37:34 -0700 Message-Id: <20210812233753.104217-1-vgupta@kernel.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210812_163758_462240_F51C02ED X-CRM114-Status: GOOD ( 11.44 ) X-Spam-Score: -5.4 (-----) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hi, Big pile of ARC mm changes to prepare for 3 or 4 levels of paging (from current 2) needed for new hardware page walked MMUv6 (in aRCv3 ISA based cores). Most of these changes are incremental cleanups to make way for 14/18 and 15/18 which actually imeplement the new levels (in existing ARCv2 port) and worth a critical eye. Content analysis details: (-5.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at https://www.dnswl.org/, high trust [198.145.29.99 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.2 DKIMWL_WL_HIGH DKIMwl.org - High trust sender X-BeenThere: linux-snps-arc@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux on Synopsys ARC Processors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Hi, Big pile of ARC mm changes to prepare for 3 or 4 levels of paging (from current 2) needed for new hardware page walked MMUv6 (in aRCv3 ISA based cores). Most of these changes are incremental cleanups to make way for 14/18 and 15/18 which actually imeplement the new levels (in existing ARCv2 port) and worth a critical eye. CC'ing some of you guys dealing with page tables for a while :-) to spot any obvious gotchas. Thx, -Vineet Changes since v1 [1] - Switched ARC to asm-generic/pgalloc.h (so struct page based pgtable_t) [Mike Rapoport] - Dropped {pud,pmd}_alloc_one/{pud,pmd}_free provided by asm-generic/pgalloc.h [Mike Rapoport] - Negative diffstat now due to above - Added BUILD_BUG_ON() to arch/arc/mm/init.c for sanity of table sizes - Consolidated 2 patches related to ARC_USE_SCRATCH_REG [Mike Rapoport] - Reworked how mmu is re-enabled in entry code [Jose Abreu] [1] http://lists.infradead.org/pipermail/linux-snps-arc/2021-August/005326.html Vineet Gupta (19): ARC: mm: use SCRATCH_DATA0 register for caching pgdir in ARCv2 only ARC: mm: remove tlb paranoid code ARC: mm: move mmu/cache externs out to setup.h ARC: mm: Fixes to allow STRICT_MM_TYPECHECKS ARC: mm: Enable STRICT_MM_TYPECHECKS ARC: ioremap: use more commonly used PAGE_KERNEL based uncached flag ARC: mm: pmd_populate* to use the canonical set_pmd (and drop pmd_set) ARC: mm: switch pgtable_t back to struct page * ARC: mm: switch to asm-generic/pgalloc.h ARC: mm: non-functional code cleanup ahead of 3 levels ARC: mm: move MMU specific bits out of ASID allocator ARC: mm: move MMU specific bits out of entry code ... ARC: mm: disintegrate mmu.h (arcv2 bits out) ARC: mm: disintegrate pgtable.h into levels and flags ARC: mm: hack to allow 2 level build with 4 level code ARC: mm: support 3 levels of page tables ARC: mm: support 4 levels of page tables ARC: mm: vmalloc sync from kernel to user table to update PMD ... ARC: mm: introduce _PAGE_TABLE to explicitly link pgd,pud,pmd entries arch/arc/Kconfig | 7 +- arch/arc/include/asm/cache.h | 4 - arch/arc/include/asm/entry-compact.h | 8 - arch/arc/include/asm/mmu-arcv2.h | 103 +++++++ arch/arc/include/asm/mmu.h | 73 +---- arch/arc/include/asm/mmu_context.h | 28 +- arch/arc/include/asm/page.h | 74 +++-- arch/arc/include/asm/pgalloc.h | 81 ++---- arch/arc/include/asm/pgtable-bits-arcv2.h | 151 +++++++++++ arch/arc/include/asm/pgtable-levels.h | 179 ++++++++++++ arch/arc/include/asm/pgtable.h | 315 +--------------------- arch/arc/include/asm/processor.h | 2 +- arch/arc/include/asm/setup.h | 12 +- arch/arc/kernel/entry-arcv2.S | 1 + arch/arc/kernel/entry.S | 7 +- arch/arc/mm/fault.c | 20 +- arch/arc/mm/init.c | 5 + arch/arc/mm/ioremap.c | 3 +- arch/arc/mm/tlb.c | 68 +---- arch/arc/mm/tlbex.S | 78 ++---- 20 files changed, 591 insertions(+), 628 deletions(-) create mode 100644 arch/arc/include/asm/mmu-arcv2.h create mode 100644 arch/arc/include/asm/pgtable-bits-arcv2.h create mode 100644 arch/arc/include/asm/pgtable-levels.h Acked-by: Mike Rapoport