From patchwork Fri Oct 6 09:29:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Ghiti X-Patchwork-Id: 149159 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp194444vqo; Fri, 6 Oct 2023 02:30:53 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF/oMIUpZsTdsYfl93cmZmqZXXIBv6boRR0T1Z4AjC/3yOQbRMbFzt+NznjzoHwrH80av6U X-Received: by 2002:a17:902:dac6:b0:1c7:24fa:64c7 with SMTP id q6-20020a170902dac600b001c724fa64c7mr8586537plx.26.1696584653151; Fri, 06 Oct 2023 02:30:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696584653; cv=none; d=google.com; s=arc-20160816; b=M15qeR37UW/DWxruIR4gxchgWNEq9Pl53aGmgslkNAGWkN5NcqIvO+aHNqqaL8SaAh Aby+FkzA1xNqyEN4iy5hferHJhbPY8jgvyijSlN/sUede2Wm3u2WvPx8OVsRq/N8DFVW 6T7H8i0AuSLg39lDVWRPOkKhHo4fdBqKIP0PPi6L2MtWvNmEDOl85YsXxiAgcpHgxkpW VwhwrcYePWusYw93T8Di2XHlfTty+kdBEOy84tDCd/AlAqTfp3oCx46PC3qyUZzYSDAF UH9plxcQOzV2SjqHXTg0bVEiF0pTvT5Pu/P39QuJjuA0KdP/DnAzE53cGJm6yZP6T5FF hT2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=hEPgDTMpIXvshpOSSpINtGH8/u8zbO38mo5vAWcHcCQ=; fh=0YNXORI2f1g3k8QaEEzBwjs/kwDlkOiTK/vvbTQGF20=; b=jDb0Sxycq81mgKEfjWAu4Tr9kMa989BoFsjvHPIf8HFeT1r6mmnd/3yG+BXgv0Ow0h iJNvE0cmLDeq9Nz4x8IfHhN1SJYpI0Z0z1QV3+BO0NxMEKx55nxIhngOJvo/8Flk7hn2 rU6gLbt3FXglB/C7XpNys1oYLYCvilsXu92dKBesmSaEcz3JIV03d0pUYiq/U0uDViio YoPmfTr38BpwVuIIeN5KyGFQwNGcg0cYy2lHljVXHoegWm2HqdQ2AsTu42jkVBbJGslV 9DaCGRvKTR2jA1Vw5L33JGQWlPL2xvf54uct7yEQTYRCnRuTbVzre6UtQulRk7N5dPfE Lx2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=k9BtBlJm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id ik13-20020a170902ab0d00b001c631664c4bsi3285148plb.200.2023.10.06.02.30.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Oct 2023 02:30:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; dkim=pass header.i=@rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=k9BtBlJm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 3680480615CF; Fri, 6 Oct 2023 02:30:51 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231186AbjJFJak (ORCPT + 18 others); Fri, 6 Oct 2023 05:30:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231361AbjJFJai (ORCPT ); Fri, 6 Oct 2023 05:30:38 -0400 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1DB0AD6 for ; Fri, 6 Oct 2023 02:30:35 -0700 (PDT) Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-40566f89f6eso18224145e9.3 for ; Fri, 06 Oct 2023 02:30:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1696584633; x=1697189433; darn=vger.kernel.org; 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=hEPgDTMpIXvshpOSSpINtGH8/u8zbO38mo5vAWcHcCQ=; b=k9BtBlJmJR/2qj/wvv+FJu36Ar9VqGV5ju8UKsaW8OfRypR5mQL/VULPKIyZ6I9Nsq Z8vPxSiLv4o9L2X+MUR3VK0nCaIHBdwRGLMd4K7QwcgCCaleRoXh744ZcLa1+J0xPO2P f+RRAu+L/4z2QeBQpvjw56xpc7haD0v08CiSjvmOX0W9LtGlj5j2OzyXzApTGiPg/DA8 IRaxWcqzesRvPQlDxVCO7nmagliW/UV46wAeaLHu/bdmlXvVlqRNbw5yKdVWSeDcJyD3 lJjD225p5W8cX3RGIokr1713dg2wEStmiLPtEfgeIS171kk3m9f42ZFMgdBAVXWCOf97 xiBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696584633; x=1697189433; 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=hEPgDTMpIXvshpOSSpINtGH8/u8zbO38mo5vAWcHcCQ=; b=l9AnfVyKn2dkQCaM5G+QNk85KhEvEEjb7L1Pjn042M+CchxpEoBer4RFU5FqHk8ccQ GTfkFCGyc+hESNmcRvO4M39ngVOYlFrd8cu2MLAdQvk/k4Wi+13LIjzv7xvb25NsGbBC nmJNbvZq/XXPs1tqmCSpirT6TNHbVGDpAAUBV1lMLz5y+tgVsqzmZrJubq9ggh9r8576 ziUElkLvQr8vQQ71MEaVcO5BXunC4xitJasbFU6u16u9COBvYVNMqOZnQxsOW/usWSmt KAVXbATJU929RAV0hOZHbdhEA15zkGM25qmVzup9zJI5N8/OCqRUUjv2GpUsnfdFaN0X E5Tw== X-Gm-Message-State: AOJu0YxnypucjGLC8YTSSYFDM2RxcXwwq85Gt/Bn67MbUeqUY7zJCOs6 T8UErL3orAJvOq5ErSMFq7YblQ== X-Received: by 2002:adf:fb0b:0:b0:31f:c1b5:d4c1 with SMTP id c11-20020adffb0b000000b0031fc1b5d4c1mr6387300wrr.35.1696584633432; Fri, 06 Oct 2023 02:30:33 -0700 (PDT) Received: from alex-rivos.ba.rivosinc.com (amontpellier-656-1-456-62.w92-145.abo.wanadoo.fr. [92.145.124.62]) by smtp.gmail.com with ESMTPSA id c16-20020a5d4f10000000b00324ae863ac1sm1211986wru.35.2023.10.06.02.30.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Oct 2023 02:30:33 -0700 (PDT) From: Alexandre Ghiti To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Mike Rapoport , linux-mm@kvack.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Alexandre Ghiti Subject: [PATCH 1/2] riscv: Don't use PGD entries for the linear mapping Date: Fri, 6 Oct 2023 11:29:29 +0200 Message-Id: <20231006092930.15850-2-alexghiti@rivosinc.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231006092930.15850-1-alexghiti@rivosinc.com> References: <20231006092930.15850-1-alexghiti@rivosinc.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Fri, 06 Oct 2023 02:30:51 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778997949404734806 X-GMAIL-MSGID: 1778997949404734806 Propagating changes at this level is cumbersome as we need to go through all the page tables when that happens (either when changing the permissions or when splitting the mapping). Note that this prevents the use of 4MB mapping for sv32 and 1GB mapping for sv39 in the linear mapping. Signed-off-by: Alexandre Ghiti --- arch/riscv/mm/init.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index 0798bd861dcb..6dc61d3c392f 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -664,16 +664,16 @@ void __init create_pgd_mapping(pgd_t *pgdp, static uintptr_t __init best_map_size(phys_addr_t pa, uintptr_t va, phys_addr_t size) { - if (!(pa & (PGDIR_SIZE - 1)) && !(va & (PGDIR_SIZE - 1)) && size >= PGDIR_SIZE) - return PGDIR_SIZE; - - if (!(pa & (P4D_SIZE - 1)) && !(va & (P4D_SIZE - 1)) && size >= P4D_SIZE) + if (pgtable_l5_enabled && + !(pa & (P4D_SIZE - 1)) && !(va & (P4D_SIZE - 1)) && size >= P4D_SIZE) return P4D_SIZE; - if (!(pa & (PUD_SIZE - 1)) && !(va & (PUD_SIZE - 1)) && size >= PUD_SIZE) + if (pgtable_l4_enabled && + !(pa & (PUD_SIZE - 1)) && !(va & (PUD_SIZE - 1)) && size >= PUD_SIZE) return PUD_SIZE; - if (!(pa & (PMD_SIZE - 1)) && !(va & (PMD_SIZE - 1)) && size >= PMD_SIZE) + if (IS_ENABLED(CONFIG_64BIT) && + !(pa & (PMD_SIZE - 1)) && !(va & (PMD_SIZE - 1)) && size >= PMD_SIZE) return PMD_SIZE; return PAGE_SIZE;