perf tools: Assorted fixes
Jiri Olsa
reviewerv3 cover perf tools: Assorted fixes
hi,
sending assorted general fixes that queued
up in my other branches.
v3 changes:
- fix for fixes found by Namhyung
- new patch to use sysfs__mountpoint
v2 changes:
- renamed the interface to struct cpu_topology/numa_topology plus related changes in function names
- adding missing Fixes tag
Also available in here:
https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
perf/fixes
thanks,
jirka
---
Jiri Olsa (4):
perf header: Fix wrong node write in NUMA_TOPOLOGY feature perf tools: Add cpu_topology object
perf tools: Add numa_topology object
perf tools: Use sysfs__mountpoint() when reading cpu topology
tools/perf/util/Build | 1 + tools/perf/util/cputopo.c | 277 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/cputopo.h | 33 ++++++++++++++++++++++ tools/perf/util/header.c | 269 ++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------- 4 files changed, 341 insertions(+), 239 deletions(-) create mode 100644 tools/perf/util/cputopo.c create mode 100644 tools/perf/util/cputopo.h
Jiri Olsa
reviewerPATCH v3 1/4 perf header: Fix wrong node write in NUMA_TOPOLOGY feature
We are currently passing the node index instead of the real node number.
--- tools/perf/util/header.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/perf/util/header.c +1 -1
@@ -879,7 +879,7 @@ static int write_numa_topology(struct feat_fd *ff,if (ret <0 )break ; - ret =write_topo_node (ff, i); + ret =write_topo_node (ff, j);if (ret <0 )break ; }
Signature · 1 line
2.17.2
tip-bot for Jiri Olsa
merge bot[tip:perf/core] perf header: Fix wrong node write in NUMA_TOPOLOGY feature
perf header: Fix wrong node write in NUMA_TOPOLOGY feature
Commit-ID: b00ccb27f97367d89e2d7b419ed198b0985be55d Gitweb: https://git.kernel.org/tip/b00ccb27f97367d89e2d7b419ed198b0985be55d Author: Jiri Olsa <[email protected]> AuthorDate: Tue, 19 Feb 2019 10:58:12 +0100 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 19 Feb 2019 12:20:55 -0300
perf header: Fix wrong node write in NUMA_TOPOLOGY feature
We are currently passing the node index instead of the real node number.
--- tools/perf/util/header.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/perf/util/header.c +1 -1
@@ -879,7 +879,7 @@ static int write_numa_topology(struct feat_fd *ff,if (ret <0 )break ; - ret =write_topo_node (ff, i); + ret =write_topo_node (ff, j);if (ret <0 )break ; }
Jiri Olsa
reviewerPATCH v3 2/4 perf tools: Add cpu_topology object
In reply to Jiri OlsaMaking struct cpu_topo global and renaming it to struct cpu_topology, so it can be used from record command in following patches.
Adding following interface functions to load/free cpu topology details:
struct cpu_topology *cpu_topology__new(void); void cpu_topology__delete(struct cpu_topology *tp);
Moving it into separate object file cputopo.c together with numa related object in following patches.
No functional change, the new interface will be used in upcoming changes.
--- tools/perf/util/Build | 1 + tools/perf/util/cputopo.c | 144 ++++++++++++++++++++++++++++++++++++ tools/perf/util/cputopo.h | 17 +++++ tools/perf/util/header.c | 150 +------------------------------------- 4 files changed, 166 insertions(+), 146 deletions(-) create mode 100644 tools/perf/util/cputopo.c create mode 100644 tools/perf/util/cputopo.h
tools/perf/util/Build +1 -0
@@ -69,6 +69,7 @@ perf-y += hist.o perf-y += util.o perf-y += xyarray.o perf-y += cpumap.o +perf-y += cputopo.o perf-y += cgroup.o perf-y += target.o perf-y += rblist.o
tools/perf/util/cputopo.c new file +144 -0
144 lines not on this page · raw message
tools/perf/util/cputopo.h new file +17 -0
@@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __PERF_CPUTOPO_H +#define __PERF_CPUTOPO_H + +#include <linux/types.h> + +struct cpu_topology { +u32 core_sib; +u32 thread_sib; +char **core_siblings; +char **thread_siblings; +}; + +struct cpu_topology *cpu_topology__new (void ); +void cpu_topology__delete (struct cpu_topology *tp); + +#endif /* __PERF_CPUTOPO_H */
tools/perf/util/header.c +4 -146
175 lines not on this page · raw message
Signature · 1 line
2.17.2
tip-bot for Jiri Olsa
merge bot[tip:perf/core] perf tools: Add cpu_topology object
perf tools: Add cpu_topology object
Commit-ID: 5135d5efcbb439c2acb20d6197dd57af3a456e76 Gitweb: https://git.kernel.org/tip/5135d5efcbb439c2acb20d6197dd57af3a456e76 Author: Jiri Olsa <[email protected]> AuthorDate: Tue, 19 Feb 2019 10:58:13 +0100 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 19 Feb 2019 12:21:01 -0300
perf tools: Add cpu_topology object
Make struct cpu_topo global and rename it to 'struct cpu_topology', so that it can be used from the 'perf record' command in the following patches.
Add the following interface functions to load/free cpu topology details:
struct cpu_topology *cpu_topology__new(void); void cpu_topology__delete(struct cpu_topology *tp);
Move it to a separate source file cputopo.c together with numa related object in the following patches.
No functional change, the new interface will be used in upcoming changes.
--- tools/perf/util/Build | 1 + tools/perf/util/cputopo.c | 144 ++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/cputopo.h | 17 ++++++ tools/perf/util/header.c | 150 ++-------------------------------------------- 4 files changed, 166 insertions(+), 146 deletions(-)
tools/perf/util/Build +1 -0
@@ -69,6 +69,7 @@ perf-y += hist.o perf-y += util.o perf-y += xyarray.o perf-y += cpumap.o +perf-y += cputopo.o perf-y += cgroup.o perf-y += target.o perf-y += rblist.o
tools/perf/util/cputopo.c new file +144 -0
144 lines not on this page · raw message
tools/perf/util/cputopo.h new file +17 -0
@@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __PERF_CPUTOPO_H +#define __PERF_CPUTOPO_H + +#include <linux/types.h> + +struct cpu_topology { +u32 core_sib; +u32 thread_sib; +char **core_siblings; +char **thread_siblings; +}; + +struct cpu_topology *cpu_topology__new (void ); +void cpu_topology__delete (struct cpu_topology *tp); + +#endif /* __PERF_CPUTOPO_H */
tools/perf/util/header.c +4 -146
175 lines not on this page · raw message
Jiri Olsa
reviewerPATCH v3 3/4 perf tools: Add numa_topology object
In reply to Jiri OlsaAdding numa_topology object to return the list of numa nodes together with their cpus. It will replace the numa code in header.c and will be used from perf record code in following patches.
Adding following interface functions to load numa details:
struct numa_topology *numa_topology__new(void); void numa_topology__delete(struct numa_topology *tp);
And replacing current (copied) local interface, with no functional changes.
--- tools/perf/util/cputopo.c | 118 +++++++++++++++++++++++++++++++++++++ tools/perf/util/cputopo.h | 16 +++++ tools/perf/util/header.c | 119 +++++++++----------------------------- 3 files changed, 160 insertions(+), 93 deletions(-)
tools/perf/util/cputopo.c +118 -0
@@ -1,9 +1,11 @@// SPDX-License-Identifier: GPL-2.0 #include <sys/param.h> +#include <inttypes.h> #include "cputopo.h" #include "cpumap.h" #include "util.h" +#include "env.h" #define CORE_SIB_FMT \
@@ -142,3 +144,119 @@ struct cpu_topology *cpu_topology__new(void) }return tp; } + +static int load_numa_node (struct numa_topology_node *node,int nr) +{ +char str[MAXPATHLEN ]; +char field[32 ]; +char *buf =NULL , *p; +size_t len =0 ; +int ret =-1 ; +FILE *fp; +u64 mem; + + node->node = (u32 ) nr; + +sprintf (str,"/sys/devices/system/node/node%d/meminfo" , nr); + fp =fopen (str,"r" ); +if (!fp) +return -1 ; + +while (getline (&buf, &len, fp) >0 ) { +/* skip over invalid lines */ +if (!strchr (buf,':' )) +continue ; +if (sscanf (buf,"%*s %*d %31s %" PRIu64, field, &mem) !=2 ) + goto err; +if (!strcmp (field,"MemTotal:" )) + node->mem_total = mem; +if (!strcmp (field,"MemFree:" )) + node->mem_free = mem; +if (node->mem_total && node->mem_free) +break ; + } + +fclose (fp); + fp =NULL ; + +sprintf (str,"/sys/devices/system/node/node%d/cpulist" , nr); + + fp =fopen (str,"r" ); +if (!fp) +return -1 ; + +if (getline (&buf, &len, fp) <=0 ) + goto err; + + p =strchr (buf,'\n' ); +if (p) + *p ='\0' ; + + node->cpus = buf; +fclose (fp); +return 0 ; + +err: +free (buf); +if (fp) +fclose (fp); +return ret; +} + +struct numa_topology *numa_topology__new (void ) +{ +struct cpu_map *node_map =NULL ; +struct numa_topology *tp =NULL ; +char *buf =NULL ; +size_t len =0 ; +u32 nr, i; +FILE *fp; +char *c; + + fp =fopen ("/sys/devices/system/node/online" ,"r" ); +if (!fp) +return NULL ; + +if (getline (&buf, &len, fp) <=0 ) + goto out; + + c =strchr (buf,'\n' ); +if (c) + *c ='\0' ; + + node_map =cpu_map__new (buf); +if (!node_map) + goto out; + + nr = (u32 ) node_map->nr; + + tp =zalloc (sizeof (*tp) +sizeof (tp->nodes[0 ])*nr); +if (!tp) + goto out; + + tp->nr = nr; + +for (i =0 ; i < nr; i++) { +if (load_numa_node (&tp->nodes[i], node_map->map[i])) { +numa_topology__delete (tp); + tp =NULL ; +break ; + } + } + +out: +free (buf); +fclose (fp); +cpu_map__put (node_map); +return tp; +} + +void numa_topology__delete (struct numa_topology *tp) +{ +u32 i; + +for (i =0 ; i < tp->nr; i++) +free (tp->nodes[i].cpus); + +free (tp); +}
tools/perf/util/cputopo.h +16 -0
@@ -3,6 +3,7 @@#define __PERF_CPUTOPO_H#include <linux/types.h> +#include "env.h" struct cpu_topology {u32 core_sib;
@@ -11,7 +12,22 @@ struct cpu_topology { char **thread_siblings; }; +struct numa_topology_node { +char *cpus; +u32 node; +u64 mem_total; +u64 mem_free; +}; + +struct numa_topology { +u32 nr; +struct numa_topology_node nodes[0 ]; +}; +struct cpu_topology *cpu_topology__new (void );void cpu_topology__delete (struct cpu_topology *tp); +struct numa_topology *numa_topology__new (void ); +void numa_topology__delete (struct numa_topology *tp); +#endif /* __PERF_CPUTOPO_H */
tools/perf/util/header.c +26 -93
138 lines not on this page · raw message
Signature · 1 line
2.17.2
tip-bot for Jiri Olsa
merge bot[tip:perf/core] perf tools: Add numa_topology object
perf tools: Add numa_topology object
Commit-ID: 48e6c5acd36873ff022cd97de866bfd0a36a3b99 Gitweb: https://git.kernel.org/tip/48e6c5acd36873ff022cd97de866bfd0a36a3b99 Author: Jiri Olsa <[email protected]> AuthorDate: Tue, 19 Feb 2019 10:58:14 +0100 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 19 Feb 2019 12:21:06 -0300
perf tools: Add numa_topology object
Add the numa_topology object to return the list of numa nodes together with their cpus. It will replace the numa code in header.c and will be used from 'perf record' in the following patches.
Add the following interface functions to load numa details:
struct numa_topology *numa_topology__new(void); void numa_topology__delete(struct numa_topology *tp);
And replace the current (copied) local interface, with no functional changes.
--- tools/perf/util/cputopo.c | 118 +++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/cputopo.h | 16 +++++++ tools/perf/util/header.c | 119 ++++++++++------------------------------------ 3 files changed, 160 insertions(+), 93 deletions(-)
tools/perf/util/cputopo.c +118 -0
@@ -1,9 +1,11 @@// SPDX-License-Identifier: GPL-2.0 #include <sys/param.h> +#include <inttypes.h> #include "cputopo.h" #include "cpumap.h" #include "util.h" +#include "env.h" #define CORE_SIB_FMT \
@@ -142,3 +144,119 @@ out_free: }return tp; } + +static int load_numa_node (struct numa_topology_node *node,int nr) +{ +char str[MAXPATHLEN ]; +char field[32 ]; +char *buf =NULL , *p; +size_t len =0 ; +int ret =-1 ; +FILE *fp; +u64 mem; + + node->node = (u32 ) nr; + +sprintf (str,"/sys/devices/system/node/node%d/meminfo" , nr); + fp =fopen (str,"r" ); +if (!fp) +return -1 ; + +while (getline (&buf, &len, fp) >0 ) { +/* skip over invalid lines */ +if (!strchr (buf,':' )) +continue ; +if (sscanf (buf,"%*s %*d %31s %" PRIu64, field, &mem) !=2 ) + goto err; +if (!strcmp (field,"MemTotal:" )) + node->mem_total = mem; +if (!strcmp (field,"MemFree:" )) + node->mem_free = mem; +if (node->mem_total && node->mem_free) +break ; + } + +fclose (fp); + fp =NULL ; + +sprintf (str,"/sys/devices/system/node/node%d/cpulist" , nr); + + fp =fopen (str,"r" ); +if (!fp) +return -1 ; + +if (getline (&buf, &len, fp) <=0 ) + goto err; + + p =strchr (buf,'\n' ); +if (p) + *p ='\0' ; + + node->cpus = buf; +fclose (fp); +return 0 ; + +err: +free (buf); +if (fp) +fclose (fp); +return ret; +} + +struct numa_topology *numa_topology__new (void ) +{ +struct cpu_map *node_map =NULL ; +struct numa_topology *tp =NULL ; +char *buf =NULL ; +size_t len =0 ; +u32 nr, i; +FILE *fp; +char *c; + + fp =fopen ("/sys/devices/system/node/online" ,"r" ); +if (!fp) +return NULL ; + +if (getline (&buf, &len, fp) <=0 ) + goto out; + + c =strchr (buf,'\n' ); +if (c) + *c ='\0' ; + + node_map =cpu_map__new (buf); +if (!node_map) + goto out; + + nr = (u32 ) node_map->nr; + + tp =zalloc (sizeof (*tp) +sizeof (tp->nodes[0 ])*nr); +if (!tp) + goto out; + + tp->nr = nr; + +for (i =0 ; i < nr; i++) { +if (load_numa_node (&tp->nodes[i], node_map->map[i])) { +numa_topology__delete (tp); + tp =NULL ; +break ; + } + } + +out: +free (buf); +fclose (fp); +cpu_map__put (node_map); +return tp; +} + +void numa_topology__delete (struct numa_topology *tp) +{ +u32 i; + +for (i =0 ; i < tp->nr; i++) +free (tp->nodes[i].cpus); + +free (tp); +}
tools/perf/util/cputopo.h +16 -0
@@ -3,6 +3,7 @@#define __PERF_CPUTOPO_H#include <linux/types.h> +#include "env.h" struct cpu_topology {u32 core_sib;
@@ -11,7 +12,22 @@ struct cpu_topology { char **thread_siblings; }; +struct numa_topology_node { +char *cpus; +u32 node; +u64 mem_total; +u64 mem_free; +}; + +struct numa_topology { +u32 nr; +struct numa_topology_node nodes[0 ]; +}; +struct cpu_topology *cpu_topology__new (void );void cpu_topology__delete (struct cpu_topology *tp); +struct numa_topology *numa_topology__new (void ); +void numa_topology__delete (struct numa_topology *tp); +#endif /* __PERF_CPUTOPO_H */
tools/perf/util/header.c +26 -93
138 lines not on this page · raw message
Jiri Olsa
reviewerPATCH v3 4/4 perf tools: Use sysfs__mountpoint() when reading cpu topology
In reply to Jiri OlsaUsing sysfs__mountpoint() when reading sysfs files for cpu/numa topology.
Also using scnprintf instead of sprintf as suggested by Namhyung.
--- tools/perf/util/cputopo.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-)
tools/perf/util/cputopo.c +22 -7
@@ -1,6 +1,7 @@// SPDX-License-Identifier: GPL-2.0 #include <sys/param.h> #include <inttypes.h> +#include <api/fs/fs.h> #include "cputopo.h" #include "cpumap.h"
@@ -9,9 +10,15 @@#define CORE_SIB_FMT \ - "/sys/devices/system/cpu/cpu%d/topology/core_siblings_list" + "%s/devices/system/cpu/cpu%d/topology/core_siblings_list"#define THRD_SIB_FMT \ - "/sys/devices/system/cpu/cpu%d/topology/thread_siblings_list" + "%s/devices/system/cpu/cpu%d/topology/thread_siblings_list" +#define NODE_ONLINE_FMT \ + "%s/devices/system/node/online" +#define NODE_MEMINFO_FMT \ + "%s/devices/system/node/node%d/meminfo" +#define NODE_CPULIST_FMT \ + "%s/devices/system/node/node%d/cpulist"static int build_cpu_topology (struct cpu_topology *tp,int cpu) {
@@ -23,7 +30,8 @@ static int build_cpu_topology(struct cpu_topology *tp, int cpu)u32 i =0 ;int ret =-1 ; -sprintf (filename,CORE_SIB_FMT , cpu); +scnprintf (filename,MAXPATHLEN ,CORE_SIB_FMT , +sysfs__mountpoint (), cpu); fp =fopen (filename,"r" );if (!fp) goto try_threads;
@@ -50,7 +58,8 @@ static int build_cpu_topology(struct cpu_topology *tp, int cpu) ret =0 ; try_threads: -sprintf (filename,THRD_SIB_FMT , cpu); +scnprintf (filename,MAXPATHLEN ,THRD_SIB_FMT , +sysfs__mountpoint (), cpu); fp =fopen (filename,"r" );if (!fp) goto done;
@@ -157,7 +166,8 @@ static int load_numa_node(struct numa_topology_node *node, int nr) node->node = (u32 ) nr; -sprintf (str,"/sys/devices/system/node/node%d/meminfo" , nr); +scnprintf (str,MAXPATHLEN ,NODE_MEMINFO_FMT , +sysfs__mountpoint (), nr); fp =fopen (str,"r" );if (!fp)return -1 ;
@@ -179,7 +189,8 @@ static int load_numa_node(struct numa_topology_node *node, int nr)fclose (fp); fp =NULL ; -sprintf (str,"/sys/devices/system/node/node%d/cpulist" , nr); +scnprintf (str,MAXPATHLEN ,NODE_CPULIST_FMT , +sysfs__mountpoint (), nr); fp =fopen (str,"r" );if (!fp)
@@ -207,13 +218,17 @@ struct numa_topology *numa_topology__new(void) {struct cpu_map *node_map =NULL ;struct numa_topology *tp =NULL ; +char path[MAXPATHLEN ];char *buf =NULL ;size_t len =0 ;u32 nr, i;FILE *fp;char *c; - fp =fopen ("/sys/devices/system/node/online" ,"r" ); +scnprintf (path,MAXPATHLEN ,NODE_ONLINE_FMT , +sysfs__mountpoint ()); + + fp =fopen (path,"r" );if (!fp)return NULL ;
Signature · 1 line
2.17.2
tip-bot for Jiri Olsa
merge bot[tip:perf/core] perf tools: Use sysfs__mountpoint() when reading cpu topology
perf tools: Use sysfs__mountpoint() when reading cpu topology
Commit-ID: e19a01c1438e123d169fd09376a221d844797174 Gitweb: https://git.kernel.org/tip/e19a01c1438e123d169fd09376a221d844797174 Author: Jiri Olsa <[email protected]> AuthorDate: Tue, 19 Feb 2019 10:58:15 +0100 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 19 Feb 2019 12:21:10 -0300
perf tools: Use sysfs__mountpoint() when reading cpu topology
Use sysfs__mountpoint() when reading sysfs files to obtain cpu/numa topologies.
Also use scnprintf instead of sprintf as suggested by Namhyung.
--- tools/perf/util/cputopo.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-)
tools/perf/util/cputopo.c +22 -7
@@ -1,6 +1,7 @@// SPDX-License-Identifier: GPL-2.0 #include <sys/param.h> #include <inttypes.h> +#include <api/fs/fs.h> #include "cputopo.h" #include "cpumap.h"
@@ -9,9 +10,15 @@#define CORE_SIB_FMT \ - "/sys/devices/system/cpu/cpu%d/topology/core_siblings_list" + "%s/devices/system/cpu/cpu%d/topology/core_siblings_list"#define THRD_SIB_FMT \ - "/sys/devices/system/cpu/cpu%d/topology/thread_siblings_list" + "%s/devices/system/cpu/cpu%d/topology/thread_siblings_list" +#define NODE_ONLINE_FMT \ + "%s/devices/system/node/online" +#define NODE_MEMINFO_FMT \ + "%s/devices/system/node/node%d/meminfo" +#define NODE_CPULIST_FMT \ + "%s/devices/system/node/node%d/cpulist"static int build_cpu_topology (struct cpu_topology *tp,int cpu) {
@@ -23,7 +30,8 @@ static int build_cpu_topology(struct cpu_topology *tp, int cpu)u32 i =0 ;int ret =-1 ; -sprintf (filename,CORE_SIB_FMT , cpu); +scnprintf (filename,MAXPATHLEN ,CORE_SIB_FMT , +sysfs__mountpoint (), cpu); fp =fopen (filename,"r" );if (!fp) goto try_threads;
@@ -50,7 +58,8 @@ static int build_cpu_topology(struct cpu_topology *tp, int cpu) ret =0 ; try_threads: -sprintf (filename,THRD_SIB_FMT , cpu); +scnprintf (filename,MAXPATHLEN ,THRD_SIB_FMT , +sysfs__mountpoint (), cpu); fp =fopen (filename,"r" );if (!fp) goto done;
@@ -157,7 +166,8 @@ static int load_numa_node(struct numa_topology_node *node, int nr) node->node = (u32 ) nr; -sprintf (str,"/sys/devices/system/node/node%d/meminfo" , nr); +scnprintf (str,MAXPATHLEN ,NODE_MEMINFO_FMT , +sysfs__mountpoint (), nr); fp =fopen (str,"r" );if (!fp)return -1 ;
@@ -179,7 +189,8 @@ static int load_numa_node(struct numa_topology_node *node, int nr)fclose (fp); fp =NULL ; -sprintf (str,"/sys/devices/system/node/node%d/cpulist" , nr); +scnprintf (str,MAXPATHLEN ,NODE_CPULIST_FMT , +sysfs__mountpoint (), nr); fp =fopen (str,"r" );if (!fp)
@@ -207,13 +218,17 @@ struct numa_topology *numa_topology__new(void) {struct cpu_map *node_map =NULL ;struct numa_topology *tp =NULL ; +char path[MAXPATHLEN ];char *buf =NULL ;size_t len =0 ;u32 nr, i;FILE *fp;char *c; - fp =fopen ("/sys/devices/system/node/online" ,"r" ); +scnprintf (path,MAXPATHLEN ,NODE_ONLINE_FMT , +sysfs__mountpoint ()); + + fp =fopen (path,"r" );if (!fp)return NULL ;
Hi Jirka,
Quoted 22 lines · Jiri Olsa
hi,
sending assorted general fixes that queued
up in my other branches.v3 changes:
- fix for fixes found by Namhyung
- new patch to usesysfs__mountpointv2 changes:
- renamed the interface to struct cpu_topology/numa_topology plus related changes in function names
- adding missing Fixes tagAlso available in here:
https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
perf/fixesthanks,
jirka
Quoted 6 lines
---
Jiri Olsa (4):
perf header: Fix wrong node write inNUMA_TOPOLOGYfeature perf tools: Addcpu_topologyobject
perf tools: Addnuma_topologyobject
perf tools: Usesysfs__mountpoint()when reading cpu topology
Thanks,
Namhyung
Quoted 8 lines
tools/perf/util/Build | 1 + tools/perf/util/cputopo.c | 277 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/cputopo.h | 33 ++++++++++++++++++++++ tools/perf/util/header.c | 269 ++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------- 4 files changed, 341 insertions(+), 239 deletions(-) create mode 100644 tools/perf/util/cputopo.c create mode 100644 tools/perf/util/cputopo.h
Arnaldo Carvalho de Melo
maintainerEm Tue, Feb 19, 2019 at 11:28:31PM +0900, Namhyung Kim escreveu:
Quoted 25 lines
Hi Jirka,
Quoted 22 lines · Jiri Olsa
hi,
sending assorted general fixes that queued
up in my other branches.v3 changes:
- fix for fixes found by Namhyung
- new patch to usesysfs__mountpointv2 changes:
- renamed the interface to struct cpu_topology/numa_topology plus related changes in function names
- adding missing Fixes tagAlso available in here:
https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
perf/fixesthanks,
jirka
Quoted 8 lines
Quoted 6 lines
---
Jiri Olsa (4):
perf header: Fix wrong node write inNUMA_TOPOLOGYfeature perf tools: Addcpu_topologyobject
perf tools: Addnuma_topologyobject
perf tools: Usesysfs__mountpoint()when reading cpu topologyAcked-by Namhyung Kim <[email protected]>
Thanks, added and applied.
- Arnaldo