On Thu, 2018-01-11 at 21:03 -0800, Dave Hansen wrote: > On 01/11/2018 07:01 PM, Raj, Ashok wrote: > > On Thu, Jan 11, 2018 at 06:20:13PM -0800, Andy Lutomirski wrote: > >> On Thu, Jan 11, 2018 at 5:52 PM, Raj, Ashok wrote: > >>>> > >>>> What's wrong with native_read_msr()? > >>> > >>> Yes, i think i should have added to msr.h. The names didn't read as a > >>> pair, one was native_read_msr, wrmsrl could be taken over when paravirt is > >>> defined? > >> > >> Why do you need to override paravirt? > >  > > The idea was since these MSR's are passed through we shouldn't need to  > > handle them any differently. Also its best to do this as soon as possible > > and avoid longer paths to get this barrier to hardware. > > We were also worried about the indirect calls that are part of the > paravirt interfaces when retpolines are not in place. I have repeatedly been told that these go away, and are converted to direct branches by the time the kernel is running userspace. I suppose I really ought to validate that with qemu -d in_asm or something. I couldn't see it in the code... but I haven't looked that hard yet.