Received: by 2002:a05:6358:c692:b0:131:369:b2a3 with SMTP id fe18csp1272076rwb; Wed, 26 Jul 2023 09:57:15 -0700 (PDT) X-Google-Smtp-Source: APBJJlExWBT0CKrbvItqKC/0SDGyq2ve+a0MpZ8mM4jFAs5pdglDH0BNZX5mBZDcBbKDZaJay/sC X-Received: by 2002:a17:902:ce8e:b0:1b3:cf98:a20b with SMTP id f14-20020a170902ce8e00b001b3cf98a20bmr2408653plg.54.1690390634783; Wed, 26 Jul 2023 09:57:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690390634; cv=none; d=google.com; s=arc-20160816; b=c50aM2szKKSiywGbSgJ9Fh/nvWyMdY2BQCFkMM6KON1N/7Vc58JEAPvLut7A2caxae gtnKm01DRTWIPDaBsSR51sHbttjBF22taPI3O+34IGSN5KbpvcayJkJZCdNooN1rntHR TyVN2az4fQx/hApW0M1zBq9+WG3n5Ufc4SJ5v+FNTTKsX+Eid+Egr3s/AkfuKRPu/gsL /nRv2Xo5HLmQK5jNOBgC6kJ6/eHLU6sRaOvI3imeXTsK2rO7+NN0/Q6Y7iGU85+9SaHi 1FB0AEj50Rr8r2PM6xcfrkHAJn8EZlIXFpKbzbiHYO2v7vJ1hOwr253Velc0WhYpMb4U x/Lg== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=taA43ETpLC9XelDxU6ZtNji2uVvqZo51XsvT9ZpAUOw=; fh=7AUu9WDHec3ojD+PBWP8kj3GITT/pOnwiCBaYopXpyU=; b=SCx4lJngsrI6J2fpmfnOX459m2oAH1XbZAi8L8lXaLkHYWv5w7/J9DyZgnbTKQ9ynT 4zRoiAxtQoypQwscKD09iIQpTlIew5n8TsyCQec0p+CzW4xD74sZ8Umh736glOmC5siM jRn9NotBsk+IO3CeRTxtJuiw1/gKig70uG67arDtWylNr9DtIqEGVOoENhXxM7dY9nCr oQrvZVj6YTM1tDdl8c5ZAiUtImXB114Tiyha5ZAwStOrTVx7wahJgvVQYWqebjoRLEPb uk/A423qYFjxTnhLLFKsmEHP0dxsB+St/oBr6o5rRyQc8jjM2/Fa33WhoQJy8iTMGhEQ H9Gg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=FvC2lJyu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n4-20020a170902e54400b001bbb8324bd5si4338695plf.479.2023.07.26.09.56.59; Wed, 26 Jul 2023 09:57:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=FvC2lJyu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231283AbjGZQqg (ORCPT + 99 others); Wed, 26 Jul 2023 12:46:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33244 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230509AbjGZQqe (ORCPT ); Wed, 26 Jul 2023 12:46:34 -0400 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 911FF2709 for ; Wed, 26 Jul 2023 09:46:30 -0700 (PDT) Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-1b8b2b60731so38263175ad.2 for ; Wed, 26 Jul 2023 09:46:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20221208.gappssmtp.com; s=20221208; t=1690389990; x=1690994790; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=taA43ETpLC9XelDxU6ZtNji2uVvqZo51XsvT9ZpAUOw=; b=FvC2lJyuXYn4qnJaI7+KOVJh0twXla/FlufdsG8n4RSldZ3B7RNlD2x6qoYYHsCG3x Pm7oC1f23sp2xNV1JYhGEZH1MwqJodovINYzrqPWcRjdbjXLL/pIvr2Pp9SRCQnP8IMZ MICt+TtUqRrZ0i4msXhSL1QkKiApKuJITU6r2d5O4E2s7W336QWhVYaSnzYrCQCp+upU VOtDFCMAZxrFpnicGTO3V20XHn+DhAKyBc6jkk0r77Oj9sfUCx+LrqJIQA7aoDMJawSx 3JDBCHjNDpL2BM4b2hXKHYNT6jdo0yunz9m3SDMDdjiNcmFJiZY+eiM+xShQNLu5Gz3t c94Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690389990; x=1690994790; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=taA43ETpLC9XelDxU6ZtNji2uVvqZo51XsvT9ZpAUOw=; b=e2afGGy/sD5qkFfuGlD6mlGEkiudvntFTp2HqWw23Rs7HMj6AQ4I2L9XEVt/4X7z/J PSsULLNaqzJQD6v4mk3431DOgb+2S9uA4gXULi/VkB7kXRc6gXfrCHj5ub4WIO1GupzJ oHEuWYu0lhvMhX2152HR0P0VMyjt44EekmfsQhFEWEA2NpqqA4hSPOQYyg+PJl4cSEh4 GcGTehJyfIEYfqG120CDl7W1JKQ8uYXRf7tfNF9WhNgGiwZW3qV9K+aFySX1I4MVAEdK 50DlVOWIUJBpU4EBgeeL+RQVSuaVwOPlEvbfkj40S9knU+6Jrnp3IHdHgH5aonQvCiPz Rx2Q== X-Gm-Message-State: ABy/qLbpOloDyugeAPLcCJMSeM1ig2UJWT+Tm7vnZ6PRJ+BzyZUvvWx+ b8bbfAPoBOpWgDBWfQCndGRXAQ== X-Received: by 2002:a17:903:2308:b0:1b8:aef2:773e with SMTP id d8-20020a170903230800b001b8aef2773emr2582222plh.46.1690389989599; Wed, 26 Jul 2023 09:46:29 -0700 (PDT) Received: from charlie.ba.rivosinc.com ([66.220.2.162]) by smtp.gmail.com with ESMTPSA id h5-20020a170902f54500b001bb6c5ff4edsm11628870plf.173.2023.07.26.09.46.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jul 2023 09:46:29 -0700 (PDT) From: Charlie Jenkins To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Cc: charlie@rivosinc.com, conor@kernel.org, paul.walmsley@sifive.com, palmer@rivosinc.com, aou@eecs.berkeley.edu, anup@brainfault.org, konstantin@linuxfoundation.org, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org, mick@ics.forth.gr, jrtc27@jrtc27.com, rdunlap@infradead.org, alexghiti@rivosinc.com Subject: [PATCH v7 0/4] RISC-V: mm: Make SV48 the default address space Date: Wed, 26 Jul 2023 09:45:54 -0700 Message-ID: <20230726164620.717288-1-charlie@rivosinc.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Make sv48 the default address space for mmap as some applications currently depend on this assumption. Users can now select a desired address space using a non-zero hint address to mmap. Previously, requesting the default address space from mmap by passing zero as the hint address would result in using the largest address space possible. Some applications depend on empty bits in the virtual address space, like Go and Java, so this patch provides more flexibility for application developers. -Charlie --- v7: - Changing RLIMIT_STACK inside of an executing program does not trigger arch_pick_mmap_layout(), so rewrite tests to change RLIMIT_STACK from a script before executing tests. RLIMIT_STACK of infinity forces bottomup mmap allocation. - Make arch_get_mmap_base macro more readible by extracting out the rnd calculation. - Use MMAP_MIN_VA_BITS in TASK_UNMAPPED_BASE to support case when mmap attempts to allocate address smaller than DEFAULT_MAP_WINDOW. - Fix incorrect wording in documentation. v6: - Rebase onto the correct base v5: - Minor wording change in documentation - Change some parenthesis in arch_get_mmap_ macros - Added case for addr==0 in arch_get_mmap_ because without this, programs would crash if RLIMIT_STACK was modified before executing the program. This was tested using the libhugetlbfs tests. v4: - Split testcases/document patch into test cases, in-code documentation, and formal documentation patches - Modified the mmap_base macro to be more legible and better represent memory layout - Fixed documentation to better reflect the implmentation - Renamed DEFAULT_VA_BITS to MMAP_VA_BITS - Added additional test case for rlimit changes --- Charlie Jenkins (4): RISC-V: mm: Restrict address space for sv39,sv48,sv57 RISC-V: mm: Add tests for RISC-V mm RISC-V: mm: Update pgtable comment documentation RISC-V: mm: Document mmap changes Documentation/riscv/vm-layout.rst | 22 +++++++ arch/riscv/include/asm/elf.h | 2 +- arch/riscv/include/asm/pgtable.h | 21 ++++-- arch/riscv/include/asm/processor.h | 47 ++++++++++++-- tools/testing/selftests/riscv/Makefile | 2 +- tools/testing/selftests/riscv/mm/.gitignore | 2 + tools/testing/selftests/riscv/mm/Makefile | 15 +++++ .../riscv/mm/testcases/mmap_bottomup.c | 35 ++++++++++ .../riscv/mm/testcases/mmap_default.c | 35 ++++++++++ .../selftests/riscv/mm/testcases/mmap_test.h | 64 +++++++++++++++++++ .../selftests/riscv/mm/testcases/run_mmap.sh | 12 ++++ 11 files changed, 244 insertions(+), 13 deletions(-) create mode 100644 tools/testing/selftests/riscv/mm/.gitignore create mode 100644 tools/testing/selftests/riscv/mm/Makefile create mode 100644 tools/testing/selftests/riscv/mm/testcases/mmap_bottomup.c create mode 100644 tools/testing/selftests/riscv/mm/testcases/mmap_default.c create mode 100644 tools/testing/selftests/riscv/mm/testcases/mmap_test.h create mode 100755 tools/testing/selftests/riscv/mm/testcases/run_mmap.sh -- 2.41.0