Skip to content

Commit 7a0a6d5

Browse files
Nikolay Borisovbp3tk0v
authored andcommitted
x86/docs: Remove reference to syscall trampoline in PTI
Commit bf904d2 ("x86/pti/64: Remove the SYSCALL64 entry trampoline") removed the syscall trampoline and instead opted to enable using the default SYSCALL64 entry point by mapping the percpu TSS. Unfortunately, the PTI documentation wasn't updated when the respective changes were made, so bring the doc up to speed. Signed-off-by: Nikolay Borisov <nik.borisov@suse.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Link: https://lore.kernel.org/r/20231102130204.41043-1-nik.borisov@suse.com
1 parent c645455 commit 7a0a6d5

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

Documentation/arch/x86/pti.rst

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,9 @@ this protection comes at a cost:
8181
and exit (it can be skipped when the kernel is interrupted,
8282
though.) Moves to CR3 are on the order of a hundred
8383
cycles, and are required at every entry and exit.
84-
b. A "trampoline" must be used for SYSCALL entry. This
85-
trampoline depends on a smaller set of resources than the
86-
non-PTI SYSCALL entry code, so requires mapping fewer
87-
things into the userspace page tables. The downside is
88-
that stacks must be switched at entry time.
84+
b. Percpu TSS is mapped into the user page tables to allow SYSCALL64 path
85+
to work under PTI. This doesn't have a direct runtime cost but it can
86+
be argued it opens certain timing attack scenarios.
8987
c. Global pages are disabled for all kernel structures not
9088
mapped into both kernel and userspace page tables. This
9189
feature of the MMU allows different processes to share TLB
@@ -167,7 +165,7 @@ that are worth noting here.
167165
* Failures of the selftests/x86 code. Usually a bug in one of the
168166
more obscure corners of entry_64.S
169167
* Crashes in early boot, especially around CPU bringup. Bugs
170-
in the trampoline code or mappings cause these.
168+
in the mappings cause these.
171169
* Crashes at the first interrupt. Caused by bugs in entry_64.S,
172170
like screwing up a page table switch. Also caused by
173171
incorrectly mapping the IRQ handler entry code.

0 commit comments

Comments
 (0)