]> www.infradead.org Git - users/jedix/linux-maple.git/commit
riscv: hwprobe: export highest virtual userspace address
authorClément Léger <cleger@rivosinc.com>
Wed, 10 Apr 2024 14:45:57 +0000 (16:45 +0200)
committerPalmer Dabbelt <palmer@rivosinc.com>
Thu, 11 Jul 2024 15:57:33 +0000 (08:57 -0700)
commitc9b8cd139c1dfb95eb86fd6a58cfe2089843d1d4
tree60e0509f755dfbb1ebc22e52ec6b0a58fc756919
parent16badacd8af48980c546839626d0329bab32b4c3
riscv: hwprobe: export highest virtual userspace address

Some userspace applications (OpenJDK for instance) uses the free MSBs
in pointers to insert additional information for their own logic and
need to get this information from somewhere. Currently they rely on
parsing /proc/cpuinfo "mmu=svxx" string to obtain the current value of
virtual address usable bits [1]. Since this reflect the raw supported
MMU mode, it might differ from the logical one used internally which is
why arch_get_mmap_end() is used. Exporting the highest mmapable address
through hwprobe will allow a more stable interface to be used. For that
purpose, add a new hwprobe key named
RISCV_HWPROBE_KEY_HIGHEST_VIRT_ADDRESS which will export the highest
userspace virtual address.

Link: https://github.com/openjdk/jdk/blob/master/src/hotspot/os_cpu/linux_riscv/vm_version_linux_riscv.cpp#L171
Signed-off-by: Clément Léger <cleger@rivosinc.com>
Reviewed-by: Charlie Jenkins <charlie@rivosinc.com>
Link: https://lore.kernel.org/r/20240410144558.1104006-1-cleger@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Documentation/arch/riscv/hwprobe.rst
arch/riscv/include/asm/hwprobe.h
arch/riscv/include/asm/processor.h
arch/riscv/include/uapi/asm/hwprobe.h
arch/riscv/kernel/sys_hwprobe.c