• A
    perf/x86/kvm: Avoid unnecessary work in guest filtering · 9b545c04
    Andi Kleen 提交于
    KVM added a workaround for PEBS events leaking into guests with
    commit:
    
      26a4f3c0 ("perf/x86: disable PEBS on a guest entry.")
    
    This uses the VT entry/exit list to add an extra disable of the
    PEBS_ENABLE MSR.
    
    Intel also added a fix for this issue to microcode updates on
    Haswell/Broadwell/Skylake.
    
    It turns out using the MSR entry/exit list makes VM exits
    significantly slower. The list is only needed for disabling
    PEBS, because the GLOBAL_CTRL change gets optimized by
    KVM into changing the VMCS.
    
    Check for the microcode updates that have the microcode
    fix for leaking PEBS, and disable the extra entry/exit list
    entry for PEBS_ENABLE. In addition we always clear the
    GLOBAL_CTRL for the PEBS counter while running in the guest,
    which is enough to make them never fire at the wrong
    side of the host/guest transition.
    
    The overhead for VM exits with the filtering active with the patch is
    reduced from 8% to 4%.
    
    The microcode patch has already been merged into future platforms.
    This patch is one-off thing. The quirks is used here.
    
    For other old platforms which doesn't have microcode patch and quirks,
    extra disable of the PEBS_ENABLE MSR is still required.
    Signed-off-by: NAndi Kleen <ak@linux.intel.com>
    Signed-off-by: NKan Liang <kan.liang@linux.intel.com>
    Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Cc: bp@alien8.de
    Link: https://lkml.kernel.org/r/1549319013-4522-2-git-send-email-kan.liang@linux.intel.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
    9b545c04
core.c 132.1 KB