Messages in this thread | | | Date | Fri, 30 Nov 2012 19:10:37 +0100 | From | Borislav Petkov <> | Subject | Re: [PATCH 8/8] x86, cleanups: Simplify sync_core() in the case of no CPUID |
| |
On Fri, Nov 30, 2012 at 10:03:03AM -0800, H. Peter Anvin wrote: > Well, the grand total of serializing instructions are: > > INVD, INVEPT, INVLPG, INVVPID, LGDT, LIDT, LLDT, LTR, MOV to CR, MOV > to DR, WBINVD, WRMSR, CPUID, IRET, RSM.
What about MFENCE with JMP 1f to kill prefetches? Probably too expensive. Oh and MFENCE is an SSE2 insn so maybe not supported by 486 or something later ...
> >From all of the above, the alternatives case is kinda relevant for virt > >where we do text_poke_early in a loop for every alternative section > >so this could pile up to a bunch of vmexits depending on the emulated > >hardware. Might be worth a replacement if it is noticeable in guests. > > This is still boot time, and I really doubt it is measurable in the > long run. Yes, exists suck, but at least CPUID is generally a quick > exit, since all the relevant state is in registers.
Agreed.
-- Regards/Gruss, Boris.
| |