[PATCH 0/2] Restrict address space for sv39,sv48,sv57

Charlie Jenkins posted 2 patches 2 years, 7 months ago
Documentation/riscv/vm-layout.rst             | 20 ++++++++
arch/riscv/include/asm/elf.h                  |  2 +-
arch/riscv/include/asm/pgtable.h              | 21 ++++++--
arch/riscv/include/asm/processor.h            | 41 +++++++++++++---
tools/testing/selftests/riscv/Makefile        |  2 +-
tools/testing/selftests/riscv/mm/Makefile     | 22 +++++++++
.../selftests/riscv/mm/testcases/mmap.c       | 49 +++++++++++++++++++
7 files changed, 144 insertions(+), 13 deletions(-)
create mode 100644 tools/testing/selftests/riscv/mm/Makefile
create mode 100644 tools/testing/selftests/riscv/mm/testcases/mmap.c
[PATCH 0/2] Restrict address space for sv39,sv48,sv57
Posted by Charlie Jenkins 2 years, 7 months ago
Make sv39 the default address space for mmap as some applications
currently depend on this assumption. The RISC-V specification enforces
that bits outside of the virtual address range are not used, so
restricting the size of the default address space as such should be
temporary. A hint address passed to mmap will cause the largest address
space that fits entirely into the hint to be used. If the hint is less
than or equal to 1<<38, a 39-bit address will be used. After an address
space is completely full, the next smallest address space will be used.

Documentation is also added to the RISC-V virtual memory section to explain
these changes.

Charlie Jenkins (2):
  RISC-V: mm: Restrict address space for sv39,sv48,sv57
  RISC-V: mm: Update documentation and include test

 Documentation/riscv/vm-layout.rst             | 20 ++++++++
 arch/riscv/include/asm/elf.h                  |  2 +-
 arch/riscv/include/asm/pgtable.h              | 21 ++++++--
 arch/riscv/include/asm/processor.h            | 41 +++++++++++++---
 tools/testing/selftests/riscv/Makefile        |  2 +-
 tools/testing/selftests/riscv/mm/Makefile     | 22 +++++++++
 .../selftests/riscv/mm/testcases/mmap.c       | 49 +++++++++++++++++++
 7 files changed, 144 insertions(+), 13 deletions(-)
 create mode 100644 tools/testing/selftests/riscv/mm/Makefile
 create mode 100644 tools/testing/selftests/riscv/mm/testcases/mmap.c


base-commit: eef509789cecdce895020682192d32e8bac790e8
-- 
2.34.1
Re: [PATCH 0/2] Restrict address space for sv39,sv48,sv57
Posted by Conor Dooley 2 years, 7 months ago
Hey Charlie,

On Mon, Jun 26, 2023 at 11:36:02AM -0700, Charlie Jenkins wrote:
> Make sv39 the default address space for mmap as some applications
> currently depend on this assumption. The RISC-V specification enforces
> that bits outside of the virtual address range are not used, so
> restricting the size of the default address space as such should be
> temporary. A hint address passed to mmap will cause the largest address
> space that fits entirely into the hint to be used. If the hint is less
> than or equal to 1<<38, a 39-bit address will be used. After an address
> space is completely full, the next smallest address space will be used.
> 
> Documentation is also added to the RISC-V virtual memory section to explain
> these changes.

I don't know what went wrong here, but this never ended up in patchwork
for some reason, although it has appeared on lore. That seems to be via
the docs mailing list, rather than linux-riscv. Could you speak to Atish
and see if he knows what went wrong?

Cheers,
Conor.

> 
> Charlie Jenkins (2):
>   RISC-V: mm: Restrict address space for sv39,sv48,sv57
>   RISC-V: mm: Update documentation and include test
> 
>  Documentation/riscv/vm-layout.rst             | 20 ++++++++
>  arch/riscv/include/asm/elf.h                  |  2 +-
>  arch/riscv/include/asm/pgtable.h              | 21 ++++++--
>  arch/riscv/include/asm/processor.h            | 41 +++++++++++++---
>  tools/testing/selftests/riscv/Makefile        |  2 +-
>  tools/testing/selftests/riscv/mm/Makefile     | 22 +++++++++
>  .../selftests/riscv/mm/testcases/mmap.c       | 49 +++++++++++++++++++
>  7 files changed, 144 insertions(+), 13 deletions(-)
>  create mode 100644 tools/testing/selftests/riscv/mm/Makefile
>  create mode 100644 tools/testing/selftests/riscv/mm/testcases/mmap.c
> 
> 
> base-commit: eef509789cecdce895020682192d32e8bac790e8
> -- 
> 2.34.1
> 
Re: [PATCH 0/2] Restrict address space for sv39,sv48,sv57
Posted by Charles Jenkins 2 years, 7 months ago
I talked to Atish, he's not sure what's going on here either. I am going
to add him to the CC list.

On Tue, Jun 27, 2023 at 11:24 AM Conor Dooley <conor@kernel.org> wrote:

