2023-06-26 19:27:49

by Charlie Jenkins

[permalink] [raw]
Subject: [PATCH 0/2] Restrict address space for sv39,sv48,sv57

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



2023-06-27 18:32:02

by Conor Dooley

[permalink] [raw]
Subject: Re: [PATCH 0/2] Restrict address space for sv39,sv48,sv57

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
>


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

2023-06-27 21:07:35

by Charlie Jenkins

[permalink] [raw]
Subject: Re: [PATCH 0/2] Restrict address space for sv39,sv48,sv57

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 <[email protected]> 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
> >
>

2023-06-27 21:33:59

by Charlie Jenkins

[permalink] [raw]
Subject: Re: [PATCH 0/2] Restrict address space for sv39,sv48,sv57

I see it in patchwork here:
https://patchwork.kernel.org/project/linux-mm/cover/[email protected]/.

On Tue, Jun 27, 2023 at 1:44 PM Charles Jenkins <[email protected]> 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 <[email protected]> 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
> > >
> >