Messages in this thread | | | Date | Tue, 28 May 2019 10:59:54 +0200 | From | Jiri Olsa <> | Subject | Re: [PATCH 1/3] perf header: Add die information in CPU topology |
| |
On Thu, May 23, 2019 at 01:41:19PM -0700, kan.liang@linux.intel.com wrote:
SNIP
> > Add cpu_map__get_die_id() in cpumap.c to fetch die id information. > > Signed-off-by: Kan Liang <kan.liang@linux.intel.com> > --- > tools/perf/Documentation/perf.data-file-format.txt | 9 +- > tools/perf/util/cpumap.c | 7 ++ > tools/perf/util/cpumap.h | 1 + > tools/perf/util/cputopo.c | 83 ++++++++++++++-- > tools/perf/util/cputopo.h | 7 +- > tools/perf/util/env.c | 1 + > tools/perf/util/env.h | 3 + > tools/perf/util/header.c | 104 +++++++++++++++++++-- > 8 files changed, 193 insertions(+), 22 deletions(-) > > diff --git a/tools/perf/Documentation/perf.data-file-format.txt b/tools/perf/Documentation/perf.data-file-format.txt > index 6967e9b..c731416 100644 > --- a/tools/perf/Documentation/perf.data-file-format.txt > +++ b/tools/perf/Documentation/perf.data-file-format.txt > @@ -153,7 +153,7 @@ struct { > > String lists defining the core and CPU threads topology. > The string lists are followed by a variable length array > -which contains core_id and socket_id of each cpu. > +which contains core_id, die_id (for x86) and socket_id of each cpu. > The number of entries can be determined by the size of the > section minus the sizes of both string lists. > > @@ -162,14 +162,19 @@ struct { > struct perf_header_string_list threads; /* Variable length */ > struct { > uint32_t core_id; > + uint32_t die_id; > uint32_t socket_id; > } cpus[nr]; /* Variable length records */ > }; > > Example: > - sibling cores : 0-3 > + sibling cores : 0-8 > + sibling dies : 0-3 > + sibling dies : 4-7 > sibling threads : 0-1 > sibling threads : 2-3 > + sibling threads : 4-5 > + sibling threads : 6-7 > > HEADER_NUMA_TOPOLOGY = 14, > > diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c > index 0b59922..7db1365 100644 > --- a/tools/perf/util/cpumap.c > +++ b/tools/perf/util/cpumap.c > @@ -373,6 +373,13 @@ int cpu_map__build_map(struct cpu_map *cpus, struct cpu_map **res, > return 0; > } > > +int cpu_map__get_die_id(int cpu) > +{ > + int value, ret = cpu__get_topology_int(cpu, "die_id", &value); > + > + return ret ?: value; > +}
please put 'adding cpu_map__get_die_id function' into separate patch
thanks, jirka
> + > int cpu_map__get_core_id(int cpu) > { > int value, ret = cpu__get_topology_int(cpu, "core_id", &value); > diff --git a/tools/perf/util/cpumap.h b/tools/perf/util/cpumap.h > index f00ce62..6762ff9 100644 > --- a/tools/perf/util/cpumap.h > +++ b/tools/perf/util/cpumap.h > @@ -25,6 +25,7 @@ size_t cpu_map__snprint_mask(struct cpu_map *map, char *buf, size_t size); > size_t cpu_map__fprintf(struct cpu_map *map, FILE *fp); > int cpu_map__get_socket_id(int cpu); > int cpu_map__get_socket(struct cpu_map *map, int idx, void *data); > +int cpu_map__get_die_id(int cpu); > int cpu_map__get_core_id(int cpu); > int cpu_map__get_core(struct cpu_map *map, int idx, void *data); > int cpu_map__build_socket_map(struct cpu_map *cpus, struct cpu_map **sockp); > diff --git a/tools/perf/util/cputopo.c b/tools/perf/util/cputopo.c
SNIP
| |