Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753732AbbHWWAS (ORCPT ); Sun, 23 Aug 2015 18:00:18 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49821 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753151AbbHWWAR (ORCPT ); Sun, 23 Aug 2015 18:00:17 -0400 Date: Mon, 24 Aug 2015 00:00:11 +0200 From: Jiri Olsa To: "Liang, Kan" Cc: "acme@kernel.org" , "a.p.zijlstra@chello.nl" , "mingo@redhat.com" , "jolsa@kernel.org" , "namhyung@kernel.org" , "ak@linux.intel.com" , "eranian@google.com" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH RFC 02/10] perf,tools: Support new sort type --socket Message-ID: <20150823220011.GC11582@krava.redhat.com> References: <1439889946-28986-1-git-send-email-kan.liang@intel.com> <1439889946-28986-3-git-send-email-kan.liang@intel.com> <20150820090913.GB1672@krava.brq.redhat.com> <37D7C6CF3E00A74B8858931C1DB2F077018F1D04@SHSMSX103.ccr.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <37D7C6CF3E00A74B8858931C1DB2F077018F1D04@SHSMSX103.ccr.corp.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2220 Lines: 84 On Fri, Aug 21, 2015 at 08:25:24PM +0000, Liang, Kan wrote: SNIP > > > > we need global topology information in perf.data and use the mapping > > from there, we can't use current server info > > > > we currently store core_siblings_list and thread_siblings_list, in topology > > FEATURE, which is probably not enough > > > > core_siblings_list includes the cpu list in the same socket. > thread_siblings_list includes the cpu list in the same core. > numa_nodes includes the cpu list for each node. > > It looks we have enough data from topology FEATURE. hum, haven't hecked deeply.. how will you get core id for cpu? > > What do you think about the function as below? > It gets the socket id from env. some sort of caching would be nice, I guess we could store those cpumap objects within perf_session_env jirka > > +int > +perf_env_get_socket(struct perf_session_env *env, int cpu) > +{ > + int socket_nr, cpu_nr, i, j; > + struct cpu_map *socket_map = NULL; > + char *str; > + > + if (env == NULL) > + return -1; > + > + socket_nr = env->nr_sibling_cores; > + str = env->sibling_cores; > + > + for (i = 0; i < socket_nr; i++) { > + socket_map = cpu_map__new(str); > + str += strlen(str) + 1; > + if (!socket_map) > + continue; > + cpu_nr = socket_map->nr; > + for (j = 0; j < cpu_nr; j++) { > + if (cpu == socket_map->map[j]) { > + free(socket_map); > + return i; > + } > + } > + free(socket_map); > + } > + > + return -1; > +} > > Thanks, > Kan > > > I think we need new feature that stores topology info and new interface > > that will provide all useful mappings: > > idx -> cpu > > cpu -> core > > cpu -> socket > > cpu -> node > > > > in another patchset I used new CPUMAP event: > > https://git.kernel.org/cgit/linux/kernel/git/jolsa/perf.git/commit/?h=perf/ > > stat_script_3&id=37b7b8449aa23acdfe9dec5a7a371e91c5323da5 > > > > we might need both ways (new FEATURE and event) to support pipe > > reports > > > > jirka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/