android_kernel_xiaomi_sm8350/arch
Paul Mackerras 0bbd0d4be8 perf_counter: powerpc: supply more precise information on counter overflow events
This uses values from the MMCRA, SIAR and SDAR registers on
powerpc to supply more precise information for overflow events,
including a data address when PERF_RECORD_ADDR is specified.

Since POWER6 uses different bit positions in MMCRA from earlier
processors, this converts the struct power_pmu limited_pmc5_6
field, which only had 0/1 values, into a flags field and
defines bit values for its previous use (PPMU_LIMITED_PMC5_6)
and a new flag (PPMU_ALT_SIPR) to indicate that the processor
uses the POWER6 bit positions rather than the earlier
positions.  It also adds definitions in reg.h for the new and
old positions of the bit that indicates that the SIAR and SDAR
values come from the same instruction.

For the data address, the SDAR value is supplied if we are not
doing instruction sampling.  In that case there is no guarantee
that the address given in the PERF_RECORD_ADDR subrecord will
correspond to the instruction whose address is given in the
PERF_RECORD_IP subrecord.

If instruction sampling is enabled (e.g. because this counter
is counting a marked instruction event), then we only supply
the SDAR value for the PERF_RECORD_ADDR subrecord if it
corresponds to the instruction whose address is in the
PERF_RECORD_IP subrecord.  Otherwise we supply 0.

[ Impact: support more PMU hardware features on PowerPC ]

Signed-off-by: Paul Mackerras <paulus@samba.org>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
LKML-Reference: <18955.37028.48861.555309@drongo.ozlabs.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-05-15 16:38:57 +02:00
..
alpha alpha: convert to use __HEAD and HEAD_TEXT macros. 2009-04-26 09:20:38 -07:00
arm arm: Use __INIT macro instead of .text.init. 2009-04-27 19:51:58 -07:00
avr32 clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
blackfin clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
cris tty: Use the generic RS485 ioctl on CRIS 2009-04-07 08:44:05 -07:00
frv FRV: Use __INIT macro instead of .text.init. 2009-04-27 19:46:30 -07:00
h8300 Get rid of final remnants of include/asm-$(ARCH) 2009-04-17 09:59:27 -07:00
ia64 KVM: ia64: fix locking order entering guest 2009-04-22 13:52:09 +03:00
m32r m32r: convert to use __HEAD and HEAD_TEXT macros. 2009-04-26 09:20:38 -07:00
m68k m68k: arch/m68k/kernel/sun3-head.S needs <linux/init.h> 2009-04-28 16:07:18 -07:00
m68knommu Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu 2009-04-24 08:45:53 -07:00
microblaze microblaze: add parameter to microblaze_read() 2009-04-23 16:27:38 +02:00
mips clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
mn10300 mn10300: convert to use __HEAD and HEAD_TEXT macros. 2009-04-26 09:20:38 -07:00
parisc Merge git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6 2009-04-03 09:52:04 -07:00
powerpc perf_counter: powerpc: supply more precise information on counter overflow events 2009-05-15 16:38:57 +02:00
s390 s390: convert to use __HEAD and HEAD_TEXT macros. 2009-04-26 09:20:39 -07:00
sh sh: Use __INIT macro instead of .text.init. 2009-04-27 19:51:58 -07:00
sparc sparc: cleanup references to deprecated .text.init* sections. 2009-04-27 19:51:58 -07:00
um uml: kill a kconfig warning 2009-04-21 13:41:50 -07:00
x86 perf_counter: frequency based adaptive irq_period 2009-05-15 15:26:56 +02:00
xtensa xtensa: convert to use __HEAD and HEAD_TEXT macros. 2009-04-26 09:20:38 -07:00
.gitignore
Kconfig mutex: have non-spinning mutexes on s390 by default 2009-04-09 19:28:24 +02:00