Re: [PATCH 0/3] riscv: mm: Use hint address in mmap if available

From: Charlie Jenkins
Date: Tue Jan 30 2024 - 17:10:21 EST


On Tue, Jan 30, 2024 at 05:04:55PM -0500, Stefan O'Rear wrote:
> On Mon, Jan 29, 2024, at 9:13 PM, Charlie Jenkins wrote:
> > On Mon, Jan 29, 2024 at 09:04:50PM -0500, Stefan O'Rear wrote:
> >> On Mon, Jan 29, 2024, at 7:36 PM, Charlie Jenkins wrote:
> >> > On riscv, mmap currently returns an address from the largest address
> >> > space that can fit entirely inside of the hint address. This makes it
> >> > such that the hint address is almost never returned. This patch raises
> >> > the mappable area up to and including the hint address. This allows mmap
> >> > to often return the hint address, which allows a performance improvement
> >> > over searching for a valid address as well as making the behavior more
> >> > similar to other architectures.
> >>
> >> This means that if an application or library opts in to Sv48 support by
> >> passing a nonzero hint, it will lose the benefits of ASLR.
> >
> > sv48 is default. However your statement stands for opting into sv57.
> > If they always pass the same hint address, only the first address will
> > be deterministic though, correct?
>
> I think this is correct.
>
> >>
> >> Allowing applications to opt in to a VA space smaller than the
> >> architectural minimum seems like an independently useful feature.
> >> Is there a reason to only add it for riscv64?
> >>
> >
> > If there is interest, it can be added to other architectures as well.
>
> I meant as opposed to riscv32.

That is a good point. I can include rv32 as well.

- Charlie

>
> -s
>
> > - Charlie
> >
> >> -s
> >>
> >> > Signed-off-by: Charlie Jenkins <charlie@xxxxxxxxxxxx>
> >> > ---
> >> > Charlie Jenkins (3):
> >> > riscv: mm: Use hint address in mmap if available
> >> > selftests: riscv: Generalize mm selftests
> >> > docs: riscv: Define behavior of mmap
> >> >
> >> > Documentation/arch/riscv/vm-layout.rst | 16 ++--
> >> > arch/riscv/include/asm/processor.h | 21 ++----
> >> > tools/testing/selftests/riscv/mm/mmap_bottomup.c | 20 +----
> >> > tools/testing/selftests/riscv/mm/mmap_default.c | 20 +----
> >> > tools/testing/selftests/riscv/mm/mmap_test.h | 93 +++++++++++++-----------
> >> > 5 files changed, 66 insertions(+), 104 deletions(-)
> >> > ---
> >> > base-commit: 556e2d17cae620d549c5474b1ece053430cd50bc
> >> > change-id: 20240119-use_mmap_hint_address-f9f4b1b6f5f1
> >> > --
> >> > - Charlie
> >> >
> >> >
> >> > _______________________________________________
> >> > linux-riscv mailing list
> >> > linux-riscv@xxxxxxxxxxxxxxxxxxx
> >> > http://lists.infradead.org/mailman/listinfo/linux-riscv
> >
> > _______________________________________________
> > linux-riscv mailing list
> > linux-riscv@xxxxxxxxxxxxxxxxxxx
> > http://lists.infradead.org/mailman/listinfo/linux-riscv