From patchwork Thu Jan 27 10:06:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuanhua Han X-Patchwork-Id: 12726509 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D4941C433F5 for ; Thu, 27 Jan 2022 10:06:53 +0000 (UTC) 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=lAnR2W7GJ2nTK7vd/wjW55e20iax0TVGazB9Q0+LsMc=; b=FxfXoGvIsRU+4V n/tvxuKXsJFrd/6/Qeu7zJwGXp3ZVLbrs3m8ewXXd9injakOCsJboWC74eVZTtdXY1uV1NdSZ4orF WcrobGy+nIZjwcva8nPaBYFUSCbueY+0rZJUVjWCFfmwgvgHZftTwGk7DT1QsEaVdd0cGMrks8o/k GFYtrxWG/V8LnhWeG9VA07QHCr4lnZgRGLD87biHvJuUbirx3SdIpp6jIIWAXeknwD7i6N19cvtGx OrXY5EW8futpvS1jT6heQfM8SsEHqgEkwoL/clvarFVxu+9kfov+T9Fm97hgR5uDRDYp3DGmLilgR H5JBmJrLzH/NNJUYMXvA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nD1fu-00F3rd-TU; Thu, 27 Jan 2022 10:06:43 +0000 Received: from mail-psaapc01on2067.outbound.protection.outlook.com ([40.107.255.67] helo=APC01-PSA-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nD1fp-00F3nT-6i for linux-riscv@lists.infradead.org; Thu, 27 Jan 2022 10:06:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iF2dSsEoSypiIHQLjPDrbFrHx+FO+S+iYQWGAYF+VORImGpHn+gbTLnNsPag57j/gVE8LOaydVUGgp1U9Cd/eg0haHi4Heod9Jk2bb53tm02llSoEopFt4wK9noEwRg/NRNjlUJWNajKRRSrgd1axcHIs+ayvlO3KOIk9wTU0DOtXFOt46X+0phDkDTQKMPBc0jr1YiQHzKyFf7C8KzjWr6Ld5kL8iOT9RvE3P//Cbja5QTauk2IWryJiJGgMSJm5mKk6fTTlXwdfBQkn+RsRBv/+q/UQAa0vG4Lfnsd0rCfGYBOuxFcMzFYPGSgQdT3vmw7uv02q+JQ40U8i3q9/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9eDdlRodNT1smNfCpngsTKKNuv2Rs4JoL87AsmEEyuw=; b=JrWDEn3AjC9/LexaugIoeCydknGub+YDv5MebZgOxPioOCQEjGOPBc6GdpAXvtMwk3jFUrivKS8mkMc7hOjFXbmFk/wGd6etnFSzoOXtnaFNFCYoUxoaKVdTBsJ0SgzzPIIPxv2z99jdLEfhBYdWq37l/I5OFgdlxobohGbijZHcVWBX86RtfoRZ00XcjYyKYk5mxfp6nUPsvSjigDT3JqOVW1eKm6GQmiWToyxMHkHki2T7kRkav9/qPrlI3/No2uSnyxW2fOwWt/Fs191K4lf2Rz0KRIkPeRlzN4k+x/MMPXCgc5mHb/4EapHn2p9q9gH1eD3HyUVfoeyQw+hN0g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oppo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9eDdlRodNT1smNfCpngsTKKNuv2Rs4JoL87AsmEEyuw=; b=aiG1Ww1Pc5/tKNJ1M8Ia8P9qXxvV0JLKK7jtbYpUTg/URk6+Mx9yAqxpp0CtU1bejg/TDag8o7exaTUFdT7YJQjkT0wmljIq4R4e1sXF3rReaTUDeZxbG4QDS0oaqECLpEo+NfVISaLENrkd7zIH/VGb3kMzeYu8FKwd1WAc7+g= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oppo.com; Received: from SG2PR02MB5379.apcprd02.prod.outlook.com (2603:1096:4:177::10) by TY2PR02MB4239.apcprd02.prod.outlook.com (2603:1096:404:100::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.15; Thu, 27 Jan 2022 10:06:31 +0000 Received: from SG2PR02MB5379.apcprd02.prod.outlook.com ([fe80::10d3:b8b1:21ac:d260]) by SG2PR02MB5379.apcprd02.prod.outlook.com ([fe80::10d3:b8b1:21ac:d260%3]) with mapi id 15.20.4930.017; Thu, 27 Jan 2022 10:06:31 +0000 From: hanchuanhua To: paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu Cc: jszhang@kernel.org, alexandre.ghiti@canonical.com, wangkefeng.wang@huawei.com, zhengqi.arch@bytedance.com, ebiederm@xmission.com, liushixin2@huawei.com, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, hanchuanhua Subject: [PATCH] riscv: mm: Remove the copy operation of pmd Date: Thu, 27 Jan 2022 18:06:22 +0800 Message-Id: <20220127100622.11856-1-hanchuanhua@oppo.com> X-Mailer: git-send-email 2.17.1 X-ClientProxiedBy: HK2PR02CA0172.apcprd02.prod.outlook.com (2603:1096:201:1f::32) To SG2PR02MB5379.apcprd02.prod.outlook.com (2603:1096:4:177::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1c95856c-0d50-4c74-d47b-08d9e17cb0e4 X-MS-TrafficTypeDiagnostic: TY2PR02MB4239:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +g0OGmQNX233IHgTnW2ESEoYp651zKr8MLTwMSlIyeskWLIIXrwMZqmonJfHKayrAQWReOA7dP2xKlCTkF+p9LgLPTvENwc2HnR/N5FDobNfM3Ow6H03LPFI2oWuHEsdm9680xYrZ4Jc50ciXqqdOEYZVe1/0tHNnGaJ887G/qNWasEbZnhIEOgB5uETB2zHvnyIFyZHugRLGaUpSeps/kcF9EG0VhM8pgl+SR9evsbaXAHWWauNbqz23fyq9mgOtZAEk//cuQwrrE41OaJoJT3v0+6O9tJlfSX1BKkHRNYfweUngqlAFAikch14oDhnKnofVfuGzdMLlIglvVFVoewOhJvvRO/lt2BQK4nkFJJIdU1n4nykRH5jkaDnhgbzNYDKNkk87KD23jJM1/SGu4cXPIndlL7eU7HuxEh2iWBdFjm8WD1eC+ulV+7PExI24PI0GsZODXN7ArwUF3C5BhXKv7v3MwtJQWPrBcnJYRq0K/BxEv1+wgOBja8QhqAMue5eU6udU7kRmEGczUAGEzcO2c+VF58l3oCbBABVzXj2KSg4qrzgapMWK7ot8gVpa97tQAeMyaaqO/Q/QsPfnbdNwviX8AnBMpB9g/EiomPRAKfwTaANTqzSxHKKeO85hdnZaXRJAxgw2JtmpuLPRNEPyHERxEkZYHfaNw+elLT5Ovdtm+EtLb3q2zoImR0Cf7ZSjt2M74BpWZpGoihWdQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SG2PR02MB5379.apcprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(66946007)(66556008)(107886003)(86362001)(4326008)(66476007)(36756003)(8936002)(7416002)(8676002)(5660300002)(2906002)(316002)(186003)(38100700002)(83380400001)(38350700002)(508600001)(52116002)(6506007)(6666004)(6512007)(6486002)(2616005)(26005)(1076003)(20210929001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HxsJ+RcVkQzlBaXhPlv7IV6jk4AlGCLGvg4qgZXf1nI61rDGDpoUePuR8Ln3kexo257J1gm/bfQPbXm7Kgj77MPD+E5SZEAHk32lKjXQ6DRQhswDH9kS+1harCWHjLaYPJB2kTL1nPplLB6hYfH2l8KETusTHr33kk6b4/vO0fThyiOvmsF1Xn9zPyJbJldeH6+hDCZ57KkmRGXy8lQFww1rsw9LvdqPWUBhFyKIYYrcO31/feULa9KppfQsG7wnKL38lmHrYW3CdmTC27jLN0exyyEgKZMziCE1+jxau3Y43SvZb3mHeC15zOTtd+BNAy1dSeGE1QEJOE9J87vZkOXQVUoyP0wf8kIuxITLw8r5qwDNyPdFFM+v6JsOOJgKVfcloEv3kuRYXR++tbVSoZPGdo5ZNkDTIR1itcvfhuQ5u4SN39atyKTvzQgy3If6sPrj5MGoZ0Xd1wbh5mtRQue/EddkY6q9InUFPekNKmMHKmyVsS07tQARZfNqtes9ox21OvLMR0a72kosKCeNnaudCudHhTLG3Ioqs0nQzm6/I450hdzGtyRX2lXBeeY9pHB7HjILLnTHmMzityFmQQa1sBD0O44wUmiJSYo6o2rBd7qe4sM71ZxmrfJgs2bMQP4/6hDTWycl2mIBLYmL9vbk6isVSP9lOU94l7i7F5FvizdsjHwi8vQE7c60R42Q0dA6SyyW2PR6/mLqtZihkJ5JB41XejKoPg1AgispqcdgQ9+R8ShXeg9pN0XTU+J1vfle8CmJX6I3pl7G1MROhGkKGzjApBK8ATrU5cWfX1YTbfEfG77LmyPMCafbZJ5fHjZk1yzx64R19yRT0PyKNThXYe7tEQp1XJaKvT2JS79p3pejszAtFXLMLFrhAzteW+o9vJh2eDR/IEXg9hYt++KTF5B88bm2x65ssB0+kCYBRNLfDfQyEC+myogM6zHkFkjZCd0grNRiZQBOKfGZBBJFC05hNbPMjCSoBJ33Dqf4RMzq5B/Zi8OidW90HNZgly0MfEkVW3pOJ3nQFOS3x3tkGLVIdPAWDk8q8cma9281KGl9rX9VQPFeNEwTolcQL/VD1vD82qvJXJXVWX/qloj1GOhfNAvHQlyoCpBJv50181CQ3Xg4iWtx4RgYqVdKVx5wu4TdTc0uJ4s8m9KIiTm95iTrpx4EnT/78JkFNWUDWnc5TNWnzbuVeZln/0dOiWtJP640e2DknSdXGssO81UMAA2uzRDt/vkOuek6dgs+cC9qNt415qIdXce8gUoWpWyGwu/y8/KhNjpwC9ri3D+hffjWJViYdtyCyGo0gkvqsN2OuTPFlhtvDccLBbtMnvH7199vDbaHUpvhkerLkxW32InktUM+HfP4G19bk0BcZRee3pWglOs+9bMjG1eVqEWZ4fz6ZFN5kjRbQkfLP0vK9PF1wnOrLL3DS0GlqQW7lfvNlt0O/TeaSJighWYeupLEdKxtCL8hjM9B7CTz413R407tMYeqI7z/T8wxdj7b1O9MzNab869uVV3hwyT3s0AyAWd80+qO6dx0jfyO2iVrBSR96lMrzAUO2LIX7B9F5W8vpYqnP7VcYwlQwarr0UUmOcj5H+99LOuqlQm2bfr65ZbZlDLODF9SyxDxmEk= X-OriginatorOrg: oppo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c95856c-0d50-4c74-d47b-08d9e17cb0e4 X-MS-Exchange-CrossTenant-AuthSource: SG2PR02MB5379.apcprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2022 10:06:31.1178 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f1905eb1-c353-41c5-9516-62b4a54b5ee6 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NPQInN3Sz7ZVGluKz+dYF+x6Z7Qv7H6sxNm6HkiV1oopILlMldDnuJgq/nqfg4HDJwNnoAHQD/5c0LHpj0d5gw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY2PR02MB4239 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220127_020637_490361_8D104C25 X-CRM114-Status: UNSURE ( 6.65 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Since all processes share the kernel address space, we only need to copy pgd in case of a vmalloc page fault exception, the other levels of page tables are shared, so the operation of copying pmd is unnecessary. Signed-off-by: hanchuanhua Reviewed-by: Palmer Dabbelt # aside from the name --- arch/riscv/mm/fault.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) -- 2.7.4 diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c index 4e9efbe..40694f0 100644 --- a/arch/riscv/mm/fault.c +++ b/arch/riscv/mm/fault.c @@ -102,9 +102,9 @@ static inline void bad_area(struct pt_regs *regs, struct mm_struct *mm, int code static inline void vmalloc_fault(struct pt_regs *regs, int code, unsigned long addr) { pgd_t *pgd, *pgd_k; - pud_t *pud, *pud_k; - p4d_t *p4d, *p4d_k; - pmd_t *pmd, *pmd_k; + pud_t *pud_k; + p4d_t *p4d_k; + pmd_t *pmd_k; pte_t *pte_k; int index; unsigned long pfn; @@ -132,14 +132,12 @@ static inline void vmalloc_fault(struct pt_regs *regs, int code, unsigned long a } set_pgd(pgd, *pgd_k); - p4d = p4d_offset(pgd, addr); p4d_k = p4d_offset(pgd_k, addr); if (!p4d_present(*p4d_k)) { no_context(regs, addr); return; } - pud = pud_offset(p4d, addr); pud_k = pud_offset(p4d_k, addr); if (!pud_present(*pud_k)) { no_context(regs, addr); @@ -150,13 +148,11 @@ static inline void vmalloc_fault(struct pt_regs *regs, int code, unsigned long a * Since the vmalloc area is global, it is unnecessary * to copy individual PTEs */ - pmd = pmd_offset(pud, addr); pmd_k = pmd_offset(pud_k, addr); if (!pmd_present(*pmd_k)) { no_context(regs, addr); return; } - set_pmd(pmd, *pmd_k); /* * Make sure the actual PTE exists as well to