[PATCH 2/2] powerpc/kernel/sysfs: Add new config option PMU_SYSFS to enable PMU SPRs sysfs file creation
Nageswara R Sastry
nasastry at in.ibm.com
Tue Feb 18 19:52:41 AEDT 2020
"Kajol Jain" <kjain at linux.ibm.com> wrote on 14/02/2020 01:36:06 PM:
> From: "Kajol Jain" <kjain at linux.ibm.com>
> To: linuxppc-dev at lists.ozlabs.org, mpe at ellerman.id.au
> Cc: maddy at linux.vnet.ibm.com, anju at linux.vnet.ibm.com, Nageswara R
> Sastry/India/IBM at IBMIN, kjain at linux.ibm.com
> Date: 14/02/2020 01:36 PM
> Subject: [PATCH 2/2] powerpc/kernel/sysfs: Add new config option
> PMU_SYSFS to enable PMU SPRs sysfs file creation
>
> Many of the performance monitoring unit (PMU) SPRs are
> exposed in the sysfs. This may not be a desirable since
> "perf" API is the primary interface to program PMU and
> collect counter data in the system. But that said, we
> cant remove these sysfs files since we dont whether
> anyone/anything is using them.
>
> So the patch adds a new CONFIG option 'CONFIG_PMU_SYSFS'
> (user selectable) to be used in sysfs file creation for
> PMU SPRs. New option by default is disabled, but can be
> enabled if user needs it.
>
> Tested this patch behaviour in powernv and pseries machines.
> Patch is also tested for pmac32_defconfig.
>
> Signed-off-by: Kajol Jain <kjain at linux.ibm.com>
Tested-by: Nageswara R Sastry <nasastry at in.ibm.com>
Tested on PowerVM, PowerNV machines with and with out CONFIG_PMU_SYSFS
With CONFIG_PMU_SYSFS=y
For online CPUs can see the SPR files namely mmcr*, pmc*
With CONFIG_PMU_SYSFS=n
Not seeing the SPR files
> ---
> arch/powerpc/kernel/sysfs.c | 6 ++++++
> arch/powerpc/platforms/Kconfig.cputype | 6 ++++++
> 2 files changed, 12 insertions(+)
>
> diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
> index 74da5eb..cd807e8 100644
> --- a/arch/powerpc/kernel/sysfs.c
> +++ b/arch/powerpc/kernel/sysfs.c
> @@ -562,6 +562,7 @@ void ppc_enable_pmcs(void)
> * that are implemented on the current processor
> */
>
> +#ifdef CONFIG_PMU_SYSFS
> #if defined(CONFIG_PPC64) || defined(CONFIG_PPC_BOOK3S_32)
> #define HAS_PPC_PMC_CLASSIC 1
> #define HAS_PPC_PMC_IBM 1
> @@ -575,6 +576,7 @@ void ppc_enable_pmcs(void)
> #ifdef CONFIG_PPC_BOOK3S_32
> #define HAS_PPC_PMC_G4 1
> #endif
> +#endif /* CONFIG_PMU_SYSFS */
>
> #if defined(CONFIG_PPC64) && defined(CONFIG_DEBUG_MISC)
> #define HAS_PPC_PA6T
> @@ -812,8 +814,10 @@ static int register_cpu_online(unsigned int cpu)
> device_create_file(s, &pmc_attrs[i]);
>
> #ifdef CONFIG_PPC64
> +#ifdef CONFIG_PMU_SYSFS
> if (cpu_has_feature(CPU_FTR_MMCRA))
> device_create_file(s, &dev_attr_mmcra);
> +#endif /* CONFIG_PMU_SYSFS */
>
> if (cpu_has_feature(CPU_FTR_PURR)) {
> if (!firmware_has_feature(FW_FEATURE_LPAR))
> @@ -901,8 +905,10 @@ static int unregister_cpu_online(unsigned int cpu)
> device_remove_file(s, &pmc_attrs[i]);
>
> #ifdef CONFIG_PPC64
> +#ifdef CONFIG_PMU_SYSFS
> if (cpu_has_feature(CPU_FTR_MMCRA))
> device_remove_file(s, &dev_attr_mmcra);
> +#endif /* CONFIG_PMU_SYSFS */
>
> if (cpu_has_feature(CPU_FTR_PURR))
> device_remove_file(s, &dev_attr_purr);
> diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/
> platforms/Kconfig.cputype
> index 8d7f9c3..e58b48d 100644
> --- a/arch/powerpc/platforms/Kconfig.cputype
> +++ b/arch/powerpc/platforms/Kconfig.cputype
> @@ -417,6 +417,12 @@ config PPC_MM_SLICES
> config PPC_HAVE_PMU_SUPPORT
> bool
>
> +config PMU_SYSFS
> + bool "Create PMU SPRs sysfs file"
> + default n
> + help
> + This option enables sysfs file creation for PMU SPRs like
> MMCR* and PMC*.
> +
> config PPC_PERF_CTRS
> def_bool y
> depends on PERF_EVENTS && PPC_HAVE_PMU_SUPPORT
> --
> 1.8.3.1
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20200218/1ae873ec/attachment-0001.htm>
More information about the Linuxppc-dev
mailing list