that translation is specific to a given process and virtual machine. Every TLB entry caches a virtual to physical address translation. Nehalem’s TLB entries have also changed subtly by introducing a “Virtual Processor ID” or VPID. TLBs, Page Tables and Synchronization" Apby David Kanter, that Nehalem added VPID to the TLB to make virtual machine/host switches (vmentry/vmexit) faster: RWT says in their article about Nehalem "Inside Nehalem: Intel’s Future Processor and System.
FILEBEATS CPU OVERHEAD UPDATE
UPDATE - Your question should be about Virtualization, not about process context switch. Can't get exact effect of non-flushing the TLB from his results. There are also results for lower-quality test with 1-3 microseconds for context switch. I can't find results for nehalem (is there lmbench in phoronix suite?), but for core2 and modern Linux context switch may cost 5-7 microseconds.
![filebeats cpu overhead filebeats cpu overhead](https://skidrowrepack.com/uploads/posts/2022-07/highborn-1.jpg)
If you want to find context switch latency, there is lmbench benchmark tool with LAT_CTX test TLB flush, if needed, will add some time to the switch, but it is only small part of total overhead. So, there is lot of time needed for OS kernel to save execution state (all, really all, registers and many special control structures) of current running process to memory, and then load execution state of other process (read in from memory). I'll assume context switch between two processes of the same OS, not the user/kernel mode transition (syscall) which is much faster and needs no TLB flush. As wikipedia knows in its Context switch article, " context switch is the process of storing and restoring the state (context) of a process so that execution can be resumed from the same point at a later time.".