On Tue, Mar 29, 2022 at 6:46 AM Like Xu <like.xu.linux@xxxxxxxxx> wrote: > > From: Like Xu <likexu@xxxxxxxxxxx> > > NMI-watchdog is one of the favorite features of kernel developers, > but it does not work in AMD guest even with vPMU enabled and worse, > the system misrepresents this capability via /proc. > > This is a PMC emulation error. KVM does not pass the latest valid > value to perf_event in time when guest NMI-watchdog is running, thus > the perf_event corresponding to the watchdog counter will enter the > old state at some point after the first guest NMI injection, forcing > the hardware register PMC0 to be constantly written to 0x800000000001. > > Meanwhile, the running counter should accurately reflect its new value > based on the latest coordinated pmc->counter (from vPMC's point of view) > rather than the value written directly by the guest. > > Fixes: 168d918f2643 ("KVM: x86: Adjust counter sample period after a wrmsr") > Reported-by: Dongli Cao <caodongli@xxxxxxxxxxxx> > Signed-off-by: Like Xu <likexu@xxxxxxxxxxx> Reviewed-by: Jim Mattson <jmattson@xxxxxxxxxx>