2023-07-14 01:06:05

by Charlie Jenkins

[permalink] [raw]
Subject: [PATCH v5 0/4] RISC-V: mm: Make SV48 the default address space

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

--
2.41.0



2023-07-14 11:43:37

by Conor Dooley

[permalink] [raw]
Subject: Re: [PATCH v5 0/4] RISC-V: mm: Make SV48 the default address space

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
>


Attachments:
(No filename) (2.33 kB)
signature.asc (235.00 B)
Download all attachments

2023-07-14 17:02:02

by Charlie Jenkins

[permalink] [raw]
Subject: Re: [PATCH v5 0/4] RISC-V: mm: Make SV48 the default address space

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
> >



2023-07-14 17:11:45

by Conor Dooley

[permalink] [raw]
Subject: Re: [PATCH v5 0/4] RISC-V: mm: Make SV48 the default address space

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.


Attachments:
(No filename) (1.12 kB)
signature.asc (235.00 B)
Download all attachments