All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Richter <robert.richter@amd.com>
To: Matt Fleming <matt@console-pimps.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Will Deacon <will.deacon@arm.com>,
	Paul Mundt <lethal@linux-sh.org>,
	Russell King <linux@arm.linux.org.uk>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-sh@vger.kernel.org" <linux-sh@vger.kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@elte.hu>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>
Subject: Re: [PATCH V2 3/4] oprofile: Abstract the perf-events backend
Date: Fri, 27 Aug 2010 16:31:21 +0200	[thread overview]
Message-ID: <20100827143121.GN22783@erda.amd.com> (raw)
In-Reply-To: <fe3e173aaa85f4cd73ea4b5abca50976fc40a01f.1282848651.git.matt@console-pimps.org>

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@console-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

WARNING: multiple messages have this Message-ID (diff)
From: Robert Richter <robert.richter@amd.com>
To: Matt Fleming <matt@console-pimps.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Will Deacon <will.deacon@arm.com>,
	Paul Mundt <lethal@linux-sh.org>,
	Russell King <linux@arm.linux.org.uk>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-sh@vger.kernel.org" <linux-sh@vger.kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@elte.hu>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>
Subject: Re: [PATCH V2 3/4] oprofile: Abstract the perf-events backend
Date: Fri, 27 Aug 2010 14:31:21 +0000	[thread overview]
Message-ID: <20100827143121.GN22783@erda.amd.com> (raw)
In-Reply-To: <fe3e173aaa85f4cd73ea4b5abca50976fc40a01f.1282848651.git.matt@console-pimps.org>

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@console-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


WARNING: multiple messages have this Message-ID (diff)
From: robert.richter@amd.com (Robert Richter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2 3/4] oprofile: Abstract the perf-events backend
Date: Fri, 27 Aug 2010 16:31:21 +0200	[thread overview]
Message-ID: <20100827143121.GN22783@erda.amd.com> (raw)
In-Reply-To: <fe3e173aaa85f4cd73ea4b5abca50976fc40a01f.1282848651.git.matt@console-pimps.org>

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@console-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

  parent reply	other threads:[~2010-08-27 14:37 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-26 19:09 [PATCH V2 0/4] Generalise ARM perf-events backend for oprofile Matt Fleming
2010-08-26 19:09 ` Matt Fleming
2010-08-26 19:09 ` Matt Fleming
2010-08-26 19:09 ` [PATCH 1/4] oprofile: Handle initialisation failure more gracefully Matt Fleming
2010-08-26 19:09   ` Matt Fleming
2010-08-26 19:09   ` Matt Fleming
2010-08-27 12:43   ` Robert Richter
2010-08-27 12:43     ` Robert Richter
2010-08-27 12:43     ` [PATCH 1/4] oprofile: Handle initialisation failure more Robert Richter
2010-08-27 15:15     ` [PATCH 1/4] oprofile: Handle initialisation failure more gracefully Will Deacon
2010-08-27 15:15       ` Will Deacon
2010-08-27 15:15       ` [PATCH 1/4] oprofile: Handle initialisation failure more Will Deacon
2010-08-27 16:38       ` [PATCH 1/4] oprofile: Handle initialisation failure more gracefully Robert Richter
2010-08-27 16:38         ` Robert Richter
2010-08-27 16:38         ` [PATCH 1/4] oprofile: Handle initialisation failure more Robert Richter
2010-08-27 18:06         ` [PATCH 1/4] oprofile: Handle initialisation failure more gracefully Will Deacon
2010-08-27 18:06           ` Will Deacon
2010-08-27 18:06           ` [PATCH 1/4] oprofile: Handle initialisation failure more Will Deacon
2010-08-27 19:47           ` [PATCH 1/4] oprofile: Handle initialisation failure more gracefully Robert Richter
2010-08-27 19:47             ` Robert Richter
2010-08-27 19:47             ` [PATCH 1/4] oprofile: Handle initialisation failure more Robert Richter
2010-08-26 19:09 ` [PATCH 2/4] sh: Accessor functions for the sh_pmu state Matt Fleming
2010-08-26 19:09   ` Matt Fleming
2010-08-26 19:09   ` Matt Fleming
2010-08-27 13:43   ` Robert Richter
2010-08-27 13:43     ` Robert Richter
2010-08-27 13:43     ` Robert Richter
2010-08-27 19:17     ` Matt Fleming
2010-08-27 19:17       ` Matt Fleming
2010-08-27 19:17       ` Matt Fleming
2010-08-30 12:41       ` Robert Richter
2010-08-30 12:41         ` Robert Richter
2010-08-30 12:41         ` Robert Richter
2010-08-26 19:09 ` [PATCH V2 3/4] oprofile: Abstract the perf-events backend Matt Fleming
2010-08-26 19:09   ` Matt Fleming
2010-08-26 19:09   ` Matt Fleming
2010-08-26 19:09   ` Matt Fleming
2010-08-27 10:41   ` Will Deacon
2010-08-27 10:41     ` Will Deacon
2010-08-27 10:41     ` Will Deacon
2010-08-27 12:44     ` Matt Fleming
2010-08-27 12:44       ` Matt Fleming
2010-08-27 12:44       ` Matt Fleming
2010-08-27 12:59   ` Robert Richter
2010-08-27 12:59     ` Robert Richter
2010-08-27 12:59     ` Robert Richter
2010-08-27 14:31   ` Robert Richter [this message]
2010-08-27 14:31     ` Robert Richter
2010-08-27 14:31     ` Robert Richter
2010-08-26 19:09 ` [PATCH V2 4/4] sh: Use the perf-events backend for oprofile Matt Fleming
2010-08-26 19:09   ` Matt Fleming
2010-08-26 19:09   ` Matt Fleming
2010-08-26 19:09   ` Matt Fleming
2010-08-27 14:59   ` Robert Richter
2010-08-27 14:59     ` Robert Richter
2010-08-27 14:59     ` Robert Richter
2010-08-27 20:19     ` Matt Fleming
2010-08-27 20:19       ` Matt Fleming
2010-08-27 20:19       ` Matt Fleming
2010-08-31 11:28       ` Robert Richter
2010-08-31 11:28         ` Robert Richter
2010-08-31 11:28         ` Robert Richter
2010-08-31 12:23         ` Matt Fleming
2010-08-31 12:23           ` Matt Fleming
2010-08-31 12:23           ` Matt Fleming
2010-08-31 13:26           ` Robert Richter
2010-08-31 13:26             ` Robert Richter
2010-08-31 13:26             ` Robert Richter
2010-08-31 11:05 ` [PATCH V2 0/4] Generalise ARM " Robert Richter
2010-08-31 11:05   ` Robert Richter
2010-08-31 11:05   ` Robert Richter
2010-08-31 11:25   ` Matt Fleming
2010-08-31 11:25     ` Matt Fleming
2010-08-31 11:25     ` Matt Fleming

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100827143121.GN22783@erda.amd.com \
    --to=robert.richter@amd.com \
    --cc=acme@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=lethal@linux-sh.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=matt@console-pimps.org \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.