diff mbox

[V8,20/23] perf tools: making function set_max_cpu_num() non static

Message ID 1452807977-8069-21-git-send-email-mathieu.poirier@linaro.org
State New
Headers show

Commit Message

Mathieu Poirier Jan. 14, 2016, 9:46 p.m. UTC
For memory allocation purposes, code located in other places
then util/cpumap.c may want to know how many CPUs the system has.

This patch is making function set_max_cpu_num() available to
other parts of the perf tool so that global variable
'max_cpu_num' gets the right value when referenced by cpu__max_cpu().

Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>

---
 tools/perf/util/cpumap.c | 2 +-
 tools/perf/util/cpumap.h | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

-- 
2.1.4

Comments

Mathieu Poirier Jan. 25, 2016, 8:46 p.m. UTC | #1
On 14 January 2016 at 14:46, Mathieu Poirier <mathieu.poirier@linaro.org> wrote:
> For memory allocation purposes, code located in other places

> then util/cpumap.c may want to know how many CPUs the system has.

>

> This patch is making function set_max_cpu_num() available to

> other parts of the perf tool so that global variable

> 'max_cpu_num' gets the right value when referenced by cpu__max_cpu().

>

> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>

> Cc: Ingo Molnar <mingo@redhat.com>

> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>

> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>

> ---

>  tools/perf/util/cpumap.c | 2 +-

>  tools/perf/util/cpumap.h | 1 +

>  2 files changed, 2 insertions(+), 1 deletion(-)

>

> diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c

> index 10af1e7524fb..ae179320c0c0 100644

> --- a/tools/perf/util/cpumap.c

> +++ b/tools/perf/util/cpumap.c

> @@ -380,7 +380,7 @@ out:

>  }

>

>  /* Determine highest possible cpu in the system for sparse allocation */

> -static void set_max_cpu_num(void)

> +void set_max_cpu_num(void)

>  {

>         const char *mnt;

>         char path[PATH_MAX];

> diff --git a/tools/perf/util/cpumap.h b/tools/perf/util/cpumap.h

> index 85f7772457fa..45fa963345eb 100644

> --- a/tools/perf/util/cpumap.h

> +++ b/tools/perf/util/cpumap.h

> @@ -14,6 +14,7 @@ struct cpu_map {

>         int map[];

>  };

>

> +void set_max_cpu_num(void);

>  struct cpu_map *cpu_map__new(const char *cpu_list);

>  struct cpu_map *cpu_map__empty_new(int nr);

>  struct cpu_map *cpu_map__dummy_new(void);

> --

> 2.1.4

>


Arnaldo,

I can't queue this patch for 4.6 without at least a reviewed by from you.

It has been rebased to 4.5-rc1 here [1] for your convenience.  I will
be happy to use another baseline should that be more adequate for you.
The same goes for [2]

Thanks,
Mathieu

[1]. https://git.linaro.org/people/mathieu.poirier/coresight.git/shortlog/refs/heads/perf-v4.5-rc1-V8
Mathieu Poirier Jan. 26, 2016, 5:08 p.m. UTC | #2
On 25 January 2016 at 14:29, Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Em Mon, Jan 25, 2016 at 06:12:42PM -0300, Arnaldo Carvalho de Melo escreveu:

>> Em Mon, Jan 25, 2016 at 01:46:22PM -0700, Mathieu Poirier escreveu:

>> > On 14 January 2016 at 14:46, Mathieu Poirier <mathieu.poirier@linaro.org> wrote:

>> > > For memory allocation purposes, code located in other places

>> > > then util/cpumap.c may want to know how many CPUs the system has.

>> > >

>> > > This patch is making function set_max_cpu_num() available to

>> > > other parts of the perf tool so that global variable

>> > > 'max_cpu_num' gets the right value when referenced by cpu__max_cpu().

>> > >

>> > > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>

>> > > Cc: Ingo Molnar <mingo@redhat.com>

>> > > Cc: Arnaldo Carvalho de Melo <acme@kernel.org>

>> > > Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>

>> > > ---

>> > >  tools/perf/util/cpumap.c | 2 +-

>> > >  tools/perf/util/cpumap.h | 1 +

>> > >  2 files changed, 2 insertions(+), 1 deletion(-)

>> > >

>> > > diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c

>> > > index 10af1e7524fb..ae179320c0c0 100644

>> > > --- a/tools/perf/util/cpumap.c

>> > > +++ b/tools/perf/util/cpumap.c

>> > > @@ -380,7 +380,7 @@ out:

>> > >  }

