MSR accesses that slows down the hypervisor/host

Konstantin Belousov kostikbel at gmail.com
Thu Sep 17 18:38:35 UTC 2020


On Thu, Sep 17, 2020 at 05:34:22AM +0000, Wei Hu wrote:
> > From: Konstantin Belousov <kostikbel at gmail.com>
> > Sent: Wednesday, September 16, 2020 9:57 PM
> > To: Wei Hu <weh at microsoft.com>
> > Cc: freebsd-hackers at freebsd.org
> > Subject: Re: MSR accesses that slows down the hypervisor/host
> > 
> > Where do you see accesses to MSR_LS_CFG ?  I can only find manipulations of
> > that MSR in init_amd(), and then it is all under check that we are not
> > virtualized.
> > 
> Yes, it is only accessed in init_amd() at boot time. So it is less concerned. MSR_AMDK8_IPM
> is accessed in cpu_idle() all the time, so it is the key place to optimize.
> 
> > For MSR_AMDK8_IPM access in cpu_idle(), it seems that the workaround was
> > applied too wide. It might be that we do not need to do it on recent CPUs, but I
> > need to spent more time looking at datasheets to confirm/deny.
> > 
> > But, do you (hypervisor) indeed allow guest to initiate C1 or deeper idle state ?
> > If not, perhaps as the first measure, we can avoid manipulating
> > MSR_AMDK8_IPM under hypervisor at all.
> 
> You are right a guest cannot initiate C1 or deeper idle state when running on Hyper-V.
> So skipping the read of MSR_AMDK8_IPM when running under this hypervisor would 
> Be a viable solution. 

https://reviews.freebsd.org/D26470


More information about the freebsd-hackers mailing list