Skip to content

Commit

Permalink
perf cpumap: Auto initialize cpu__max_{node,cpu}
Browse files Browse the repository at this point in the history
Since it was always checking if the initialization was done, use that
branch to do the initialization if not done already.

With this we reduce the number of exported globals from these files.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20160125212955.GG22501@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
Arnaldo Carvalho de Melo committed Jan 26, 2016
1 parent b1baae8 commit 5ac7628
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 29 deletions.
30 changes: 30 additions & 0 deletions tools/perf/util/cpumap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -486,6 +490,32 @@ static void set_max_node_num(void)
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;
Expand Down
32 changes: 3 additions & 29 deletions tools/perf/util/cpumap.h
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down

0 comments on commit 5ac7628

Please sign in to comment.