Commit 371a3c20 authored by Charlie Jenkins's avatar Charlie Jenkins Committed by Palmer Dabbelt

docs: riscv: Define behavior of mmap

Define mmap on riscv to not provide an address that uses more bits than
the hint address, if provided.
Signed-off-by: default avatarCharlie Jenkins <charlie@rivosinc.com>
Link: https://lore.kernel.org/r/20240130-use_mmap_hint_address-v3-3-8a655cfa8bcb@rivosinc.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
parent 73d05262
...@@ -144,14 +144,8 @@ passing 0 into the hint address parameter of mmap. On CPUs with an address space ...@@ -144,14 +144,8 @@ passing 0 into the hint address parameter of mmap. On CPUs with an address space
smaller than sv48, the CPU maximum supported address space will be the default. smaller than sv48, the CPU maximum supported address space will be the default.
Software can "opt-in" to receiving VAs from another VA space by providing Software can "opt-in" to receiving VAs from another VA space by providing
a hint address to mmap. A hint address passed to mmap will cause the largest a hint address to mmap. When a hint address is passed to mmap, the returned
address space that fits entirely into the hint to be used, unless there is no address will never use more bits than the hint address. For example, if a hint
space left in the address space. If there is no space available in the requested address of `1 << 40` is passed to mmap, a valid returned address will never use
address space, an address in the next smallest available address space will be bits 41 through 63. If no mappable addresses are available in that range, mmap
returned. will return `MAP_FAILED`.
For example, in order to obtain 48-bit VA space, a hint address greater than
:code:`1 << 47` must be provided. Note that this is 47 due to sv48 userspace
ending at :code:`1 << 47` and the addresses beyond this are reserved for the
kernel. Similarly, to obtain 57-bit VA space addresses, a hint address greater
than or equal to :code:`1 << 56` must be provided.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment