[PATCH 8/8] powerpc/perf: Add power8 EBB support
Adhemerval Zanella
azanella at linux.vnet.ibm.com
Sat Jul 6 03:57:59 EST 2013
On 04-07-2013 23:54, Michael Ellerman wrote:
> On Thu, Jul 04, 2013 at 03:58:01PM -0300, Adhemerval Zanella wrote:
>> 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).
>
> 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
>
More information about the Linuxppc-dev
mailing list