Nakajima, Jun wrote: > Zachary Amsden wrote: > >> 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. >> > > I don't recommend this for old processors. > > >> 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 >> > > For KVM, it should be okay as well. But we can replace two CR4 accesses > with just one hypercall. >
I was thinking the same thing :-) I was actually thinking about adding a hypercall to set/clear a bit in a control register. The thought here is that it would be useful not just for the global bit but also for CR0.TS although we would need another paravirt_op hook for stts. Regards, Anthony Liguori > Jun > --- > Intel Open Source Technology Center > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel