Re: [PATCH 8/8] powerpc/perf: Add power8 EBB support
From: Adhemerval Zanella <hidden>
Date: 2013-07-05 17:58:11
On 04-07-2013 23:54, Michael Ellerman wrote:
On Thu, Jul 04, 2013 at 03:58:01PM -0300, Adhemerval Zanella wrote:quoted
Hi Michael, I believe you forgot to add the cpu_user_features2 bit to announce the EBB support for P8, patch following:Hi Adhemerval, You're right, I haven't added it. I was wondering how best to do it. It's possible to configure the kernel so that it doesn't have PMU support, and in that case EBB is unsupported. It's also possible that something goes wrong with the PMU registration (kernel bug or OOM), and again EBB is then unsupported. So I think it might be better if we add PPC_FEATURE2_EBB at runtime in init_power8_pmu(). What do you think?
Indeed your approach seems better (I wasn't aware you could configure kernel with perf subsystem).
quoted hunk ↗ jump to hunk
Something like:diff --git a/arch/powerpc/perf/power8-pmu.c b/arch/powerpc/perf/power8-pmu.c index c7f8ccc..fd9ed89 100644 --- a/arch/powerpc/perf/power8-pmu.c +++ b/arch/powerpc/perf/power8-pmu.c@@ -620,10 +682,19 @@ static struct power_pmu power8_pmu = { static int __init init_power8_pmu(void) { + int rc; + if (!cur_cpu_spec->oprofile_cpu_type || strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power8")) return -ENODEV; - return register_power_pmu(&power8_pmu); + rc = register_power_pmu(&power8_pmu); + if (rc) + return rc; + + /* Tell userspace that EBB is supported */ + cur_cpu_spec->cpu_user_features2 |= PPC_FEATURE2_EBB; + + return 0; } early_initcall(init_power8_pmu);cheers