<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div></div><div><br></div><div><span style="background-color: rgba(255, 255, 255, 0);">Newer Intel CPUs implement Process-Context Identifiers (PCIDs), though no BSD or Linux uses them yet AFAIK.</span></div><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">These should help a lot on TLB shoot downs. </span></div><div><a href="http://forum.osdev.org/viewtopic.php?f=1&t=29935">http://forum.osdev.org/viewtopic.php?f=1&t=29935</a></div><div><br></div><div>Though there is a pending patch on CR3 flush during context switch that would preclude same:</div><div><br></div><div><a href="https://patchwork.kernel.org/patch/10138835/">https://patchwork.kernel.org/patch/10138835/</a></div><div><br></div><div>The best layperson accessible write-up I’ve seen is this:</div><div><br></div><div><a href="https://www.theregister.co.uk/2018/01/02/intel_cpu_design_flaw/">https://www.theregister.co.uk/2018/01/02/intel_cpu_design_flaw/</a></div><div><br></div><div>If you just want the cloud rant: <a href="http://market-ticker.org/akcs-www?post=232732">http://market-ticker.org/akcs-www?post=232732</a></div><div><br></div><div>The issue seems to be related to speculative execution. AMD gives a clue:</div><div><br></div><div><a href="https://lkml.org/lkml/2017/12/27/2">https://lkml.org/lkml/2017/12/27/2</a></div><div><br></div><div>I found this pseudocode as a light reading example of what may be occurring</div><div><br></div><div><a href="https://twitter.com/pwnallthethings/status/947978927284383744">https://twitter.com/pwnallthethings/status/947978927284383744</a></div><div><br></div><div>Jim</div></body></html>