Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1211317

RE: [PATCH RFC 02/10] perf,tools: Support new sort type --socket

From "Liang, Kan" <kan.liang@intel.com>
Newsgroups linux.kernel
Subject RE: [PATCH RFC 02/10] perf,tools: Support new sort type --socket
Date 2015-08-21 22:30 +0200
Message-ID <q016P-5Vh-31@gated-at.bofh.it> (permalink)
References <pYSfg-3x6-7@gated-at.bofh.it> <pYSfh-3x6-43@gated-at.bofh.it> <pZu1c-l9-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw



> On Tue, Aug 18, 2015 at 05:25:38AM -0400, kan.liang@intel.com wrote:
> > From: Kan Liang <kan.liang@intel.com>
> >
> > This patch enable perf report to sort by socket
> >
> 
> SNIP
> 
> > diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index
> > 7e38716..245e254 100644
> > --- a/tools/perf/util/sort.c
> > +++ b/tools/perf/util/sort.c
> > @@ -421,6 +421,33 @@ struct sort_entry sort_cpu = {
> >  	.se_width_idx	= HISTC_CPU,
> >  };
> >
> > +/* --sort socket */
> > +
> > +static int64_t
> > +sort__socket_cmp(struct hist_entry *left, struct hist_entry *right) {
> > +	int r_socket, l_socket;
> > +
> > +	r_socket = cpu__get_socket(right->cpu);
> > +	l_socket = cpu__get_socket(left->cpu);
> > +	return r_socket - l_socket;
> 
> 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.

What do you think about the function as below?
It gets the socket id from env.

+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/

Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH RFC 02/10] perf,tools: Support new sort type --socket Jiri Olsa <jolsa@redhat.com> - 2015-08-20 11:10 +0200
  RE: [PATCH RFC 02/10] perf,tools: Support new sort type --socket "Liang, Kan" <kan.liang@intel.com> - 2015-08-21 22:30 +0200
    Re: [PATCH RFC 02/10] perf,tools: Support new sort type --socket Jiri Olsa <jolsa@redhat.com> - 2015-08-24 00:10 +0200
      Re: [PATCH RFC 02/10] perf,tools: Support new sort type --socket Jiri Olsa <jolsa@redhat.com> - 2015-08-24 16:30 +0200
        RE: [PATCH RFC 02/10] perf,tools: Support new sort type --socket "Liang, Kan" <kan.liang@intel.com> - 2015-08-24 18:50 +0200
          Re: [PATCH RFC 02/10] perf,tools: Support new sort type --socket Jiri Olsa <jolsa@redhat.com> - 2015-08-24 21:40 +0200
            RE: [PATCH RFC 02/10] perf,tools: Support new sort type --socket "Liang, Kan" <kan.liang@intel.com> - 2015-08-27 20:30 +0200
            Re: [PATCH RFC 02/10] perf,tools: Support new sort type --socket Jiri Olsa <jolsa@redhat.com> - 2015-08-27 20:30 +0200
      RE: [PATCH RFC 02/10] perf,tools: Support new sort type --socket "Liang, Kan" <kan.liang@intel.com> - 2015-08-24 16:30 +0200

csiph-web