linux/arch/powerpc
Madhavan Srinivasan 7aa345d842 powerpc/perf: Update default sdar_mode value for power9
Commit 20dd4c624d ('powerpc/perf: Fix SDAR_MODE value for continous
sampling on Power9') set the default sdar_mode value in MMCRA[SDAR_MODE]
to be used as 0b01 (Update on TLB miss). And this value is set if sdar_mode
from event is zero, or we are in continous sampling mode in power9 dd1.

But it is preferred to have the sdar_mode value for power9 as
0b10 (Update on dcache miss) for better sampling updates instead
of 0b01 (Update on TLB miss).

From Anton:

Using a bandwidth test case with a 1MB footprint, I profiled cycles and
chose TLB updates of the SDAR:

  $ perf record -d -e r000400000000001E:u ./bw2001 1M
                        ^
                        SDAR TLB

  $ perf report -D | grep PERF_RECORD_SAMPLE | sed 's/.*addr: //' | sort -u | wc -l
  4

  I get 4 unique addresses. If I ran with dcache misses:

  $ perf record -d -e r000800000000001E:u ./bw2001 1M
                        ^
                        SDAR dcache miss

  $ perf report -D|grep PERF_RECORD_SAMPLE| sed 's/.*addr: //'|sort -u | wc -l
  5217

I get 5217 unique addresses. No surprises here, but it does show why
TLB misses is the wrong event to default to - we get very little useful
information out of it.

Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Acked-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2017-08-10 22:30:04 +10:00
..
boot powerpc/44x/fsp2: Enable eMMC arasan for fsp2 platform 2017-08-10 22:30:04 +10:00
configs powerpc/44x/fsp2: Enable eMMC arasan for fsp2 platform 2017-08-10 22:30:04 +10:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2017-05-02 15:53:46 -07:00
include powerpc: Add irq accounting for watchdog interrupts 2017-08-10 22:30:02 +10:00
kernel powerpc: Add irq accounting for watchdog interrupts 2017-08-10 22:30:02 +10:00
kvm powerpc/mm: Update definitions of DSISR bits 2017-08-03 16:06:43 +10:00
lib powerpc: Fix invalid use of register expressions 2017-08-10 22:29:41 +10:00
math-emu Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
mm powerpc/mm: Properly invalidate when setting process table base 2017-08-10 22:30:03 +10:00
net bpf: Add jited_len to struct bpf_prog 2017-06-06 15:41:24 -04:00
oprofile ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
perf powerpc/perf: Update default sdar_mode value for power9 2017-08-10 22:30:04 +10:00
platforms powerpc/pseries: Check memory device state before onlining/offlining 2017-08-10 22:30:00 +10:00
purgatory powerpc: Fix invalid use of register expressions 2017-08-10 22:29:41 +10:00
sysdev powerpc/xive: Ensure active irqd when setting affinity 2017-08-10 22:30:03 +10:00
tools powerpc/64: Tool to check head sections location sanity 2017-05-30 14:59:51 +10:00
xmon powerpc/xmon: Add patch_instruction() support for xmon 2017-07-03 23:12:19 +10:00
Kconfig powerpc: Fix powerpc-specific watchdog build configuration 2017-08-10 22:30:01 +10:00
Kconfig.debug powerpc/xmon: Enable disassembly files (compilation changes) 2017-02-15 20:02:42 +11:00
Makefile powerpc/configs: Add a powernv_be_defconfig 2017-07-31 16:56:37 +10:00
Makefile.postlink powerpc/64: Tool to check head sections location sanity 2017-05-30 14:59:51 +10:00