|
|
|
|
|
by bogomipz
2708 days ago
|
|
>"Of course, that turns out to be the fix for meltdown, unless you have the process-context identifiers (PCID) available on Haswell chips and newer." Using TSS based switching is incompatible with PCIDs? Or is it incompatible with separate address spaces for user space and kernel space? PCIDs are process ID tags on cache lines correct? |
|
PCIDs are incompatible with older hardware. They are modestly slow. I think the PCID state includes the TLB.
That pretty much means the kernel must support both methods. The PCIDs is used when possible. When the hardware doesn't support PCIDs, Linux must instead reload segment registers and the page table base, either step-by-step in software or via a TSS switch.
BTW, I had to implement x86 hardware task switching for an x86 emulator. The complexity is insane. See my "Who is Hiring?" post if that sounds fun for you.