linux/arch/powerpc/perf
Sukadev Bhattiprolu 88a486132d powerpc, perf/powerpc/hv-24x7: Use PMU_TXN_READ interface
The 24x7 counters in Powerpc allow monitoring a large number of counters
simultaneously. They also allow reading several counters in a single
HCALL so we can get a more consistent snapshot of the system.

Use the PMU's transaction interface to monitor and read several event
counters at once. The idea is that users can group several 24x7 events
into a single group of events. We use the following logic to submit
the group of events to the PMU and read the values:

	pmu->start_txn()		// Initialize before first event

	for each event in group
		pmu->read(event);	// Queue each event to be read

	pmu->commit_txn()		// Read/update all queuedcounters

The ->commit_txn() also updates the event counts in the respective
perf_event objects.  The perf subsystem can then directly get the
event counts from the perf_event and can avoid submitting a new
->read() request to the PMU.

Thanks to input from Peter Zijlstra.

Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.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>
Link: http://lkml.kernel.org/r/1441336073-22750-10-git-send-email-sukadev@linux.vnet.ibm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2015-09-13 11:27:29 +02:00
..
req-gen powerpc/perf/{hv-gpci, hv-common}: generate requests with counters annotated 2015-02-02 17:56:39 +11:00
bhrb.S powerpc/perf: Add basic assembly code to read BHRB entries on POWER8 2013-04-26 16:11:11 +10:00
callchain.c powerpc/mm/thp: Make page table walk safe against thp split/collapse 2015-04-17 11:23:39 +10:00
core-book3s.c perf/core: Add a 'flags' parameter to the PMU transactional interfaces 2015-09-13 11:27:25 +02:00
core-fsl-emb.c perf/powerpc: reset event hw state when adding it to the PMU 2015-01-29 23:44:18 -06:00
e500-pmu.c powerpc/perf: Add stalled-cycles events 2013-01-10 17:00:56 +11:00
e6500-pmu.c powerpc/perf: Add e6500 PMU driver 2013-08-07 18:38:04 -05:00
hv-24x7-catalog.h powerpc/perf/hv-24x7: parse catalog and populate sysfs with events 2015-02-02 17:56:38 +11:00
hv-24x7-domains.h powerpc/perf/hv-24x7: parse catalog and populate sysfs with events 2015-02-02 17:56:38 +11:00
hv-24x7.c powerpc, perf/powerpc/hv-24x7: Use PMU_TXN_READ interface 2015-09-13 11:27:29 +02:00
hv-24x7.h powerpc/perf/hv-24x7: Modify definition of request and result buffers 2015-04-11 20:49:21 +10:00
hv-common.c powerpc/perf/{hv-gpci, hv-common}: generate requests with counters annotated 2015-02-02 17:56:39 +11:00
hv-common.h perf: define EVENT_DEFINE_RANGE_FORMAT_LITE helper 2015-02-02 17:56:38 +11:00
hv-gpci-requests.h powerpc/perf/hv-gpci: add the remaining gpci requests 2015-02-02 17:56:39 +11:00
hv-gpci.c powerpc/perf/{hv-gpci, hv-common}: generate requests with counters annotated 2015-02-02 17:56:39 +11:00
hv-gpci.h powerpc/perf/{hv-gpci, hv-common}: generate requests with counters annotated 2015-02-02 17:56:39 +11:00
Makefile powerpc/perf: Add kconfig option for hypervisor provided counters 2014-03-24 09:48:32 +11:00
mpc7450-pmu.c powerpc/perf: Pass the struct perf_events down to compute_mmcr() 2014-07-28 14:30:47 +10:00
power4-pmu.c powerpc/perf: Pass the struct perf_events down to compute_mmcr() 2014-07-28 14:30:47 +10:00
power5+-pmu.c powerpc/perf: Pass the struct perf_events down to compute_mmcr() 2014-07-28 14:30:47 +10:00
power5-pmu.c powerpc/perf: Pass the struct perf_events down to compute_mmcr() 2014-07-28 14:30:47 +10:00
power6-pmu.c powerpc/perf: Pass the struct perf_events down to compute_mmcr() 2014-07-28 14:30:47 +10:00
power7-events-list.h powerpc/perf: Make some new raw event codes available in sysfs 2014-03-24 09:48:23 +11:00
power7-pmu.c powerpc/perf: Pass the struct perf_events down to compute_mmcr() 2014-07-28 14:30:47 +10:00
power8-pmu.c powerpc/perf: Add per-event excludes on Power8 2014-07-28 14:30:58 +10:00
ppc970-pmu.c powerpc/perf: Pass the struct perf_events down to compute_mmcr() 2014-07-28 14:30:47 +10:00