Commit 251a7b3e authored by Peilin Ye's avatar Peilin Ye Committed by Jonathan Corbet

docs: x86: Remove obsolete information about x86_64 vmalloc() faulting

x86_64 vmalloc() mappings are no longer "synchronized" among page tables
via faulting since commit 6eb82f99 ("x86/mm: Pre-allocate P4D/PUD
pages for vmalloc area"), since the corresponding P4D or PUD pages are
now preallocated at boot, by preallocate_vmalloc_pages().  Drop the
"lazily synchronized" description for less confusion.

While this file is x86_64-specific, it is worth noting that things are
different for x86_32, where vmalloc()-related changes to `init_mm.pgd` are
synchronized to all page tables in the system during runtime, via
arch_sync_kernel_mappings().  Unfortunately, this synchronization is
subject to race condition, which is further handled via faulting, see
vmalloc_fault().  See commit 4819e15f ("x86/mm/32: Bring back vmalloc
faulting on x86_32") for more details.
Reviewed-by: default avatarMuchun Song <songmuchun@bytedance.com>
Signed-off-by: default avatarPeilin Ye <peilin.ye@bytedance.com>
Reviewed-by: default avatarJoerg Roedel <jroedel@suse.de>
Link: https://lore.kernel.org/r/20210818220123.2623-1-yepeilin.cs@gmail.comSigned-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent d44f571f
......@@ -140,10 +140,6 @@ The direct mapping covers all memory in the system up to the highest
memory address (this means in some cases it can also include PCI memory
holes).
vmalloc space is lazily synchronized into the different PML4/PML5 pages of
the processes using the page fault handler, with init_top_pgt as
reference.
We map EFI runtime services in the 'efi_pgd' PGD in a 64Gb large virtual
memory window (this size is arbitrary, it can be raised later if needed).
The mappings are not part of any other kernel PGD and are only available
......
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