>> > >

>> > >  /* Determine highest possible cpu in the system for sparse allocation */

>> > > -static void set_max_cpu_num(void)

>> > > +void set_max_cpu_num(void)

>> > >  {

>> > >         const char *mnt;

>> > >         char path[PATH_MAX];

>> > > diff --git a/tools/perf/util/cpumap.h b/tools/perf/util/cpumap.h

>> > > index 85f7772457fa..45fa963345eb 100644

>> > > --- a/tools/perf/util/cpumap.h

>> > > +++ b/tools/perf/util/cpumap.h

>> > > @@ -14,6 +14,7 @@ struct cpu_map {

>> > >         int map[];

>> > >  };

>> > >

>> > > +void set_max_cpu_num(void);

>> > >  struct cpu_map *cpu_map__new(const char *cpu_list);

>> > >  struct cpu_map *cpu_map__empty_new(int nr);

>> > >  struct cpu_map *cpu_map__dummy_new(void);

>> > > --

>> > > 2.1.4

>> > >

>> >

>> > Arnaldo,

>> >

>> > I can't queue this patch for 4.6 without at least a reviewed by from you.

>>

>> This one I remember, looks ugly, the name set_max_cpu_num() looks

>> strange, when that was restricted (static) to that cpumap.c file, it

>> wasn't a problem, exporting it for wider usage looks bad.

>>

>> You've been waiting for this for quite a while, it seems, lemme stop

>> what I am doing to check this...

>

> So, please check the patch below, what you need then is just to use

> cpu__max_cpu().


I like your approach - thanks for the review.  I will spin V9 when I
have received Adrian's comments.

Mathieu

>

> - Arnaldo

>

> diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c

> index fa935093a599..9bcf2bed3a6d 100644

> --- a/tools/perf/util/cpumap.c

> +++ b/tools/perf/util/cpumap.c

> @@ -8,6 +8,10 @@

>  #include <linux/bitmap.h>

>  #include "asm/bug.h"

>

> +static int max_cpu_num;

> +static int max_node_num;

> +static int *cpunode_map;

> +

>  static struct cpu_map *cpu_map__default_new(void)

>  {

>         struct cpu_map *cpus;

> @@ -486,6 +490,32 @@ out:

>                 pr_err("Failed to read max nodes, using default of %d\n", max_node_num);

>  }

>

> +int cpu__max_node(void)

> +{

> +       if (unlikely(!max_node_num))

> +               set_max_node_num();

> +

> +       return max_node_num;

> +}

> +

> +int cpu__max_cpu(void)

> +{

> +       if (unlikely(!max_cpu_num))

> +               set_max_cpu_num();

> +

> +       return max_cpu_num;

> +}

> +

> +int cpu__get_node(int cpu)

> +{

> +       if (unlikely(cpunode_map == NULL)) {

> +               pr_debug("cpu_map not initialized\n");

> +               return -1;

> +       }

> +

> +       return cpunode_map[cpu];

> +}

> +

>  static int init_cpunode_map(void)

>  {

>         int i;

> diff --git a/tools/perf/util/cpumap.h b/tools/perf/util/cpumap.h

> index 71c41b9efabb..81a2562aaa2b 100644

> --- a/tools/perf/util/cpumap.h

> +++ b/tools/perf/util/cpumap.h

> @@ -57,37 +57,11 @@ static inline bool cpu_map__empty(const struct cpu_map *map)

>         return map ? map->map[0] == -1 : true;

>  }

>

> -int max_cpu_num;

> -int max_node_num;

> -int *cpunode_map;

> -

>  int cpu__setup_cpunode_map(void);

>

> -static inline int cpu__max_node(void)

> -{

> -       if (unlikely(!max_node_num))

> -               pr_debug("cpu_map not initialized\n");

> -

> -       return max_node_num;

> -}

> -

> -static inline int cpu__max_cpu(void)

> -{

> -       if (unlikely(!max_cpu_num))

> -               pr_debug("cpu_map not initialized\n");

> -

> -       return max_cpu_num;

> -}

> -

> -static inline int cpu__get_node(int cpu)

> -{

> -       if (unlikely(cpunode_map == NULL)) {

> -               pr_debug("cpu_map not initialized\n");

> -               return -1;

> -       }

> -

> -       return cpunode_map[cpu];

> -}

> +int cpu__max_node(void);

> +int cpu__max_cpu(void);

> +int cpu__get_node(int cpu);

>

>  int cpu_map__build_map(struct cpu_map *cpus, struct cpu_map **res,

>                        int (*f)(struct cpu_map *map, int cpu, void *data),
Mathieu Poirier Jan. 27, 2016, 4:24 p.m. UTC | #3
On 26 January 2016 at 11:51, Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Em Tue, Jan 26, 2016 at 10:08:21AM -0700, Mathieu Poirier escreveu:

>> On 25 January 2016 at 14:29, Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

>> > Em Mon, Jan 25, 2016 at 06:12:42PM -0300, Arnaldo Carvalho de Melo escreveu:

>> >> Em Mon, Jan 25, 2016 at 01:46:22PM -0700, Mathieu Poirier escreveu:

>> >> > On 14 January 2016 at 14:46, Mathieu Poirier <mathieu.poirier@linaro.org> wrote:

>> >> > I can't queue this patch for 4.6 without at least a reviewed by from you.

>> >>

>> >> This one I remember, looks ugly, the name set_max_cpu_num() looks

>> >> strange, when that was restricted (static) to that cpumap.c file, it

>> >> wasn't a problem, exporting it for wider usage looks bad.

>> >>

>> >> You've been waiting for this for quite a while, it seems, lemme stop

>> >> what I am doing to check this...

>> >

>> > So, please check the patch below, what you need then is just to use

>> > cpu__max_cpu().

>>

>> I like your approach - thanks for the review.  I will spin V9 when I

>> have received Adrian's comments.

>

> I'll take that as an Acked-by: and since this improves the current

> situation by hiding needlessly exported global variables, I'll get it in

> now, thanks.


I would have added this code in my patchset with the right authorship
- whatever works best for you.

Thanks,
Mathieu

>

> - Arnaldo
diff mbox

Patch

diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c
index 10af1e7524fb..ae179320c0c0 100644
--- a/tools/perf/util/cpumap.c
+++ b/tools/perf/util/cpumap.c
@@ -380,7 +380,7 @@  out:
 }
 
 /* Determine highest possible cpu in the system for sparse allocation */
-static void set_max_cpu_num(void)
+void set_max_cpu_num(void)
 {
 	const char *mnt;
 	char path[PATH_MAX];
diff --git a/tools/perf/util/cpumap.h b/tools/perf/util/cpumap.h
index 85f7772457fa..45fa963345eb 100644
--- a/tools/perf/util/cpumap.h
+++ b/tools/perf/util/cpumap.h
@@ -14,6 +14,7 @@  struct cpu_map {
 	int map[];
 };
 
+void set_max_cpu_num(void);
 struct cpu_map *cpu_map__new(const char *cpu_list);
 struct cpu_map *cpu_map__empty_new(int nr);
 struct cpu_map *cpu_map__dummy_new(void);