diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2016-02-22 17:19:23 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-02-29 03:35:23 -0500 |
commit | 512089d98457b7913d2e4762a44af52fbcd87470 (patch) | |
tree | 218c00574cee19381dbf50a8bebf62300e841ef3 | |
parent | 75c7003fbf419f05215d4ca09bf3964d0b1c99e9 (diff) |
perf/x86/intel/rapl: Clean up the printk output
The output is inconsistent. Use a proper pr_fmt prefix and split out the
advertisement into a seperate function.
Remove the WARN_ON() in the failure case. It's pointless as we already know
where it failed.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andi Kleen <andi.kleen@intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Harish Chegondi <harish.chegondi@intel.com>
Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Cc: linux-kernel@vger.kernel.org
Link: http://lkml.kernel.org/r/20160222221012.504551295@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r-- | arch/x86/events/intel/rapl.c | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/arch/x86/events/intel/rapl.c b/arch/x86/events/intel/rapl.c index b1d4a2f1feeb..f31e4b417adf 100644 --- a/arch/x86/events/intel/rapl.c +++ b/arch/x86/events/intel/rapl.c | |||
@@ -44,6 +44,9 @@ | |||
44 | * the duration of the measurement. Tools may use a function such as | 44 | * the duration of the measurement. Tools may use a function such as |
45 | * ldexp(raw_count, -32); | 45 | * ldexp(raw_count, -32); |
46 | */ | 46 | */ |
47 | |||
48 | #define pr_fmt(fmt) "RAPL PMU: " fmt | ||
49 | |||
47 | #include <linux/module.h> | 50 | #include <linux/module.h> |
48 | #include <linux/slab.h> | 51 | #include <linux/slab.h> |
49 | #include <linux/perf_event.h> | 52 | #include <linux/perf_event.h> |
@@ -144,7 +147,7 @@ static inline u64 rapl_read_counter(struct perf_event *event) | |||
144 | static inline u64 rapl_scale(u64 v, int cfg) | 147 | static inline u64 rapl_scale(u64 v, int cfg) |
145 | { | 148 | { |
146 | if (cfg > NR_RAPL_DOMAINS) { | 149 | if (cfg > NR_RAPL_DOMAINS) { |
147 | pr_warn("invalid domain %d, failed to scale data\n", cfg); | 150 | pr_warn("Invalid domain %d, failed to scale data\n", cfg); |
148 | return v; | 151 | return v; |
149 | } | 152 | } |
150 | /* | 153 | /* |
@@ -680,6 +683,21 @@ static int rapl_check_hw_unit(void (*quirk)(void)) | |||
680 | return 0; | 683 | return 0; |
681 | } | 684 | } |
682 | 685 | ||
686 | static void __init rapl_advertise(void) | ||
687 | { | ||
688 | int i; | ||
689 | |||
690 | pr_info("API unit is 2^-32 Joules, %d fixed counters, %llu ms ovfl timer\n", | ||
691 | hweight32(rapl_cntr_mask), rapl_timer_ms); | ||
692 | |||
693 | for (i = 0; i < NR_RAPL_DOMAINS; i++) { | ||
694 | if (rapl_cntr_mask & (1 << i)) { | ||
695 | pr_info("hw unit of domain %s 2^-%d Joules\n", | ||
696 | rapl_domain_names[i], rapl_hw_unit[i]); | ||
697 | } | ||
698 | } | ||
699 | } | ||
700 | |||
683 | static void __init cleanup_rapl_pmus(void) | 701 | static void __init cleanup_rapl_pmus(void) |
684 | { | 702 | { |
685 | int cpu; | 703 | int cpu; |
@@ -696,7 +714,7 @@ static const struct x86_cpu_id rapl_cpu_match[] = { | |||
696 | static int __init rapl_pmu_init(void) | 714 | static int __init rapl_pmu_init(void) |
697 | { | 715 | { |
698 | void (*quirk)(void) = NULL; | 716 | void (*quirk)(void) = NULL; |
699 | int cpu, ret, i; | 717 | int cpu, ret; |
700 | 718 | ||
701 | /* | 719 | /* |
702 | * check for Intel processor family 6 | 720 | * check for Intel processor family 6 |
@@ -751,30 +769,16 @@ static int __init rapl_pmu_init(void) | |||
751 | } | 769 | } |
752 | 770 | ||
753 | ret = perf_pmu_register(&rapl_pmu_class, "power", -1); | 771 | ret = perf_pmu_register(&rapl_pmu_class, "power", -1); |
754 | if (WARN_ON(ret)) { | 772 | if (ret) |
755 | pr_info("RAPL PMU detected, registration failed (%d), RAPL PMU disabled\n", ret); | ||
756 | goto out; | 773 | goto out; |
757 | } | ||
758 | 774 | ||
759 | __perf_cpu_notifier(rapl_cpu_notifier); | 775 | __perf_cpu_notifier(rapl_cpu_notifier); |
760 | cpu_notifier_register_done(); | 776 | cpu_notifier_register_done(); |
761 | 777 | rapl_advertise(); | |
762 | pr_info("RAPL PMU detected," | ||
763 | " API unit is 2^-32 Joules," | ||
764 | " %d fixed counters" | ||
765 | " %llu ms ovfl timer\n", | ||
766 | hweight32(rapl_cntr_mask), | ||
767 | rapl_timer_ms); | ||
768 | for (i = 0; i < NR_RAPL_DOMAINS; i++) { | ||
769 | if (rapl_cntr_mask & (1 << i)) { | ||
770 | pr_info("hw unit of domain %s 2^-%d Joules\n", | ||
771 | rapl_domain_names[i], rapl_hw_unit[i]); | ||
772 | } | ||
773 | } | ||
774 | |||
775 | return 0; | 778 | return 0; |
776 | 779 | ||
777 | out: | 780 | out: |
781 | pr_warn("Initialization failed (%d), disabled\n", ret); | ||
778 | cleanup_rapl_pmus(); | 782 | cleanup_rapl_pmus(); |
779 | cpu_notifier_register_done(); | 783 | cpu_notifier_register_done(); |
780 | return ret; | 784 | return ret; |