aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/kernel/power4-pmu.c12
-rw-r--r--arch/powerpc/kernel/power5+-pmu.c12
-rw-r--r--arch/powerpc/kernel/power5-pmu.c12
-rw-r--r--arch/powerpc/kernel/power6-pmu.c12
-rw-r--r--arch/powerpc/kernel/ppc970-pmu.c12
-rw-r--r--arch/powerpc/mm/fault.c6
-rw-r--r--arch/x86/kernel/cpu/perf_counter.c32
-rw-r--r--arch/x86/mm/fault.c6
-rw-r--r--include/linux/perf_counter.h36
-rw-r--r--kernel/perf_counter.c20
-rw-r--r--tools/perf/builtin-record.c4
-rw-r--r--tools/perf/builtin-stat.c31
-rw-r--r--tools/perf/builtin-top.c4
-rw-r--r--tools/perf/design.txt28
-rw-r--r--tools/perf/util/parse-events.c44
15 files changed, 136 insertions, 135 deletions
diff --git a/arch/powerpc/kernel/power4-pmu.c b/arch/powerpc/kernel/power4-pmu.c
index 0e94b6857220..73956f084b29 100644
--- a/arch/powerpc/kernel/power4-pmu.c
+++ b/arch/powerpc/kernel/power4-pmu.c
@@ -535,12 +535,12 @@ static void p4_disable_pmc(unsigned int pmc, u64 mmcr[])
535} 535}
536 536
537static int p4_generic_events[] = { 537static int p4_generic_events[] = {
538 [PERF_COUNT_CPU_CYCLES] = 7, 538 [PERF_COUNT_HW_CPU_CYCLES] = 7,
539 [PERF_COUNT_INSTRUCTIONS] = 0x1001, 539 [PERF_COUNT_HW_INSTRUCTIONS] = 0x1001,
540 [PERF_COUNT_CACHE_REFERENCES] = 0x8c10, /* PM_LD_REF_L1 */ 540 [PERF_COUNT_HW_CACHE_REFERENCES] = 0x8c10, /* PM_LD_REF_L1 */
541 [PERF_COUNT_CACHE_MISSES] = 0x3c10, /* PM_LD_MISS_L1 */ 541 [PERF_COUNT_HW_CACHE_MISSES] = 0x3c10, /* PM_LD_MISS_L1 */
542 [PERF_COUNT_BRANCH_INSTRUCTIONS] = 0x330, /* PM_BR_ISSUED */ 542 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = 0x330, /* PM_BR_ISSUED */
543 [PERF_COUNT_BRANCH_MISSES] = 0x331, /* PM_BR_MPRED_CR */ 543 [PERF_COUNT_HW_BRANCH_MISSES] = 0x331, /* PM_BR_MPRED_CR */
544}; 544};
545 545
546#define C(x) PERF_COUNT_HW_CACHE_##x 546#define C(x) PERF_COUNT_HW_CACHE_##x
diff --git a/arch/powerpc/kernel/power5+-pmu.c b/arch/powerpc/kernel/power5+-pmu.c
index bbf2cbb07388..5f8b7741e970 100644
--- a/arch/powerpc/kernel/power5+-pmu.c
+++ b/arch/powerpc/kernel/power5+-pmu.c
@@ -606,12 +606,12 @@ static void power5p_disable_pmc(unsigned int pmc, u64 mmcr[])
606} 606}
607 607
608static int power5p_generic_events[] = { 608static int power5p_generic_events[] = {
609 [PERF_COUNT_CPU_CYCLES] = 0xf, 609 [PERF_COUNT_HW_CPU_CYCLES] = 0xf,
610 [PERF_COUNT_INSTRUCTIONS] = 0x100009, 610 [PERF_COUNT_HW_INSTRUCTIONS] = 0x100009,
611 [PERF_COUNT_CACHE_REFERENCES] = 0x1c10a8, /* LD_REF_L1 */ 611 [PERF_COUNT_HW_CACHE_REFERENCES] = 0x1c10a8, /* LD_REF_L1 */
612 [PERF_COUNT_CACHE_MISSES] = 0x3c1088, /* LD_MISS_L1 */ 612 [PERF_COUNT_HW_CACHE_MISSES] = 0x3c1088, /* LD_MISS_L1 */
613 [PERF_COUNT_BRANCH_INSTRUCTIONS] = 0x230e4, /* BR_ISSUED */ 613 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = 0x230e4, /* BR_ISSUED */
614 [PERF_COUNT_BRANCH_MISSES] = 0x230e5, /* BR_MPRED_CR */ 614 [PERF_COUNT_HW_BRANCH_MISSES] = 0x230e5, /* BR_MPRED_CR */
615}; 615};
616 616
617#define C(x) PERF_COUNT_HW_CACHE_##x 617#define C(x) PERF_COUNT_HW_CACHE_##x
diff --git a/arch/powerpc/kernel/power5-pmu.c b/arch/powerpc/kernel/power5-pmu.c
index 670cf10b91e8..d54723ab627d 100644
--- a/arch/powerpc/kernel/power5-pmu.c
+++ b/arch/powerpc/kernel/power5-pmu.c
@@ -548,12 +548,12 @@ static void power5_disable_pmc(unsigned int pmc, u64 mmcr[])
548} 548}
549 549
550static int power5_generic_events[] = { 550static int power5_generic_events[] = {
551 [PERF_COUNT_CPU_CYCLES] = 0xf, 551 [PERF_COUNT_HW_CPU_CYCLES] = 0xf,
552 [PERF_COUNT_INSTRUCTIONS] = 0x100009, 552 [PERF_COUNT_HW_INSTRUCTIONS] = 0x100009,
553 [PERF_COUNT_CACHE_REFERENCES] = 0x4c1090, /* LD_REF_L1 */ 553 [PERF_COUNT_HW_CACHE_REFERENCES] = 0x4c1090, /* LD_REF_L1 */
554 [PERF_COUNT_CACHE_MISSES] = 0x3c1088, /* LD_MISS_L1 */ 554 [PERF_COUNT_HW_CACHE_MISSES] = 0x3c1088, /* LD_MISS_L1 */
555 [PERF_COUNT_BRANCH_INSTRUCTIONS] = 0x230e4, /* BR_ISSUED */ 555 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = 0x230e4, /* BR_ISSUED */
556 [PERF_COUNT_BRANCH_MISSES] = 0x230e5, /* BR_MPRED_CR */ 556 [PERF_COUNT_HW_BRANCH_MISSES] = 0x230e5, /* BR_MPRED_CR */
557}; 557};
558 558
559#define C(x) PERF_COUNT_HW_CACHE_##x 559#define C(x) PERF_COUNT_HW_CACHE_##x
diff --git a/arch/powerpc/kernel/power6-pmu.c b/arch/powerpc/kernel/power6-pmu.c
index 4da707866097..0cd406ee765b 100644
--- a/arch/powerpc/kernel/power6-pmu.c
+++ b/arch/powerpc/kernel/power6-pmu.c
@@ -466,12 +466,12 @@ static void p6_disable_pmc(unsigned int pmc, u64 mmcr[])
466} 466}
467 467
468static int power6_generic_events[] = { 468static int power6_generic_events[] = {
469 [PERF_COUNT_CPU_CYCLES] = 0x1e, 469 [PERF_COUNT_HW_CPU_CYCLES] = 0x1e,
470 [PERF_COUNT_INSTRUCTIONS] = 2, 470 [PERF_COUNT_HW_INSTRUCTIONS] = 2,
471 [PERF_COUNT_CACHE_REFERENCES] = 0x280030, /* LD_REF_L1 */ 471 [PERF_COUNT_HW_CACHE_REFERENCES] = 0x280030, /* LD_REF_L1 */
472 [PERF_COUNT_CACHE_MISSES] = 0x30000c, /* LD_MISS_L1 */ 472 [PERF_COUNT_HW_CACHE_MISSES] = 0x30000c, /* LD_MISS_L1 */
473 [PERF_COUNT_BRANCH_INSTRUCTIONS] = 0x410a0, /* BR_PRED */ 473 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = 0x410a0, /* BR_PRED */
474 [PERF_COUNT_BRANCH_MISSES] = 0x400052, /* BR_MPRED */ 474 [PERF_COUNT_HW_BRANCH_MISSES] = 0x400052, /* BR_MPRED */
475}; 475};
476 476
477#define C(x) PERF_COUNT_HW_CACHE_##x 477#define C(x) PERF_COUNT_HW_CACHE_##x
diff --git a/arch/powerpc/kernel/ppc970-pmu.c b/arch/powerpc/kernel/ppc970-pmu.c
index 336adf1736af..46a206409420 100644
--- a/arch/powerpc/kernel/ppc970-pmu.c
+++ b/arch/powerpc/kernel/ppc970-pmu.c
@@ -419,12 +419,12 @@ static void p970_disable_pmc(unsigned int pmc, u64 mmcr[])
419} 419}
420 420
421static int ppc970_generic_events[] = { 421static int ppc970_generic_events[] = {
422 [PERF_COUNT_CPU_CYCLES] = 7, 422 [PERF_COUNT_HW_CPU_CYCLES] = 7,
423 [PERF_COUNT_INSTRUCTIONS] = 1, 423 [PERF_COUNT_HW_INSTRUCTIONS] = 1,
424 [PERF_COUNT_CACHE_REFERENCES] = 0x8810, /* PM_LD_REF_L1 */ 424 [PERF_COUNT_HW_CACHE_REFERENCES] = 0x8810, /* PM_LD_REF_L1 */
425 [PERF_COUNT_CACHE_MISSES] = 0x3810, /* PM_LD_MISS_L1 */ 425 [PERF_COUNT_HW_CACHE_MISSES] = 0x3810, /* PM_LD_MISS_L1 */
426 [PERF_COUNT_BRANCH_INSTRUCTIONS] = 0x431, /* PM_BR_ISSUED */ 426 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = 0x431, /* PM_BR_ISSUED */
427 [PERF_COUNT_BRANCH_MISSES] = 0x327, /* PM_GRP_BR_MPRED */ 427 [PERF_COUNT_HW_BRANCH_MISSES] = 0x327, /* PM_GRP_BR_MPRED */
428}; 428};
429 429
430#define C(x) PERF_COUNT_HW_CACHE_##x 430#define C(x) PERF_COUNT_HW_CACHE_##x
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index ac0e112031b2..5beffc8f481e 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -171,7 +171,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
171 die("Weird page fault", regs, SIGSEGV); 171 die("Weird page fault", regs, SIGSEGV);
172 } 172 }
173 173
174 perf_swcounter_event(PERF_COUNT_PAGE_FAULTS, 1, 0, regs, address); 174 perf_swcounter_event(PERF_COUNT_SW_PAGE_FAULTS, 1, 0, regs, address);
175 175
176 /* When running in the kernel we expect faults to occur only to 176 /* When running in the kernel we expect faults to occur only to
177 * addresses in user space. All other faults represent errors in the 177 * addresses in user space. All other faults represent errors in the
@@ -312,7 +312,7 @@ good_area:
312 } 312 }
313 if (ret & VM_FAULT_MAJOR) { 313 if (ret & VM_FAULT_MAJOR) {
314 current->maj_flt++; 314 current->maj_flt++;
315 perf_swcounter_event(PERF_COUNT_PAGE_FAULTS_MAJ, 1, 0, 315 perf_swcounter_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, 0,
316 regs, address); 316 regs, address);
317#ifdef CONFIG_PPC_SMLPAR 317#ifdef CONFIG_PPC_SMLPAR
318 if (firmware_has_feature(FW_FEATURE_CMO)) { 318 if (firmware_has_feature(FW_FEATURE_CMO)) {
@@ -323,7 +323,7 @@ good_area:
323#endif 323#endif
324 } else { 324 } else {
325 current->min_flt++; 325 current->min_flt++;
326 perf_swcounter_event(PERF_COUNT_PAGE_FAULTS_MIN, 1, 0, 326 perf_swcounter_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, 0,
327 regs, address); 327 regs, address);
328 } 328 }
329 up_read(&mm->mmap_sem); 329 up_read(&mm->mmap_sem);
diff --git a/arch/x86/kernel/cpu/perf_counter.c b/arch/x86/kernel/cpu/perf_counter.c
index 57ae1bec81be..572fb434a666 100644
--- a/arch/x86/kernel/cpu/perf_counter.c
+++ b/arch/x86/kernel/cpu/perf_counter.c
@@ -69,13 +69,13 @@ static DEFINE_PER_CPU(struct cpu_hw_counters, cpu_hw_counters) = {
69 */ 69 */
70static const u64 intel_perfmon_event_map[] = 70static const u64 intel_perfmon_event_map[] =
71{ 71{
72 [PERF_COUNT_CPU_CYCLES] = 0x003c, 72 [PERF_COUNT_HW_CPU_CYCLES] = 0x003c,
73 [PERF_COUNT_INSTRUCTIONS] = 0x00c0, 73 [PERF_COUNT_HW_INSTRUCTIONS] = 0x00c0,
74 [PERF_COUNT_CACHE_REFERENCES] = 0x4f2e, 74 [PERF_COUNT_HW_CACHE_REFERENCES] = 0x4f2e,
75 [PERF_COUNT_CACHE_MISSES] = 0x412e, 75 [PERF_COUNT_HW_CACHE_MISSES] = 0x412e,
76 [PERF_COUNT_BRANCH_INSTRUCTIONS] = 0x00c4, 76 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = 0x00c4,
77 [PERF_COUNT_BRANCH_MISSES] = 0x00c5, 77 [PERF_COUNT_HW_BRANCH_MISSES] = 0x00c5,
78 [PERF_COUNT_BUS_CYCLES] = 0x013c, 78 [PERF_COUNT_HW_BUS_CYCLES] = 0x013c,
79}; 79};
80 80
81static u64 intel_pmu_event_map(int event) 81static u64 intel_pmu_event_map(int event)
@@ -485,12 +485,12 @@ static const u64 amd_0f_hw_cache_event_ids
485 */ 485 */
486static const u64 amd_perfmon_event_map[] = 486static const u64 amd_perfmon_event_map[] =
487{ 487{
488 [PERF_COUNT_CPU_CYCLES] = 0x0076, 488 [PERF_COUNT_HW_CPU_CYCLES] = 0x0076,
489 [PERF_COUNT_INSTRUCTIONS] = 0x00c0, 489 [PERF_COUNT_HW_INSTRUCTIONS] = 0x00c0,
490 [PERF_COUNT_CACHE_REFERENCES] = 0x0080, 490 [PERF_COUNT_HW_CACHE_REFERENCES] = 0x0080,
491 [PERF_COUNT_CACHE_MISSES] = 0x0081, 491 [PERF_COUNT_HW_CACHE_MISSES] = 0x0081,
492 [PERF_COUNT_BRANCH_INSTRUCTIONS] = 0x00c4, 492 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = 0x00c4,
493 [PERF_COUNT_BRANCH_MISSES] = 0x00c5, 493 [PERF_COUNT_HW_BRANCH_MISSES] = 0x00c5,
494}; 494};
495 495
496static u64 amd_pmu_event_map(int event) 496static u64 amd_pmu_event_map(int event)
@@ -970,11 +970,11 @@ fixed_mode_idx(struct perf_counter *counter, struct hw_perf_counter *hwc)
970 970
971 event = hwc->config & ARCH_PERFMON_EVENT_MASK; 971 event = hwc->config & ARCH_PERFMON_EVENT_MASK;
972 972
973 if (unlikely(event == x86_pmu.event_map(PERF_COUNT_INSTRUCTIONS))) 973 if (unlikely(event == x86_pmu.event_map(PERF_COUNT_HW_INSTRUCTIONS)))
974 return X86_PMC_IDX_FIXED_INSTRUCTIONS; 974 return X86_PMC_IDX_FIXED_INSTRUCTIONS;
975 if (unlikely(event == x86_pmu.event_map(PERF_COUNT_CPU_CYCLES))) 975 if (unlikely(event == x86_pmu.event_map(PERF_COUNT_HW_CPU_CYCLES)))
976 return X86_PMC_IDX_FIXED_CPU_CYCLES; 976 return X86_PMC_IDX_FIXED_CPU_CYCLES;
977 if (unlikely(event == x86_pmu.event_map(PERF_COUNT_BUS_CYCLES))) 977 if (unlikely(event == x86_pmu.event_map(PERF_COUNT_HW_BUS_CYCLES)))
978 return X86_PMC_IDX_FIXED_BUS_CYCLES; 978 return X86_PMC_IDX_FIXED_BUS_CYCLES;
979 979
980 return -1; 980 return -1;
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 6f9df2babe48..5c6d816f30b4 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -1045,7 +1045,7 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
1045 if (unlikely(error_code & PF_RSVD)) 1045 if (unlikely(error_code & PF_RSVD))
1046 pgtable_bad(regs, error_code, address); 1046 pgtable_bad(regs, error_code, address);
1047 1047
1048 perf_swcounter_event(PERF_COUNT_PAGE_FAULTS, 1, 0, regs, address); 1048 perf_swcounter_event(PERF_COUNT_SW_PAGE_FAULTS, 1, 0, regs, address);
1049 1049
1050 /* 1050 /*
1051 * If we're in an interrupt, have no user context or are running 1051 * If we're in an interrupt, have no user context or are running
@@ -1142,11 +1142,11 @@ good_area:
1142 1142
1143 if (fault & VM_FAULT_MAJOR) { 1143 if (fault & VM_FAULT_MAJOR) {
1144 tsk->maj_flt++; 1144 tsk->maj_flt++;
1145 perf_swcounter_event(PERF_COUNT_PAGE_FAULTS_MAJ, 1, 0, 1145 perf_swcounter_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, 0,
1146 regs, address); 1146 regs, address);
1147 } else { 1147 } else {
1148 tsk->min_flt++; 1148 tsk->min_flt++;
1149 perf_swcounter_event(PERF_COUNT_PAGE_FAULTS_MIN, 1, 0, 1149 perf_swcounter_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, 0,
1150 regs, address); 1150 regs, address);
1151 } 1151 }
1152 1152
diff --git a/include/linux/perf_counter.h b/include/linux/perf_counter.h
index d5911b02bc8c..887df88a9c2a 100644
--- a/include/linux/perf_counter.h
+++ b/include/linux/perf_counter.h
@@ -42,15 +42,15 @@ enum perf_hw_id {
42 /* 42 /*
43 * Common hardware events, generalized by the kernel: 43 * Common hardware events, generalized by the kernel:
44 */ 44 */
45 PERF_COUNT_CPU_CYCLES = 0, 45 PERF_COUNT_HW_CPU_CYCLES = 0,
46 PERF_COUNT_INSTRUCTIONS = 1, 46 PERF_COUNT_HW_INSTRUCTIONS = 1,
47 PERF_COUNT_CACHE_REFERENCES = 2, 47 PERF_COUNT_HW_CACHE_REFERENCES = 2,
48 PERF_COUNT_CACHE_MISSES = 3, 48 PERF_COUNT_HW_CACHE_MISSES = 3,
49 PERF_COUNT_BRANCH_INSTRUCTIONS = 4, 49 PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4,
50 PERF_COUNT_BRANCH_MISSES = 5, 50 PERF_COUNT_HW_BRANCH_MISSES = 5,
51 PERF_COUNT_BUS_CYCLES = 6, 51 PERF_COUNT_HW_BUS_CYCLES = 6,
52 52
53 PERF_HW_EVENTS_MAX, /* non ABI */ 53 PERF_COUNT_HW_MAX, /* non ABI */
54}; 54};
55 55
56/* 56/*
@@ -93,15 +93,15 @@ enum perf_hw_cache_op_result_id {
93 * well): 93 * well):
94 */ 94 */
95enum perf_sw_ids { 95enum perf_sw_ids {
96 PERF_COUNT_CPU_CLOCK = 0, 96 PERF_COUNT_SW_CPU_CLOCK = 0,
97 PERF_COUNT_TASK_CLOCK = 1, 97 PERF_COUNT_SW_TASK_CLOCK = 1,
98 PERF_COUNT_PAGE_FAULTS = 2, 98 PERF_COUNT_SW_PAGE_FAULTS = 2,
99 PERF_COUNT_CONTEXT_SWITCHES = 3, 99 PERF_COUNT_SW_CONTEXT_SWITCHES = 3,
100 PERF_COUNT_CPU_MIGRATIONS = 4, 100 PERF_COUNT_SW_CPU_MIGRATIONS = 4,
101 PERF_COUNT_PAGE_FAULTS_MIN = 5, 101 PERF_COUNT_SW_PAGE_FAULTS_MIN = 5,
102 PERF_COUNT_PAGE_FAULTS_MAJ = 6, 102 PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6,
103 103
104 PERF_SW_EVENTS_MAX, /* non ABI */ 104 PERF_COUNT_SW_MAX, /* non ABI */
105}; 105};
106 106
107/* 107/*
diff --git a/kernel/perf_counter.c b/kernel/perf_counter.c
index c02535bed26f..8859b97390ec 100644
--- a/kernel/perf_counter.c
+++ b/kernel/perf_counter.c
@@ -1024,7 +1024,7 @@ void perf_counter_task_sched_out(struct task_struct *task,
1024 int do_switch = 1; 1024 int do_switch = 1;
1025 1025
1026 regs = task_pt_regs(task); 1026 regs = task_pt_regs(task);
1027 perf_swcounter_event(PERF_COUNT_CONTEXT_SWITCHES, 1, 1, regs, 0); 1027 perf_swcounter_event(PERF_COUNT_SW_CONTEXT_SWITCHES, 1, 1, regs, 0);
1028 1028
1029 if (likely(!ctx || !cpuctx->task_ctx)) 1029 if (likely(!ctx || !cpuctx->task_ctx))
1030 return; 1030 return;
@@ -3411,13 +3411,13 @@ void perf_counter_task_migration(struct task_struct *task, int cpu)
3411 struct perf_counter_context *ctx; 3411 struct perf_counter_context *ctx;
3412 3412
3413 perf_swcounter_ctx_event(&cpuctx->ctx, PERF_TYPE_SOFTWARE, 3413 perf_swcounter_ctx_event(&cpuctx->ctx, PERF_TYPE_SOFTWARE,
3414 PERF_COUNT_CPU_MIGRATIONS, 3414 PERF_COUNT_SW_CPU_MIGRATIONS,
3415 1, 1, NULL, 0); 3415 1, 1, NULL, 0);
3416 3416
3417 ctx = perf_pin_task_context(task); 3417 ctx = perf_pin_task_context(task);
3418 if (ctx) { 3418 if (ctx) {
3419 perf_swcounter_ctx_event(ctx, PERF_TYPE_SOFTWARE, 3419 perf_swcounter_ctx_event(ctx, PERF_TYPE_SOFTWARE,
3420 PERF_COUNT_CPU_MIGRATIONS, 3420 PERF_COUNT_SW_CPU_MIGRATIONS,
3421 1, 1, NULL, 0); 3421 1, 1, NULL, 0);
3422 perf_unpin_context(ctx); 3422 perf_unpin_context(ctx);
3423 } 3423 }
@@ -3475,11 +3475,11 @@ static const struct pmu *sw_perf_counter_init(struct perf_counter *counter)
3475 * events. 3475 * events.
3476 */ 3476 */
3477 switch (counter->attr.config) { 3477 switch (counter->attr.config) {
3478 case PERF_COUNT_CPU_CLOCK: 3478 case PERF_COUNT_SW_CPU_CLOCK:
3479 pmu = &perf_ops_cpu_clock; 3479 pmu = &perf_ops_cpu_clock;
3480 3480
3481 break; 3481 break;
3482 case PERF_COUNT_TASK_CLOCK: 3482 case PERF_COUNT_SW_TASK_CLOCK:
3483 /* 3483 /*
3484 * If the user instantiates this as a per-cpu counter, 3484 * If the user instantiates this as a per-cpu counter,
3485 * use the cpu_clock counter instead. 3485 * use the cpu_clock counter instead.
@@ -3490,11 +3490,11 @@ static const struct pmu *sw_perf_counter_init(struct perf_counter *counter)
3490 pmu = &perf_ops_cpu_clock; 3490 pmu = &perf_ops_cpu_clock;
3491 3491
3492 break; 3492 break;
3493 case PERF_COUNT_PAGE_FAULTS: 3493 case PERF_COUNT_SW_PAGE_FAULTS:
3494 case PERF_COUNT_PAGE_FAULTS_MIN: 3494 case PERF_COUNT_SW_PAGE_FAULTS_MIN:
3495 case PERF_COUNT_PAGE_FAULTS_MAJ: 3495 case PERF_COUNT_SW_PAGE_FAULTS_MAJ:
3496 case PERF_COUNT_CONTEXT_SWITCHES: 3496 case PERF_COUNT_SW_CONTEXT_SWITCHES:
3497 case PERF_COUNT_CPU_MIGRATIONS: 3497 case PERF_COUNT_SW_CPU_MIGRATIONS:
3498 pmu = &perf_ops_generic; 3498 pmu = &perf_ops_generic;
3499 break; 3499 break;
3500 } 3500 }
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 84cd336ae79b..29259e74dcfa 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -378,12 +378,12 @@ try_again:
378 * is always available even if no PMU support: 378 * is always available even if no PMU support:
379 */ 379 */
380 if (attr->type == PERF_TYPE_HARDWARE 380 if (attr->type == PERF_TYPE_HARDWARE
381 && attr->config == PERF_COUNT_CPU_CYCLES) { 381 && attr->config == PERF_COUNT_HW_CPU_CYCLES) {
382 382
383 if (verbose) 383 if (verbose)
384 warning(" ... trying to fall back to cpu-clock-ticks\n"); 384 warning(" ... trying to fall back to cpu-clock-ticks\n");
385 attr->type = PERF_TYPE_SOFTWARE; 385 attr->type = PERF_TYPE_SOFTWARE;
386 attr->config = PERF_COUNT_CPU_CLOCK; 386 attr->config = PERF_COUNT_SW_CPU_CLOCK;
387 goto try_again; 387 goto try_again;
388 } 388 }
389 printf("\n"); 389 printf("\n");
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 6404906924fa..c43e4a97dc42 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -46,15 +46,16 @@
46 46
47static struct perf_counter_attr default_attrs[MAX_COUNTERS] = { 47static struct perf_counter_attr default_attrs[MAX_COUNTERS] = {
48 48
49 { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_TASK_CLOCK }, 49 { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_TASK_CLOCK },
50 { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_CONTEXT_SWITCHES }, 50 { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_CONTEXT_SWITCHES},
51 { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_CPU_MIGRATIONS }, 51 { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_CPU_MIGRATIONS },
52 { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_PAGE_FAULTS }, 52 { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_PAGE_FAULTS },
53 53
54 { .type = PERF_TYPE_HARDWARE, .config = PERF_COUNT_CPU_CYCLES }, 54 { .type = PERF_TYPE_HARDWARE, .config = PERF_COUNT_HW_CPU_CYCLES },
55 { .type = PERF_TYPE_HARDWARE, .config = PERF_COUNT_INSTRUCTIONS }, 55 { .type = PERF_TYPE_HARDWARE, .config = PERF_COUNT_HW_INSTRUCTIONS },
56 { .type = PERF_TYPE_HARDWARE, .config = PERF_COUNT_CACHE_REFERENCES }, 56 { .type = PERF_TYPE_HARDWARE, .config = PERF_COUNT_HW_CACHE_REFERENCES},
57 { .type = PERF_TYPE_HARDWARE, .config = PERF_COUNT_CACHE_MISSES }, 57 { .type = PERF_TYPE_HARDWARE, .config = PERF_COUNT_HW_CACHE_MISSES },
58
58}; 59};
59 60
60static int system_wide = 0; 61static int system_wide = 0;
@@ -120,10 +121,10 @@ static inline int nsec_counter(int counter)
120 if (attrs[counter].type != PERF_TYPE_SOFTWARE) 121 if (attrs[counter].type != PERF_TYPE_SOFTWARE)
121 return 0; 122 return 0;
122 123
123 if (attrs[counter].config == PERF_COUNT_CPU_CLOCK) 124 if (attrs[counter].config == PERF_COUNT_SW_CPU_CLOCK)
124 return 1; 125 return 1;
125 126
126 if (attrs[counter].config == PERF_COUNT_TASK_CLOCK) 127 if (attrs[counter].config == PERF_COUNT_SW_TASK_CLOCK)
127 return 1; 128 return 1;
128 129
129 return 0; 130 return 0;
@@ -176,10 +177,10 @@ static void read_counter(int counter)
176 * Save the full runtime - to allow normalization during printout: 177 * Save the full runtime - to allow normalization during printout:
177 */ 178 */
178 if (attrs[counter].type == PERF_TYPE_SOFTWARE && 179 if (attrs[counter].type == PERF_TYPE_SOFTWARE &&
179 attrs[counter].config == PERF_COUNT_TASK_CLOCK) 180 attrs[counter].config == PERF_COUNT_SW_TASK_CLOCK)
180 runtime_nsecs = count[0]; 181 runtime_nsecs = count[0];
181 if (attrs[counter].type == PERF_TYPE_HARDWARE && 182 if (attrs[counter].type == PERF_TYPE_HARDWARE &&
182 attrs[counter].config == PERF_COUNT_CPU_CYCLES) 183 attrs[counter].config == PERF_COUNT_HW_CPU_CYCLES)
183 runtime_cycles = count[0]; 184 runtime_cycles = count[0];
184} 185}
185 186
@@ -206,7 +207,7 @@ static void print_counter(int counter)
206 fprintf(stderr, " %14.6f %-20s", 207 fprintf(stderr, " %14.6f %-20s",
207 msecs, event_name(counter)); 208 msecs, event_name(counter));
208 if (attrs[counter].type == PERF_TYPE_SOFTWARE && 209 if (attrs[counter].type == PERF_TYPE_SOFTWARE &&
209 attrs[counter].config == PERF_COUNT_TASK_CLOCK) { 210 attrs[counter].config == PERF_COUNT_SW_TASK_CLOCK) {
210 211
211 if (walltime_nsecs) 212 if (walltime_nsecs)
212 fprintf(stderr, " # %11.3f CPU utilization factor", 213 fprintf(stderr, " # %11.3f CPU utilization factor",
@@ -220,7 +221,7 @@ static void print_counter(int counter)
220 (double)count[0]/runtime_nsecs*1000.0); 221 (double)count[0]/runtime_nsecs*1000.0);
221 if (runtime_cycles && 222 if (runtime_cycles &&
222 attrs[counter].type == PERF_TYPE_HARDWARE && 223 attrs[counter].type == PERF_TYPE_HARDWARE &&
223 attrs[counter].config == PERF_COUNT_INSTRUCTIONS) { 224 attrs[counter].config == PERF_COUNT_HW_INSTRUCTIONS) {
224 225
225 fprintf(stderr, " # %1.3f per cycle", 226 fprintf(stderr, " # %1.3f per cycle",
226 (double)count[0] / (double)runtime_cycles); 227 (double)count[0] / (double)runtime_cycles);
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 309dbc76ec88..fe338d3c5d7e 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -562,13 +562,13 @@ try_again:
562 * is always available even if no PMU support: 562 * is always available even if no PMU support:
563 */ 563 */
564 if (attr->type == PERF_TYPE_HARDWARE 564 if (attr->type == PERF_TYPE_HARDWARE
565 && attr->config == PERF_COUNT_CPU_CYCLES) { 565 && attr->config == PERF_COUNT_HW_CPU_CYCLES) {
566 566
567 if (verbose) 567 if (verbose)
568 warning(" ... trying to fall back to cpu-clock-ticks\n"); 568 warning(" ... trying to fall back to cpu-clock-ticks\n");
569 569
570 attr->type = PERF_TYPE_SOFTWARE; 570 attr->type = PERF_TYPE_SOFTWARE;
571 attr->config = PERF_COUNT_CPU_CLOCK; 571 attr->config = PERF_COUNT_SW_CPU_CLOCK;
572 goto try_again; 572 goto try_again;
573 } 573 }
574 printf("\n"); 574 printf("\n");
diff --git a/tools/perf/design.txt b/tools/perf/design.txt
index d3250763dc92..860e116d979c 100644
--- a/tools/perf/design.txt
+++ b/tools/perf/design.txt
@@ -99,13 +99,13 @@ enum hw_event_ids {
99 /* 99 /*
100 * Common hardware events, generalized by the kernel: 100 * Common hardware events, generalized by the kernel:
101 */ 101 */
102 PERF_COUNT_CPU_CYCLES = 0, 102 PERF_COUNT_HW_CPU_CYCLES = 0,
103 PERF_COUNT_INSTRUCTIONS = 1, 103 PERF_COUNT_HW_INSTRUCTIONS = 1,
104 PERF_COUNT_CACHE_REFERENCES = 2, 104 PERF_COUNT_HW_CACHE_REFERENCES = 2,
105 PERF_COUNT_CACHE_MISSES = 3, 105 PERF_COUNT_HW_CACHE_MISSES = 3,
106 PERF_COUNT_BRANCH_INSTRUCTIONS = 4, 106 PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4,
107 PERF_COUNT_BRANCH_MISSES = 5, 107 PERF_COUNT_HW_BRANCH_MISSES = 5,
108 PERF_COUNT_BUS_CYCLES = 6, 108 PERF_COUNT_HW_BUS_CYCLES = 6,
109}; 109};
110 110
111These are standardized types of events that work relatively uniformly 111These are standardized types of events that work relatively uniformly
@@ -130,13 +130,13 @@ software events, selected by 'event_id':
130 * well): 130 * well):
131 */ 131 */
132enum sw_event_ids { 132enum sw_event_ids {
133 PERF_COUNT_CPU_CLOCK = 0, 133 PERF_COUNT_SW_CPU_CLOCK = 0,
134 PERF_COUNT_TASK_CLOCK = 1, 134 PERF_COUNT_SW_TASK_CLOCK = 1,
135 PERF_COUNT_PAGE_FAULTS = 2, 135 PERF_COUNT_SW_PAGE_FAULTS = 2,
136 PERF_COUNT_CONTEXT_SWITCHES = 3, 136 PERF_COUNT_SW_CONTEXT_SWITCHES = 3,
137 PERF_COUNT_CPU_MIGRATIONS = 4, 137 PERF_COUNT_SW_CPU_MIGRATIONS = 4,
138 PERF_COUNT_PAGE_FAULTS_MIN = 5, 138 PERF_COUNT_SW_PAGE_FAULTS_MIN = 5,
139 PERF_COUNT_PAGE_FAULTS_MAJ = 6, 139 PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6,
140}; 140};
141 141
142Counters of the type PERF_TYPE_TRACEPOINT are available when the ftrace event 142Counters of the type PERF_TYPE_TRACEPOINT are available when the ftrace event
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index f18a9a006e1b..9d5f1ca50e6f 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -22,26 +22,26 @@ struct event_symbol {
22#define CR(x, y) .type = PERF_TYPE_##x, .config = y 22#define CR(x, y) .type = PERF_TYPE_##x, .config = y
23 23
24static struct event_symbol event_symbols[] = { 24static struct event_symbol event_symbols[] = {
25 { C(HARDWARE, CPU_CYCLES), "cpu-cycles", }, 25 { C(HARDWARE, HW_CPU_CYCLES), "cpu-cycles", },
26 { C(HARDWARE, CPU_CYCLES), "cycles", }, 26 { C(HARDWARE, HW_CPU_CYCLES), "cycles", },
27 { C(HARDWARE, INSTRUCTIONS), "instructions", }, 27 { C(HARDWARE, HW_INSTRUCTIONS), "instructions", },
28 { C(HARDWARE, CACHE_REFERENCES), "cache-references", }, 28 { C(HARDWARE, HW_CACHE_REFERENCES), "cache-references", },
29 { C(HARDWARE, CACHE_MISSES), "cache-misses", }, 29 { C(HARDWARE, HW_CACHE_MISSES), "cache-misses", },
30 { C(HARDWARE, BRANCH_INSTRUCTIONS), "branch-instructions", }, 30 { C(HARDWARE, HW_BRANCH_INSTRUCTIONS),"branch-instructions", },
31 { C(HARDWARE, BRANCH_INSTRUCTIONS), "branches", }, 31 { C(HARDWARE, HW_BRANCH_INSTRUCTIONS),"branches", },
32 { C(HARDWARE, BRANCH_MISSES), "branch-misses", }, 32 { C(HARDWARE, HW_BRANCH_MISSES), "branch-misses", },
33 { C(HARDWARE, BUS_CYCLES), "bus-cycles", }, 33 { C(HARDWARE, HW_BUS_CYCLES), "bus-cycles", },
34 34
35 { C(SOFTWARE, CPU_CLOCK), "cpu-clock", }, 35 { C(SOFTWARE, SW_CPU_CLOCK), "cpu-clock", },
36 { C(SOFTWARE, TASK_CLOCK), "task-clock", }, 36 { C(SOFTWARE, SW_TASK_CLOCK), "task-clock", },
37 { C(SOFTWARE, PAGE_FAULTS), "page-faults", }, 37 { C(SOFTWARE, SW_PAGE_FAULTS), "page-faults", },
38 { C(SOFTWARE, PAGE_FAULTS), "faults", }, 38 { C(SOFTWARE, SW_PAGE_FAULTS), "faults", },
39 { C(SOFTWARE, PAGE_FAULTS_MIN), "minor-faults", }, 39 { C(SOFTWARE, SW_PAGE_FAULTS_MIN), "minor-faults", },
40 { C(SOFTWARE, PAGE_FAULTS_MAJ), "major-faults", }, 40 { C(SOFTWARE, SW_PAGE_FAULTS_MAJ), "major-faults", },
41 { C(SOFTWARE, CONTEXT_SWITCHES), "context-switches", }, 41 { C(SOFTWARE, SW_CONTEXT_SWITCHES), "context-switches", },
42 { C(SOFTWARE, CONTEXT_SWITCHES), "cs", }, 42 { C(SOFTWARE, SW_CONTEXT_SWITCHES), "cs", },
43 { C(SOFTWARE, CPU_MIGRATIONS), "cpu-migrations", }, 43 { C(SOFTWARE, SW_CPU_MIGRATIONS), "cpu-migrations", },
44 { C(SOFTWARE, CPU_MIGRATIONS), "migrations", }, 44 { C(SOFTWARE, SW_CPU_MIGRATIONS), "migrations", },
45}; 45};
46 46
47#define __PERF_COUNTER_FIELD(config, name) \ 47#define __PERF_COUNTER_FIELD(config, name) \
@@ -107,7 +107,7 @@ char *event_name(int counter)
107 107
108 switch (type) { 108 switch (type) {
109 case PERF_TYPE_HARDWARE: 109 case PERF_TYPE_HARDWARE:
110 if (config < PERF_HW_EVENTS_MAX) 110 if (config < PERF_COUNT_HW_MAX)
111 return hw_event_names[config]; 111 return hw_event_names[config];
112 return "unknown-hardware"; 112 return "unknown-hardware";
113 113
@@ -136,7 +136,7 @@ char *event_name(int counter)
136 } 136 }
137 137
138 case PERF_TYPE_SOFTWARE: 138 case PERF_TYPE_SOFTWARE:
139 if (config < PERF_SW_EVENTS_MAX) 139 if (config < PERF_COUNT_SW_MAX)
140 return sw_event_names[config]; 140 return sw_event_names[config];
141 return "unknown-software"; 141 return "unknown-software";
142 142