• David Ahern's avatar
    perf tool: Precise mode requires exclude_guest · 1342798c
    David Ahern authored
    Summary of events per Peter:
    
      "Intel PEBS in VT-x context uses the DS address as a guest linear address,
      even though its programmed by the host as a host linear address. This
      either results in guest memory corruption and or the hardware faulting and
      'crashing' the virtual machine.  Therefore we have to disable PEBS on VT-x
      enter and re-enable on VT-x exit, enforcing a strict exclude_guest.
    
      AMB IBS does work but doesn't currently support exclude_* at all,
      setting an exclude_* bit will make it fail."
    
    This patch handles userspace perf command, setting the exclude_guest
    attribute if precise mode is requested, but only if a user has not
    specified a request for guest or host only profiling (G or H attribute).
    
    Kernel side AMD currently ignores all exclude_* bits, so there is no impact
    to existing IBS code paths. Robert Richter has a patch where IBS code will
    return EINVAL if an exclude_* bit is set. When this goes in it means use
    of :p on AMD with IBS will first fail with EINVAL (because exclude_guest
    will be set). Then the existing fallback code within perf will unset
    exclude_guest and try again. The second attempt will succeed if the CPU
    supports IBS profiling.
    Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
    Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Acked-by: default avatarRobert Richter <robert.richter@amd.com>
    Tested-by: default avatarRobert Richter <robert.richter@amd.com>
    Reviewed-by: default avatarRobert Richter <robert.richter@amd.com>
    Cc: Avi Kivity <avi@redhat.com>
    Cc: Gleb Natapov <gleb@redhat.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Robert Richter <robert.richter@amd.com>
    Link: http://lkml.kernel.org/r/1347569955-54626-2-git-send-email-dsahern@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    1342798c
parse-events.c 25.7 KB