While this is not likely, it is valid for the MSR_LBR_TOS to contain 0 value, after a test which issues a series of branches, if the number of branches recorded was divisible by the number of LBR msrs. This unfortunately depends on the compiler, the number of LBR registers, and it is not even deterministic between different runs of the test, because interrupts, rescheduling, and various other events can affect total number of branches done. Therefore drop the check, instead of trying to fix it. Signed-off-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx> --- x86/pmu_lbr.c | 1 - 1 file changed, 1 deletion(-) diff --git a/x86/pmu_lbr.c b/x86/pmu_lbr.c index c6f010847..8ca8ed044 100644 --- a/x86/pmu_lbr.c +++ b/x86/pmu_lbr.c @@ -98,7 +98,6 @@ int main(int ac, char **av) lbr_test(); wrmsr(MSR_IA32_DEBUGCTLMSR, 0); - report(rdmsr(MSR_LBR_TOS) != 0, "The guest LBR MSR_LBR_TOS value is good."); for (i = 0; i < max; ++i) { if (!rdmsr(lbr_to + i) || !rdmsr(lbr_from + i)) break; -- 2.26.3