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 X-Spam-Level: X-Spam-Status: No, score=-15.5 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8BC1CC4338F for ; Wed, 28 Jul 2021 06:25:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6D8DE60462 for ; Wed, 28 Jul 2021 06:25:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234623AbhG1GZz (ORCPT ); Wed, 28 Jul 2021 02:25:55 -0400 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:57531 "EHLO relay5-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234137AbhG1GZy (ORCPT ); Wed, 28 Jul 2021 02:25:54 -0400 Received: (Authenticated sender: alex@ghiti.fr) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 54CD01C0002; Wed, 28 Jul 2021 06:25:48 +0000 (UTC) Subject: Re: [PATCH -next] riscv: mm: remove redundant trampoline PGD for 64bit To: "Sunnanyong (Nanyong Sun, Intelligent Computing Solution Development Dep)" , paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, anup.patel@wdc.com Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, palmerdabbelt@google.com, atish.patra@wdc.com, wangkefeng.wang@huawei.com References: <20210527144819.12101-1-sunnanyong@huawei.com> <33f93026-cbd2-acd4-e737-c744207f82f2@ghiti.fr> From: Alex Ghiti Message-ID: <2e4ea006-5a8d-3578-1cba-363b7ba37e6d@ghiti.fr> Date: Wed, 28 Jul 2021 08:25:48 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Nanyong, Le 28/07/2021 à 05:09, Sunnanyong (Nanyong Sun, Intelligent Computing Solution Development Dep) a écrit : > 在 2021/6/29 21:01, Alex Ghiti 写道: > >> Hi Nanyong, >> >> Le 27/05/2021 à 16:48, Nanyong Sun a écrit : >>> Remove redundant trampoline PGD for 64bit and add more comment >>> for why 32bit systems need trampoline PGD. >>> >>> There was a patch and discussion similar to this,refer to >>> the link [1][2]. >>> >>> The trampoline PGD is redundant for 64bit systems because: >>> 1. The early PGD covers the entire kernel mapping. Directly >>> loading early PGD can achieve the result in boot stage. >>> A more trampoline PGD makes code hard to understand. >>> 2. Directly loading early PGD is safe in 64bit systems since >>> the kernel virtual address starts as 0xFFFFxxxxxxxxxxxx, >>> which has a very big gap with RAM address.It won't fall into >>> the corner case that 32bit system worrys. >>> 3. Remove redundant trampoline PGD can benefit to code maintaince, >>> because 64bit systems have more page table levels.For example: >>> If we want to support SV48 which has 4 page table levels, we have >>> to add a trampoline_pud and insert it before trampoline_pmd. >> >> I do agree with your last point about code maintenance and this would >> be a welcome improvement before I respin my sv48 series. >> >> Some comments below though. >> >>> >>> Reference link: >>> [1]https://lore.kernel.org/linux-riscv/20190325092234.5451-4-anup.patel@wdc.com/ >>> >>> [2]https://lkml.org/lkml/2019/3/28/147 >>> >>> Signed-off-by: Nanyong Sun >>> --- >>>   arch/riscv/kernel/head.S | 13 +++++++++++-- >>>   arch/riscv/mm/init.c     | 21 +++++++-------------- >>>   2 files changed, 18 insertions(+), 16 deletions(-) >>> >>> diff --git a/arch/riscv/kernel/head.S b/arch/riscv/kernel/head.S >>> index 89cc58ab52b4..1897b17c5fcc 100644 >>> --- a/arch/riscv/kernel/head.S >>> +++ b/arch/riscv/kernel/head.S >>> @@ -93,12 +93,18 @@ relocate: >>>       add a2, a2, a1 >>>       csrw CSR_TVEC, a2 >> >> This is not needed in 64-bit then. >> >> > I'm afraid this is still needed for 64-bit, which can convert the > physical address world to the virtual address world. > > I also have made a experiment, it could not boot up if this is deleted. > Yes you're right, sorry about that. >> Thanks, >> >> Alex >> . > > Hi Alex, > >     Very thanks for your carefully review, I have updated to version > two just now : ) > > Thanks, I'll take a look. Alex > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv