nanovms / nanos

A kernel designed to run one and only one application in a virtualized environment
https://nanos.org
Apache License 2.0
2.58k stars 133 forks source link

x86: fix overlapping of kernel addresses with vsyscall page #2023

Closed francescolavra closed 3 months ago

francescolavra commented 3 months ago

In the x86_64 architecture, the KERNEL_LIMIT constant is currently set to 0xfffffffffffff000; if the KASLR process places the kernel near the end of the allowed address range, kernel addresses may overlap with the vsyscall page, which always starts at a fixed address (0xffffffffff600000); this may cause boot failures such as in https://app.circleci.com/pipelines/github/nanovms/nanos/4631/workflows/1400a162-d5c4-478d-8cc8-bdf84ab2536a/jobs/16261. This change fixes the above issue by changing the KERNEL_LIMIT constant to coincide with the start of the vsyscall page.