> Hey Charlie,
>
> On Mon, Jun 26, 2023 at 11:36:02AM -0700, Charlie Jenkins wrote:
> > Make sv39 the default address space for mmap as some applications
> > currently depend on this assumption. The RISC-V specification enforces
> > that bits outside of the virtual address range are not used, so
> > restricting the size of the default address space as such should be
> > temporary. A hint address passed to mmap will cause the largest address
> > space that fits entirely into the hint to be used. If the hint is less
> > than or equal to 1<<38, a 39-bit address will be used. After an address
> > space is completely full, the next smallest address space will be used.
> > 
> > Documentation is also added to the RISC-V virtual memory section to 
> explain
> > these changes.
>
> I don't know what went wrong here, but this never ended up in patchwork
> for some reason, although it has appeared on lore. That seems to be via
> the docs mailing list, rather than linux-riscv. Could you speak to Atish
> and see if he knows what went wrong?
>
> Cheers,
> Conor.
>
> > 
> > Charlie Jenkins (2):
> >   RISC-V: mm: Restrict address space for sv39,sv48,sv57
> >   RISC-V: mm: Update documentation and include test
> > 
> >  Documentation/riscv/vm-layout.rst             | 20 ++++++++
> >  arch/riscv/include/asm/elf.h                  |  2 +-
> >  arch/riscv/include/asm/pgtable.h              | 21 ++++++--
> >  arch/riscv/include/asm/processor.h            | 41 +++++++++++++---
> >  tools/testing/selftests/riscv/Makefile        |  2 +-
> >  tools/testing/selftests/riscv/mm/Makefile     | 22 +++++++++
> >  .../selftests/riscv/mm/testcases/mmap.c       | 49 +++++++++++++++++++
> >  7 files changed, 144 insertions(+), 13 deletions(-)
> >  create mode 100644 tools/testing/selftests/riscv/mm/Makefile
> >  create mode 100644 tools/testing/selftests/riscv/mm/testcases/mmap.c
> > 
> > 
> > base-commit: eef509789cecdce895020682192d32e8bac790e8
> > -- 
> > 2.34.1
> > 
>
Re: [PATCH 0/2] Restrict address space for sv39,sv48,sv57
Posted by Charlie Jenkins 2 years, 7 months ago
I see it in patchwork here:
https://patchwork.kernel.org/project/linux-mm/cover/20230626183611.40479-1-charlie@rivosinc.com/.

On Tue, Jun 27, 2023 at 1:44 PM Charles Jenkins <charlie@rivosinc.com> wrote:
>
> I talked to Atish, he's not sure what's going on here either. I am going
> to add him to the CC list.
>
> On Tue, Jun 27, 2023 at 11:24 AM Conor Dooley <conor@kernel.org> wrote:
>
> > Hey Charlie,
> >
> > On Mon, Jun 26, 2023 at 11:36:02AM -0700, Charlie Jenkins wrote:
> > > Make sv39 the default address space for mmap as some applications
> > > currently depend on this assumption. The RISC-V specification enforces
> > > that bits outside of the virtual address range are not used, so
> > > restricting the size of the default address space as such should be
> > > temporary. A hint address passed to mmap will cause the largest address
> > > space that fits entirely into the hint to be used. If the hint is less
> > > than or equal to 1<<38, a 39-bit address will be used. After an address
> > > space is completely full, the next smallest address space will be used.
> > >
> > > Documentation is also added to the RISC-V virtual memory section to
> > explain
> > > these changes.
> >
> > I don't know what went wrong here, but this never ended up in patchwork
> > for some reason, although it has appeared on lore. That seems to be via
> > the docs mailing list, rather than linux-riscv. Could you speak to Atish
> > and see if he knows what went wrong?
> >
> > Cheers,
> > Conor.
> >
> > >
> > > Charlie Jenkins (2):
> > >   RISC-V: mm: Restrict address space for sv39,sv48,sv57
> > >   RISC-V: mm: Update documentation and include test
> > >
> > >  Documentation/riscv/vm-layout.rst             | 20 ++++++++
> > >  arch/riscv/include/asm/elf.h                  |  2 +-
> > >  arch/riscv/include/asm/pgtable.h              | 21 ++++++--
> > >  arch/riscv/include/asm/processor.h            | 41 +++++++++++++---
> > >  tools/testing/selftests/riscv/Makefile        |  2 +-
> > >  tools/testing/selftests/riscv/mm/Makefile     | 22 +++++++++
> > >  .../selftests/riscv/mm/testcases/mmap.c       | 49 +++++++++++++++++++
> > >  7 files changed, 144 insertions(+), 13 deletions(-)
> > >  create mode 100644 tools/testing/selftests/riscv/mm/Makefile
> > >  create mode 100644 tools/testing/selftests/riscv/mm/testcases/mmap.c
> > >
> > >
> > > base-commit: eef509789cecdce895020682192d32e8bac790e8
> > > --
> > > 2.34.1
> > >
> >