Ralf Baechle wrote:
The code in pgtable-64.h assumes TASK_SIZE is always bigger than a first
level PGDIR_SIZE. This is not the case for 64K pages, where task size is
40 bits (1TB) and a pgd entry can map 42 bits. This leads to
USER_PTRS_PER_PGD being zero for 64K pages.
Do you actually need large address space? The kernel could allow 2, 3 and
4-level pagetables easily but doesn't give that choice currently.
Yes, in some cases. I'd like to benchmark the performance difference
between 2 and 3 level pagetables, so the choice is valuable.