forked from Minki/linux
riscv: Explicit comment about user virtual address space size
Define precisely the size of the user accessible virtual space size for sv32/39/48 mmu types and explain why the whole virtual address space is split into 2 equal chunks between kernel and user space. Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com> Reviewed-by: Anup Patel <anup@brainfault.org> Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com> Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
73c7c8f68e
commit
c774de22c4
@ -685,6 +685,15 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
|
||||
/*
|
||||
* Task size is 0x4000000000 for RV64 or 0x9fc00000 for RV32.
|
||||
* Note that PGDIR_SIZE must evenly divide TASK_SIZE.
|
||||
* Task size is:
|
||||
* - 0x9fc00000 (~2.5GB) for RV32.
|
||||
* - 0x4000000000 ( 256GB) for RV64 using SV39 mmu
|
||||
* - 0x800000000000 ( 128TB) for RV64 using SV48 mmu
|
||||
*
|
||||
* Note that PGDIR_SIZE must evenly divide TASK_SIZE since "RISC-V
|
||||
* Instruction Set Manual Volume II: Privileged Architecture" states that
|
||||
* "load and store effective addresses, which are 64bits, must have bits
|
||||
* 63–48 all equal to bit 47, or else a page-fault exception will occur."
|
||||
*/
|
||||
#ifdef CONFIG_64BIT
|
||||
#define TASK_SIZE (PGDIR_SIZE * PTRS_PER_PGD / 2)
|
||||
|
Loading…
Reference in New Issue
Block a user