From patchwork Mon Jan 25 21:29:55 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnaldo Carvalho de Melo X-Patchwork-Id: 8115891 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 24951BEEE5 for ; Mon, 25 Jan 2016 21:31:41 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 2E14620379 for ; Mon, 25 Jan 2016 21:31:40 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 35B2520266 for ; Mon, 25 Jan 2016 21:31:39 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1aNoi5-0001ih-0B; Mon, 25 Jan 2016 21:30:05 +0000 Received: from casper.infradead.org ([2001:770:15f::2]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1aNoi1-0001YU-Ac for linux-arm-kernel@bombadil.infradead.org; Mon, 25 Jan 2016 21:30:01 +0000 Received: from [179.235.167.117] (helo=zoo.infradead.org) by casper.infradead.org with esmtpsa (Exim 4.80.1 #2 (Red Hat Linux)) id 1aNohz-0007KD-7J for linux-arm-kernel@lists.infradead.org; Mon, 25 Jan 2016 21:29:59 +0000 Received: by zoo.infradead.org (Postfix, from userid 1000) id CA513220261; Mon, 25 Jan 2016 18:29:55 -0300 (BRT) Date: Mon, 25 Jan 2016 18:29:55 -0300 From: Arnaldo Carvalho de Melo To: Mathieu Poirier Subject: Re: [PATCH V8 20/23] perf tools: making function set_max_cpu_num() non static Message-ID: <20160125212955.GG22501@kernel.org> References: <1452807977-8069-1-git-send-email-mathieu.poirier@linaro.org> <1452807977-8069-21-git-send-email-mathieu.poirier@linaro.org> <20160125211242.GF22501@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20160125211242.GF22501@kernel.org> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Zijlstra , Ingo Molnar , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , linux-doc@vger.kernel.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 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 > > > Cc: Ingo Molnar > > > Cc: Arnaldo Carvalho de Melo > > > Signed-off-by: Mathieu Poirier > > > --- > > > 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(). - 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 #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),