Message ID | 20230714001430.75798-1-charlie@rivosinc.com |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp2192163vqm; Thu, 13 Jul 2023 18:06:19 -0700 (PDT) X-Google-Smtp-Source: APBJJlFdhKSIkQOuM5F0x1JJJWoZXSnyMzVO5aCtMyTnZSXUcg1+b8orx+tmFxjdgE6L88d211fd X-Received: by 2002:a05:6a21:7785:b0:132:f760:20e7 with SMTP id bd5-20020a056a21778500b00132f76020e7mr2495341pzc.3.1689296778875; Thu, 13 Jul 2023 18:06:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689296778; cv=none; d=google.com; s=arc-20160816; b=jBtH1gvXBGs8+OnXh8HjtEw4BPd61YZ4FGa4slMVVWj+aLdacFMMuycoi8pDEib2IU EP463G2CqBuMFTFPfB6GRlCJDso9VJEz7fM/Z4tpjYThL47KdPGA4C0U3l9xEqPMscmT ltxL2ZGf46XDpD+xWDmfy7pvJF2Q29yKp3gJp7WRuYnNl3LsgfG7Kn+9DlNzNjv250UU RBP3Ixsl+ztD+Sc+wU6XYDELkvk00r1B5Z4CIcXPShXAS7LKvI8ukpHznPDHoHggrbTE WqSqGWUbzYnRAtJoZob0Pz3+R7F0X5yviSSN1ewX23ttYXOuVvd7oN4b6EojjdsHoXEd xtxA== 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=7dKdw/fRpGMhPZx5yucAo2VmH/W0zeKNkjERAr97oOc=; fh=My2jiibqoUeMwsqLbgcWgl692t5ymcXdwYlfrhkAJHk=; b=iwdcBykjxhyURlANPJGMwm3JryRhjpu0bABNLz7HsYzUE3ZDda7z0FFC9IWgD779mi AvGRKSSTCrGpVQUBRQ5WL+Ow5TUvXBuP+gtIr0nnreQc+Lgln9U5LJtM7rNOO8UNecPc 8ZCG4K8RlC3SefkU1EeimUwK6sp9thtxAzB0FUN8kjHEk24U+Vjf3sEMmlPj427BsaiQ 1A+9TPlvr/gsMVKwJwPlCHkIB5Y+6SPYfaRLmiDmHUMYk7bvBcb7qcTYuY17if5Pwzpc 5gIH6wRY5JjSS8plqbIx7t8QXYVMhOvWfvdtxrua4x3nLUG84nYjQvhwrdqrxzbzhIrg 7oPA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=DK487UlE; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l1-20020a056a0016c100b006826f351306si6398373pfc.222.2023.07.13.18.06.06; Thu, 13 Jul 2023 18:06:18 -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=DK487UlE; 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 S232893AbjGNAOx (ORCPT <rfc822;ybw1215001957@gmail.com> + 99 others); Thu, 13 Jul 2023 20:14:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231852AbjGNAOw (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Thu, 13 Jul 2023 20:14:52 -0400 Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com [IPv6:2607:f8b0:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F8CE2D46 for <linux-kernel@vger.kernel.org>; Thu, 13 Jul 2023 17:14:51 -0700 (PDT) Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-666e3b15370so998158b3a.0 for <linux-kernel@vger.kernel.org>; Thu, 13 Jul 2023 17:14:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20221208.gappssmtp.com; s=20221208; t=1689293690; x=1689898490; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=7dKdw/fRpGMhPZx5yucAo2VmH/W0zeKNkjERAr97oOc=; b=DK487UlEpW2G5KFRjrV2Qfjy60Qn/3kFcFt39vvQNjsEy/EdjOhr/PmBjKDr5CA3ue oNYqCOjXL+TSPHDxeqvlWpse/XFj2PCH5gOs1+zKgSASKGaJaZdpuXaFcEcq8Rnz3g+y ts2DnoxMIPwZa5nAYgO2k12ohjijX+QJLCxmRGkoqm7IiF1YhtJDNVLQLoyjr/QWeryV sLBQARcgGMGbDvBPNh+ho4raziT+pePlPpswVWZYtwuJDXPVf3INeH9eVA7RV0TqGEU+ p+gBY6VSbMqvdZfHFgkT4xA+5jHK7jye8x+ul57+5ybnNDFunisuInIaNp+Xb9wIXcyi quGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689293690; x=1689898490; 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=7dKdw/fRpGMhPZx5yucAo2VmH/W0zeKNkjERAr97oOc=; b=EqYW9ZPcC2sUaQlY6DRSxE0NZNxLOOERAz5tG7f4NVrc3NPp78SXNaX/TjphSndb8K Wv9lrjbR6RHYLDbHp6Xu2s78LKLmCMVyT20+Z9RSkGEh6ukn6+D6LCgBnCdTF5c0PVs9 2oRtpD5sGsdsTx4edo5ogdB5DrzwojZG0o9HWMioDqCPpZCO3kBTxeTOpRqHzrJiyz+9 r6gcqyMTXeO5dUPS110y0OdW+Pjrg/E+gqeejjmLbzfFrqdyeG1sTZ3sEsJn7VYPHU/W +6n4JPoCgUh1j4yWQ4o7PSBfInEvJ/W4GXCRWhXh9ua6CZ/iusqShPHTtQIABLfPbrkd ojtg== X-Gm-Message-State: ABy/qLaiR9jbktn+MdEIdHmguHzuVyI4sBTOhG/Tq+QgEg0xxdyUzX9w 1dyNp8NEyzH7xOpfEb3RWIOFpX2/78gSH7ow6CY= X-Received: by 2002:a05:6a20:394f:b0:12f:952:11ee with SMTP id r15-20020a056a20394f00b0012f095211eemr2554686pzg.43.1689293690271; Thu, 13 Jul 2023 17:14:50 -0700 (PDT) Received: from charlie.ba.rivosinc.com ([66.220.2.162]) by smtp.gmail.com with ESMTPSA id x25-20020aa793b9000000b00673e652985esm5938107pff.44.2023.07.13.17.14.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jul 2023 17:14:49 -0700 (PDT) From: Charlie Jenkins <charlie@rivosinc.com> To: linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.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 v5 0/4] RISC-V: mm: Make SV48 the default address space Date: Thu, 13 Jul 2023 17:13:59 -0700 Message-ID: <20230714001430.75798-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_BLOCKED,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: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771356059582062363 X-GMAIL-MSGID: 1771356059582062363 |
Series |
RISC-V: mm: Make SV48 the default address space
|
|
Message
Charlie Jenkins
July 14, 2023, 12:13 a.m. UTC
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 --- 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 | 20 ++- arch/riscv/include/asm/processor.h | 46 +++++- tools/testing/selftests/riscv/Makefile | 2 +- tools/testing/selftests/riscv/mm/.gitignore | 1 + tools/testing/selftests/riscv/mm/Makefile | 21 +++ .../selftests/riscv/mm/testcases/mmap.c | 133 ++++++++++++++++++ 8 files changed, 234 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.c
Comments
On Thu, Jul 13, 2023 at 05:13:59PM -0700, Charlie Jenkins wrote: > 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. The patchwork automation failed to apply this, what is the base for the series? > > -Charlie > > --- > 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 | 20 ++- > arch/riscv/include/asm/processor.h | 46 +++++- > tools/testing/selftests/riscv/Makefile | 2 +- > tools/testing/selftests/riscv/mm/.gitignore | 1 + > tools/testing/selftests/riscv/mm/Makefile | 21 +++ > .../selftests/riscv/mm/testcases/mmap.c | 133 ++++++++++++++++++ > 8 files changed, 234 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.c > > -- > 2.41.0 >
On Fri, Jul 14, 2023 at 12:17:00PM +0100, Conor Dooley wrote: > On Thu, Jul 13, 2023 at 05:13:59PM -0700, Charlie Jenkins wrote: > > 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. > > The patchwork automation failed to apply this, what is the base for the > series? I forgot to pull in the changes to the riscv selftests so the conflict is in that Makefile. I will send out a v6 with the correct base. > > > > > -Charlie > > > > --- > > 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 | 20 ++- > > arch/riscv/include/asm/processor.h | 46 +++++- > > tools/testing/selftests/riscv/Makefile | 2 +- > > tools/testing/selftests/riscv/mm/.gitignore | 1 + > > tools/testing/selftests/riscv/mm/Makefile | 21 +++ > > .../selftests/riscv/mm/testcases/mmap.c | 133 ++++++++++++++++++ > > 8 files changed, 234 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.c > > > > -- > > 2.41.0 > >
On Fri, Jul 14, 2023 at 09:36:45AM -0700, Charlie Jenkins wrote: > On Fri, Jul 14, 2023 at 12:17:00PM +0100, Conor Dooley wrote: > > On Thu, Jul 13, 2023 at 05:13:59PM -0700, Charlie Jenkins wrote: > > > 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. > > > > The patchwork automation failed to apply this, what is the base for the > > series? > > I forgot to pull in the changes to the riscv selftests so the conflict > is in that Makefile. I will send out a v6 with the correct base. If you don't actually _depend_ on the content of those changes to the self tests, then just submit on top of v6.5-rc1 & Palmer can sort out the conflicts.