Inter-Processor Interrupts (IPIs) on x86 #19
dimakuv
started this conversation in
Background knowledge
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
See https://wiki.osdev.org/TLB#Multi-processor_consistency for details.
Page permissions, multicore case: the affected memory region must be "TLB invalidated" on all cores (vCPUs). To this end, inter-processor interrupts (IPIs) are used: a vCPU that wishes to change a page mapping writes the operation to a global struct and sends an interrupt 33 to every other vCPU. Each vCPU receives the interrupt, acknowledges the IPI by writing to a shared variable and invalidates the TLB entries. After all vCPUS acknowledged the IPI, the initiating vCPU finalizes the "invalidate TLB" protocol.
From Guest-Host Communication Interface (GHCI) TDX document:
From https://www.sigops.org/s/conferences/sosp/2009/papers/baumann-sosp09.pdf :
We have
IA32_X2APIC_ICR
(Interrupt Command) which is0x830
. Must be accessed via TDG VMCALL.Intel SDM: read Chapter 11.6.
Linux does this:
Beta Was this translation helpful? Give feedback.
All reactions