Re: [PATCH 3/3] Eliminate read_cr3 on TLB flush

Zachary Amsden
2007-05-30T17:58:33Z

Nakajima, Jun wrote:
> And actually you don't need the write to CR3 to flush TLB because the
> one to CR4 does it. Or does kvm_flush_tlb_kernel assume that CR3 is
> updated at the same time?
>
> Jun

It should not be necessary, but I believe this was added as a workaround
to a PII erratum. I can't find the erratum, however, and the history of
using G bits in Linux is complicated (several bugs introduced and many
intermediate versions of this code). Since this is not performance
critical, I think it is probably best to leave the CR3 reload.

However, being unnecessary on modern processors, I already submitted a
patch to eliminate it on 64-bit (or maybe just told Andi about it, I
can't recall).

Zach