lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 27 Aug 2010 16:31:21 +0200
From:	Robert Richter <robert.richter@....com>
To:	Matt Fleming <matt@...sole-pimps.org>
CC:	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	Will Deacon <will.deacon@....com>,
	Paul Mundt <lethal@...ux-sh.org>,
	Russell King <linux@....linux.org.uk>,
	"linux-arm-kernel@...ts.infradead.org" 
	<linux-arm-kernel@...ts.infradead.org>,
	"linux-sh@...r.kernel.org" <linux-sh@...r.kernel.org>,
	Peter Zijlstra <peterz@...radead.org>,
	Ingo Molnar <mingo@...e.hu>,
	Frederic Weisbecker <fweisbec@...il.com>,
	Arnaldo Carvalho de Melo <acme@...hat.com>,
	"linux-arch@...r.kernel.org" <linux-arch@...r.kernel.org>
Subject: Re: [PATCH V2 3/4] oprofile: Abstract the perf-events backend

On 26.08.10 15:09:18, Matt Fleming wrote:
> Move the perf-events backend from arch/arm/oprofile into
> drivers/oprofile so that the code can be shared between architectures.
> 
> This allows each architecture to maintain only a single copy of the
> PMU accessor functions instead of one for both perf and OProfile. It
> also becomes possible for other architectures to delete much of their
> OProfile code in favour of the common code now available in
> drivers/oprofile/oprofile_perf.c.
> 
> Signed-off-by: Matt Fleming <matt@...sole-pimps.org>
> ---
>  arch/arm/oprofile/Makefile       |    4 +
>  arch/arm/oprofile/common.c       |  215 +++-----------------------------------
>  drivers/oprofile/oprofile_perf.c |  209 ++++++++++++++++++++++++++++++++++++
>  include/linux/oprofile.h         |   12 ++
>  4 files changed, 242 insertions(+), 198 deletions(-)
>  create mode 100644 drivers/oprofile/oprofile_perf.c
> 
> diff --git a/arch/arm/oprofile/Makefile b/arch/arm/oprofile/Makefile
> index e666eaf..038d7af 100644
> --- a/arch/arm/oprofile/Makefile
> +++ b/arch/arm/oprofile/Makefile
> @@ -6,4 +6,8 @@ DRIVER_OBJS = $(addprefix ../../../drivers/oprofile/, \
>                 oprofilefs.o oprofile_stats.o \
>                 timer_int.o )
> 
> +ifeq ($(CONFIG_HW_PERF_EVENTS), y)
> +DRIVER_OBJS += $(addprefix ../../../drivers/oprofile/, oprofile_perf.o)
> +endif

You use CONFIG_HW_PERF_EVENTS while CONFIG_PERF_EVENTS in oprofile.h.

> +
>  oprofile-y                             := $(DRIVER_OBJS) common.o

> diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h
> index 5171639..99e0323 100644
> --- a/include/linux/oprofile.h
> +++ b/include/linux/oprofile.h
> @@ -185,4 +185,16 @@ int oprofile_add_data(struct op_entry *entry, unsigned long val);
>  int oprofile_add_data64(struct op_entry *entry, u64 val);
>  int oprofile_write_commit(struct op_entry *entry);
> 
> +/* Oprofile perf wrapper functions. */
> +
> +#ifdef CONFIG_PERF_EVENTS
> +int oprofile_perf_init(void);
> +void oprofile_perf_exit(void);
> +int oprofile_perf_setup(void);
> +int oprofile_perf_start(void);
> +void oprofile_perf_stop(void);
> +int oprofile_perf_create_files(struct super_block *sb, struct dentry *root);
> +void oprofile_perf_set_num_counters(int num_counters);
> +#endif /* CONFIG_PERF_EVENTS */

We need empty function stubs for all this functions for the
!CONFIG_PERF_EVENTS case returning -ENODEV or so. Otherwise
compliation will fail for it.

For arm this does not happen because of #ifdefs, but for sh.

Again, please first change the code and then move it without
functional changes, one patch each.

Thanks,

-Robert

> +
>  #endif /* OPROFILE_H */
> --
> 1.7.1
> 
> 

-- 
Advanced Micro Devices, Inc.
Operating System Research Center

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists