linux-kernel-test/tools
David Ahern 1342798cc1 perf tool: Precise mode requires exclude_guest
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: David Ahern <dsahern@gmail.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Acked-by: Robert Richter <robert.richter@amd.com>
Tested-by: Robert Richter <robert.richter@amd.com>
Reviewed-by: Robert 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.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2012-10-16 12:43:31 -03:00
..
firewire
hv Tools: hv: verify origin of netlink connector message 2012-06-10 00:29:46 +09:00
include/tools tools/include: Add byteshift headers for endian access 2012-02-28 10:22:51 -08:00
lguest lguest: move the lguest tool to the tools directory 2012-01-12 15:44:47 +10:30
lib/traceevent tools lib traceevent: Fix error path on pevent_parse_event 2012-09-25 09:53:53 -03:00
nfsd
perf perf tool: Precise mode requires exclude_guest 2012-10-16 12:43:31 -03:00
power tools/power: turbostat: fix large c1% issue 2012-07-19 22:26:33 -04:00
scripts perf tools: Let O= makes handle relative paths 2012-08-16 14:11:11 -03:00
testing ktest update for v3.7 2012-10-01 10:13:47 -07:00
usb testusb: expose looping forever option "l" to user 2012-06-13 16:15:03 -07:00
virtio virtio/tools: add delayed interupt mode 2012-05-02 18:22:14 +03:00
vm mm: Fix signal SIGFPE in slabinfo.c. 2012-07-02 23:11:14 +03:00
Makefile tools: Connect to the kernel build system 2012-04-11 15:00:17 -03:00