On 11/01/2017 01:03 AM, Andy Lutomirski wrote: >> This ensures that any futuee context switches will do a full flush >> of the TLB so they pick up the changes. > I'm convuced. What was wrong with the old code? I guess I just don't > see what the problem is that is solved by this patch.
Instead of flushing *now* with INVPCID, this lets us flush *later* with CR3. It just hijacks the code that you already have that flushes CR3 when loading a new ASID by making all ASIDs look new in the future. We have to load CR3 anyway, so we might as well just do this flush then.