[PATCH 5/6] ARM: Make oprofile depend on CONFIG_HW_PERF_EVENTS

Will Deacon will.deacon at arm.com
Mon Sep 13 04:39:52 EDT 2010


Hi Matt,

On Mon, 2010-09-13 at 07:07 +0100, Matt Fleming wrote:
> Currently, oprofile support is only functional if CONFIG_HW_PERF_EVENTS
> is set. If this symbol is not set, oprofile initialisation will fail at
> runtime. Instead of allowing the oprofile code to build but fail at
> runtime it seems less confusing to not allow the code to be built unless
> hardware performance counter support is available.
> 
> Signed-off-by: Matt Fleming <matt at console-pimps.org>
> ---
>  arch/arm/Kconfig           |    2 +-
>  arch/arm/oprofile/common.c |    9 ---------
>  2 files changed, 1 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index a7ed21f..d29075c 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -14,7 +14,7 @@ config ARM
>         select RTC_LIB
>         select SYS_SUPPORTS_APM_EMULATION
>         select GENERIC_ATOMIC64 if (!CPU_32v6K)
> -       select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
> +       select HAVE_OPROFILE if (HW_PERF_EVENTS)
>         select HAVE_ARCH_KGDB
>         select HAVE_KPROBES if (!XIP_KERNEL)
>         select HAVE_KRETPROBES if (HAVE_KPROBES)
> diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c
> index 9a3ed26..444ea86 100644
> --- a/arch/arm/oprofile/common.c
> +++ b/arch/arm/oprofile/common.c
> @@ -24,7 +24,6 @@
>  #include <asm/perf_event.h>
>  #include <asm/ptrace.h>
> 
> -#ifdef CONFIG_HW_PERF_EVENTS
>  static char *op_name_from_perf_id(enum arm_perf_pmu_ids id)
>  {
>         switch (id) {
> @@ -119,11 +118,3 @@ void __exit oprofile_arch_exit(void)
>  {
>         oprofile_perf_exit();
>  }
> -#else
> -int __init oprofile_arch_init(struct oprofile_operations *ops)
> -{
> -       pr_info("oprofile: hardware counters not available\n");
> -       return -ENODEV;
> -}
> -void __exit oprofile_arch_exit(void) {}
> -#endif /* CONFIG_HW_PERF_EVENTS */
> --
> 1.7.1


When oprofile_arch_init fails (-ENODEV), oprofile will fall back to
timer mode. With this patch, how can you make use of a timer fallback?

I'll try and get around to testing the rest of this series today.

Cheers,

Will






More information about the linux-arm-kernel mailing list