mbox series

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

Message ID 20230626183611.40479-1-charlie@rivosinc.com (mailing list archive)
Headers show
Series Restrict address space for sv39,sv48,sv57 | expand

Message

Charlie Jenkins June 26, 2023, 6:36 p.m. UTC
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

Comments

Conor Dooley June 27, 2023, 6:24 p.m. UTC | #1
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
>
Charlie Jenkins June 27, 2023, 8:44 p.m. UTC | #2
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
> > 
>
Charlie Jenkins June 27, 2023, 9:07 p.m. UTC | #3
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
> > >
> >