From patchwork Mon Jul 31 17:03:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vishal Moola X-Patchwork-Id: 13335127 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4FB5AC05051 for ; Mon, 31 Jul 2023 17:04:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A74BC280078; Mon, 31 Jul 2023 13:04:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A4B846B0188; Mon, 31 Jul 2023 13:04:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 87685280078; Mon, 31 Jul 2023 13:04:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 75D1E6B0187 for ; Mon, 31 Jul 2023 13:04:34 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3F4F4C01AD for ; Mon, 31 Jul 2023 17:04:34 +0000 (UTC) X-FDA: 81072530868.04.7B8732E Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) by imf19.hostedemail.com (Postfix) with ESMTP id EE8E11A0020 for ; Mon, 31 Jul 2023 17:04:31 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=jDHhLXZJ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.167.169 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690823072; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=3wtNkjiFE1rjq7ZRDFNmpMqdu/3EA/QyC8BNR6xlaRk=; b=A9/nQcdvnOLGAIU8JqR+5UGyXnG1LLFxR6dL/nGJS8FHdn0CkxqO8YzVMDjGtegvNpsT0P HOSDJRbVzHNUZZK6RxkWLcXTV4CmOyW23WI9ImPtnLQtZ42CUSSx/LrvNm/YZKtLUdJoB3 W3xzsShM5i4ls/uNJcqaCSfZRS1iHzY= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=jDHhLXZJ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.167.169 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690823072; a=rsa-sha256; cv=none; b=c89NVECQUQtwwHRL+fgJVTZOuGRZb2s8UjMj2+lf8fWebUT0WQfQcfHWJoeduYQxrYa8am 893T1G/su+dUTS0z57kEEIplhklCEDIVAH+6xNyFDeI5zLXjlBPdn1DleWvUSdOn9YuAS+ BlP905vmV+YSYAOpaWV5hEYuoCbndpc= Received: by mail-oi1-f169.google.com with SMTP id 5614622812f47-3a38953c928so3582888b6e.1 for ; Mon, 31 Jul 2023 10:04:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690823070; x=1691427870; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3wtNkjiFE1rjq7ZRDFNmpMqdu/3EA/QyC8BNR6xlaRk=; b=jDHhLXZJRXD/xeYPjUKANAGx7mWI4rG2vR3tiNn5nmibHzSYtMioLibanq9BMakzzx Dc40uVduQvHfbEsvbNTufmD3fXRl+TcWbOzDp0kgO7QuCTykCE1j+HK6n3jb1sqe57XF 7xsPytJhE4yGGkRfFmDQz1HzLuGW2ZTo/1EAyxe33p/FghCyp57Hsm7Uzya8S5xLQJaT ueIYolohxESLEyhmxK2PHze+l/eyVpSLM0kum/QRULVrKh/GfSQvLlze6Gzlo9GlB5fo iazuqOSyOZnJfKQ3WX+zpbxyRMiNA23MCvyV70vvY+gHhKrbl8nHkjOrciNugWyCFGqp 7t9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690823070; x=1691427870; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3wtNkjiFE1rjq7ZRDFNmpMqdu/3EA/QyC8BNR6xlaRk=; b=OcYb9BYM0PH391Q2LHgDoe57MxxENqixk1QjVfY8qyrjZCkN3hE8GlHgcqXWQkt/7N cWX5xjDl9PnW2xNRAG5viFTxZo1boZDcxbn/fEs6qOUrM4wV/p7ETYSkRbj3TbqHyuDC k7/ba+/qJ0a96HEH+7SC8zfD8FPasmV85XRWqI5RTc4DYr9O6mswlUe7MigqxIPpgm2R QLm3ML7m2no/HB/z6u0dIr78vhIQ3n2RgV+xFqzPg297y7ujI0R+33r5/RGuR+xIRwoU ITyeKDSAFsHEwhx1pmxPk3yxCV+rBC/h565CmsLfE79+pBygvpB6gwUJ2Es3ijiNEKOx 6MkQ== X-Gm-Message-State: ABy/qLa+Erufrm+AhGtdAwMKKNE4uMAVjoo8p2+dPbas4sNLg2uForH8 9Ftg8b8IpJl8P92RikeEYdo= X-Google-Smtp-Source: APBJJlGObInRwlJ0AwNAJnouNbrDrDtHWtXxAKPp84WJFWn9NE838Pa2gI3Dgeu+TYrNO6dbsPWj8A== X-Received: by 2002:aca:2b03:0:b0:3a7:1443:f4e4 with SMTP id i3-20020aca2b03000000b003a71443f4e4mr5616696oik.44.1690823070647; Mon, 31 Jul 2023 10:04:30 -0700 (PDT) Received: from unknowna0e70b2ca394.attlocal.net ([2600:1700:2f7d:1800::16]) by smtp.googlemail.com with ESMTPSA id x31-20020a25ac9f000000b00c832ad2e2eesm2511833ybi.60.2023.07.31.10.04.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jul 2023 10:04:30 -0700 (PDT) From: "Vishal Moola (Oracle)" To: Andrew Morton , Matthew Wilcox Cc: linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-openrisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, xen-devel@lists.xenproject.org, kvm@vger.kernel.org, Hugh Dickins , "Vishal Moola (Oracle)" , Paul Walmsley , Palmer Dabbelt , Mike Rapoport Subject: [PATCH mm-unstable v8 26/31] riscv: Convert alloc_{pmd, pte}_late() to use ptdescs Date: Mon, 31 Jul 2023 10:03:27 -0700 Message-Id: <20230731170332.69404-27-vishal.moola@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230731170332.69404-1-vishal.moola@gmail.com> References: <20230731170332.69404-1-vishal.moola@gmail.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: EE8E11A0020 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: tcudekebjpgdn6xx65a4mfpqddapazh6 X-HE-Tag: 1690823071-830332 X-HE-Meta: U2FsdGVkX1+K6qlT2z2t5isjaUzjgbOAe7wF1/krEZWxxYcvYIfqKGVj1ZnP4GqFkWUWKCvJGtalACrWQ6Tx8Ql0g4drEqhBdegalcDjcPpjbl64fksnldwUIXM2XCLCwO3y+j9eHVYVD7Ky4/R4klZUQxC6fjin8NTlcka60AINu8lGzFY1MDdDkjd7ljwYLs/EesA4tfIWdhWJBQrnzJFzdzNyFei0xNo0l/ttOVSNxPTdg1Do9HEfsxOv5xsHwcQl+QjJISS2b8ZjcCUMv8L6yeQrr9jLSt1GEJvPIk+et7YpfNH/b87iNeMx7sE2IXXEKMxqGl7GFIJOY/4T2g1GvSitSJDhDsYKrwqNFXxDt8I+3QujhIe42aV/YstmQ1EzFBZwUlZse/VqpOrKaCa+7MHctLjtTQ3cosle6S2ZN2Fqp70Bm6WuMJAB7lvYMCkaIZog2RuWhnyqMdmyYZv+utEfEddgHnbE2bAitcaH75v77D8cjZflKpOjMi4F1XJE6riwg7FGUO1F5x3ZpEKR7a1pP+b+JTyUv6lN5hNY5VBxyTs4f9MbRG3FM8HQsPs6BD1rSufVVNB8xIwiyGjN0988HPq18T43foDagQKlJH0Ohy57VtgYiQvEQVwjLRifW1dFA+5lPgyx8TSVSWjnXZPD74bLAY/j/g4IpARk3p3S15YCZTXHkniYkgCuNHzSIKnkMx9e92MuqbK1nRg4QEmjSCVyKtTzC7/kvb2F9miimpr+yVAZsPGagqnChVljC91aHuZmqdPLAzMNVyKRyrRmDQLPwTL2i9ZDizxbhtexKOLzt0eMAEs/EXyM+ZoTYdVXAlZS1BHGUY5GpuY/1NGicSRVC4L7qt4iCvT88XNhp7RUW7ZxPGwwrjhmUnWwWRw5Abu6dbCrAs4T8bFwG4q8DLyluiecicdeypkv4XaBpIMjcTLUF97CP30l1DbElH6PBWtZSXp6xkj X90VO9PZ fiTxX5vAtC6qwgkEQm2c5KQXzg6zM6T8JeeGjqPDdQopCVdK8i98JzY/GtAvhdt9BCv2DCm+Gyc/dQmCuMIcAU6nO6Qq2k3oIQjCwfUgdbUjGH+o6NaFQTJfZbcIam/DRBybt6mPV60NBJxnPblDPWx/irV+y3d589ct27cx+YbYwJ0bAZ2qZLrYFlTKDtnl8qeim+WCm/cj6JzZrscP2cMX+Zo0WSmOoBjxNzFcRnMbe9lVVOcAoppK6FSIWojP5NN5eRAIoGhZq3nm/btJo2p0e2oxvtTRDokROqgOU1LVzgRAD7JAvdDldA7Al5QhiCHwRb5yrGLNuKorGk6Y0GLWj+oYOOcyG+r3cdmv/HhNqoWD8S1+7qqrGg6PaRoqcbhpIScb+QY65a+AevnTNSbCP8wV9ozSKx+8GrxcQbl5MZYQjleZuFdFgXvs+fxygXCxv5qCrBwb+g5/4XeD4anAqu/KSE52xbmu2Ea+syApEYvZcyNtPPGRwvjKqykLfo1+1JGBMsg/ihU6sL8aDbtTGk0xFZFEiaOUQbQfcMLpEBt+KyBnBHBRh7CQGipIe0qY7WsZ1y4WriawWszPlNLLBS6a4qv86L7UrzFX/3po3LlSog1YGxbEjoKQ5aJSdpqSaOZ195xQgiV2EGo1dPwIkefUe5nvEsIwnMaLQonN4y3Z9HrhA52cYw8uJ9MTzYhqr X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: As part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents, convert various page table functions to use ptdescs. Some of the functions use the *get*page*() helper functions. Convert these to use pagetable_alloc() and ptdesc_address() instead to help standardize page tables further. Signed-off-by: Vishal Moola (Oracle) Acked-by: Palmer Dabbelt Acked-by: Mike Rapoport (IBM) --- arch/riscv/include/asm/pgalloc.h | 8 ++++---- arch/riscv/mm/init.c | 16 ++++++---------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/arch/riscv/include/asm/pgalloc.h b/arch/riscv/include/asm/pgalloc.h index 59dc12b5b7e8..d169a4f41a2e 100644 --- a/arch/riscv/include/asm/pgalloc.h +++ b/arch/riscv/include/asm/pgalloc.h @@ -153,10 +153,10 @@ static inline pgd_t *pgd_alloc(struct mm_struct *mm) #endif /* __PAGETABLE_PMD_FOLDED */ -#define __pte_free_tlb(tlb, pte, buf) \ -do { \ - pgtable_pte_page_dtor(pte); \ - tlb_remove_page((tlb), pte); \ +#define __pte_free_tlb(tlb, pte, buf) \ +do { \ + pagetable_pte_dtor(page_ptdesc(pte)); \ + tlb_remove_page_ptdesc((tlb), page_ptdesc(pte));\ } while (0) #endif /* CONFIG_MMU */ diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index 9ce504737d18..430a3d05a841 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -353,12 +353,10 @@ static inline phys_addr_t __init alloc_pte_fixmap(uintptr_t va) static phys_addr_t __init alloc_pte_late(uintptr_t va) { - unsigned long vaddr; - - vaddr = __get_free_page(GFP_KERNEL); - BUG_ON(!vaddr || !pgtable_pte_page_ctor(virt_to_page((void *)vaddr))); + struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, 0); - return __pa(vaddr); + BUG_ON(!ptdesc || !pagetable_pte_ctor(ptdesc)); + return __pa((pte_t *)ptdesc_address(ptdesc)); } static void __init create_pte_mapping(pte_t *ptep, @@ -436,12 +434,10 @@ static phys_addr_t __init alloc_pmd_fixmap(uintptr_t va) static phys_addr_t __init alloc_pmd_late(uintptr_t va) { - unsigned long vaddr; - - vaddr = __get_free_page(GFP_KERNEL); - BUG_ON(!vaddr || !pgtable_pmd_page_ctor(virt_to_page((void *)vaddr))); + struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, 0); - return __pa(vaddr); + BUG_ON(!ptdesc || !pagetable_pmd_ctor(ptdesc)); + return __pa((pmd_t *)ptdesc_address(ptdesc)); } static void __init create_pmd_mapping(pmd_t *pmdp,