From mboxrd@z Thu Jan 1 00:00:00 1970 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 90D08EB64D8 for ; Wed, 14 Jun 2023 15:10:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1CB196B0078; Wed, 14 Jun 2023 11:10:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 17A768E0001; Wed, 14 Jun 2023 11:10:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 042D76B0080; Wed, 14 Jun 2023 11:10:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id E78446B0078 for ; Wed, 14 Jun 2023 11:10:20 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 94535A06C3 for ; Wed, 14 Jun 2023 15:10:20 +0000 (UTC) X-FDA: 80901689400.17.65DA231 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf27.hostedemail.com (Postfix) with ESMTP id 7E2EC40005 for ; Wed, 14 Jun 2023 15:10:18 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=u1QQyNDB; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf27.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686755418; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=R2BpgSZks4V/yxk0o+xA829NbDZwdQolAfbrtCbjYwM=; b=Gitmfmk4AJ1/2I3AfljFMe9qlwSWA5PrAs4KjXvM4o35pVC20nQcMHvz2xg4JBSFOY1tfI zmefGAyEID00GUAjt2t+fbRSd+T6ApFPmwbHzn5wfsAwczwDvUpsphFfdY1Fe9CYrK0XSe 3eNycx+9AiimncTH0gLWN7uvNNDmGxI= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=u1QQyNDB; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf27.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686755418; a=rsa-sha256; cv=none; b=i0dC8hIByBwHpAomSAUPTQwRXh15pDrTXRv0xB2QUmZXJ0xoiAu6pKU1ild3k+wNRxl/AY QcrygHcBkhssVw3k1SH/XD8JThsa5BUt3Bq3pNokeZxEhnJWCuhrRUQfDLMPHeHErNa/KD nUR2Bw1pRVnP4nNMDLUlND/9iMOqGPg= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8A3FB63E86; Wed, 14 Jun 2023 15:10:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16FDFC433C9; Wed, 14 Jun 2023 15:10:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686755416; bh=eEAbU7oQr9nMdD1HLeHjNBK19Ki+7NwrWH3cOyfSAFw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=u1QQyNDBdtCEWKCdwkI61E6ULyFIgzYYylF24CXModGq8eNzM+Z8HRxJ8NnKbPEF5 UNrt/K6ZH5RXrryPuSNoWGiuCh9vnPW8YLLGFCdMmvIvsn7goY4XYWaNAnF4AlaV9N mfMLdsrym6F2G1al1nf4xNlH9qHN5OFMys6dbDrcrpZ1VYnPTPQnPkmwVp166H2/JK U32Jf//4jTFsBKhLdt7fUkuWV7s3JXIXH4B66LpDynvbrZHamU0t4g4xIlyNwqP+5M W4uLOM28xHt+KNxT29B1NyZJ2yMGSa3xxMl7M4zbMQTq/+ShWbaHrgSWCQ911pmwU9 nPWmBNYhBTiFw== Date: Wed, 14 Jun 2023 18:09:37 +0300 From: Mike Rapoport To: "Vishal Moola (Oracle)" Cc: Andrew Morton , Matthew Wilcox , 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 , Huacai Chen Subject: Re: [PATCH v4 24/34] loongarch: Convert various functions to use ptdescs Message-ID: <20230614150937.GW52412@kernel.org> References: <20230612210423.18611-1-vishal.moola@gmail.com> <20230612210423.18611-25-vishal.moola@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230612210423.18611-25-vishal.moola@gmail.com> X-Rspamd-Queue-Id: 7E2EC40005 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: piwsd5713rsdh4443ahkx1d98d6czru1 X-HE-Tag: 1686755418-365882 X-HE-Meta: U2FsdGVkX1+fa8PWg6EScmJY3TFhc4Thqae786ilkTYnPEIfGKeyfFzW+L628EgInw52Avj7yh+QLkoKbBpq5RUsHXIl+wBrHtdxQ2zUK4FmNSqIDikkAq8fFRAO0EVYuBSau3fXrORpLBUTXv5ArQSsbgWfttYaX3RBvDexinXztrU+/ZlcqmNrV3Fu94v90VUyG4312UwLTJg224vEJPQvFaKeAw4rNScYcSDISTY9BG3tZ/f8jBwB9IMWukcwfFlhU68oEpcpfIv6SvV0VsgSgsLovzmzCKT4JqVgxdVq8oA/E/yWntzqaQSqKhKrwpl8nGKHHvVPbQFLZtsx9CEqveaQlwF9iGipjTftOjxRcEDF4HNccBCMsIeQBcJ7DGgJcRunPrwNAflAxlIKfogFmtfhPVuipSEWnqRS0hVaim53zdpioG3S3lTTymKVCf86SIXk9wprXy8Qdm/+8RmOEebya/SQ7eiWzZixKEQjUFePvX3r1FDmVFo7eFaWSKTeDPmAxfV1ovqa2ncoHpNzR0iLMgnBu1progurVlCXW5cjbujlkv3x1hyeLJCSa44UbGVBQvv8XCY0GodnP4Q8GaMODZWT/hTCa0bD690sP/gYv7ROBuY/5Whzk6yc0AugfiLZ97SvMBY0uktMV+B6v3ZhceW7daG4dI6nAUytWFmtCNlngoyipaNjVzfPXaJi3jQDvhmxGCDQblT8nDyoHf9KqGNaVu4k67i7PXX2C+5V5a/vqo2+nTtt1uTrCBL0EYRi+UyJEB9IYIasozGjGHywaRLz2hXJStptWe78R7VMn9yrPWVwyTrN0OZ0qZTIQm83dZp6fT4Vrrp0aOK51FWPnDxIwPEKv2jLrwQ4BPV4t9IE/rULZlZh17/+xqXYAiwSMb0a0NFjsZWvOzLxtQz2A4ekbtZU7zIx3qPfq3hDachqkRjhlF/BbFLiaN/NENYi0V+tTbdmDum eNHoKey6 bp0Lxr6IduUJ8gzWIzwX/XXsEgA0AIB2I+op9e9w/qOj5jqdVXpVvsArOW0yiUrmL/olgvsH08oL24A1X8KMUHXD1I8o+o1br85faa+I1N8rIYuwk3p3FnnnShbb2E6St+Chac8ZcJjW8ew1pOLsycHRmne3ouNjqbKZ3Lmh1e245a9qQP9sgqk3e13Hu5FB5EGZ0nkBwrApc4mu3oA6buxMapHTciDB1WhkpUoFz5XQaNfJ/f1WPHyRqHPsmih9lnbs0oTZbK1JH09tjtUpFeP7gEroYuysLyCx32gnAqeBTC7PdVqXfhyT+SZh2SO1tfgaCmzaERInRX3Jnju2vfg6MUP+ZlWmGmwXFZ+JAdiPcvtuiTgDYT/PNPmTQQHfbiU2f2Apr05AF3tna3S/kOviOpQdUxgVfcC4t+YJ8svJw6UEwbfu7OmXiipsTkmeXLxVS 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: On Mon, Jun 12, 2023 at 02:04:13PM -0700, Vishal Moola (Oracle) wrote: > 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: Mike Rapoport (IBM) > --- > arch/loongarch/include/asm/pgalloc.h | 27 +++++++++++++++------------ > arch/loongarch/mm/pgtable.c | 7 ++++--- > 2 files changed, 19 insertions(+), 15 deletions(-) > > diff --git a/arch/loongarch/include/asm/pgalloc.h b/arch/loongarch/include/asm/pgalloc.h > index af1d1e4a6965..70bb3bdd201e 100644 > --- a/arch/loongarch/include/asm/pgalloc.h > +++ b/arch/loongarch/include/asm/pgalloc.h > @@ -45,9 +45,9 @@ extern void pagetable_init(void); > extern pgd_t *pgd_alloc(struct mm_struct *mm); > > #define __pte_free_tlb(tlb, pte, address) \ > -do { \ > - pgtable_pte_page_dtor(pte); \ > - tlb_remove_page((tlb), pte); \ > +do { \ > + pagetable_pte_dtor(page_ptdesc(pte)); \ > + tlb_remove_page_ptdesc((tlb), page_ptdesc(pte)); \ > } while (0) > > #ifndef __PAGETABLE_PMD_FOLDED > @@ -55,18 +55,18 @@ do { \ > static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) > { > pmd_t *pmd; > - struct page *pg; > + struct ptdesc *ptdesc; > > - pg = alloc_page(GFP_KERNEL_ACCOUNT); > - if (!pg) > + ptdesc = pagetable_alloc(GFP_KERNEL_ACCOUNT, 0); > + if (!ptdesc) > return NULL; > > - if (!pgtable_pmd_page_ctor(pg)) { > - __free_page(pg); > + if (!pagetable_pmd_ctor(ptdesc)) { > + pagetable_free(ptdesc); > return NULL; > } > > - pmd = (pmd_t *)page_address(pg); > + pmd = ptdesc_address(ptdesc); > pmd_init(pmd); > return pmd; > } > @@ -80,10 +80,13 @@ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) > static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address) > { > pud_t *pud; > + struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL, 0); > > - pud = (pud_t *) __get_free_page(GFP_KERNEL); > - if (pud) > - pud_init(pud); > + if (!ptdesc) > + return NULL; > + pud = ptdesc_address(ptdesc); > + > + pud_init(pud); > return pud; > } > > diff --git a/arch/loongarch/mm/pgtable.c b/arch/loongarch/mm/pgtable.c > index 36a6dc0148ae..cdba10ffc0df 100644 > --- a/arch/loongarch/mm/pgtable.c > +++ b/arch/loongarch/mm/pgtable.c > @@ -11,10 +11,11 @@ > > pgd_t *pgd_alloc(struct mm_struct *mm) > { > - pgd_t *ret, *init; > + pgd_t *init, *ret = NULL; > + struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL, 0); > > - ret = (pgd_t *) __get_free_page(GFP_KERNEL); > - if (ret) { > + if (ptdesc) { > + ret = (pgd_t *)ptdesc_address(ptdesc); > init = pgd_offset(&init_mm, 0UL); > pgd_init(ret); > memcpy(ret + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD, > -- > 2.40.1 > > -- Sincerely yours, Mike.