mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 05:31:08 -04:00
perf thread: Introduce method to set comm from /proc/pid/self
Will be used for lazy comm loading in 'perf trace'. Cc: Adrian Hunter <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: David Ahern <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Milian Wolff <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Wang Nan <[email protected]> Link: http://lkml.kernel.org/n/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
This commit is contained in:
1 parent
4bd112df3e
commit
2f3027ac28
2 files changed
+21
No files matched your search
@@ -10,6 +10,8 @@
|
||||
#include "comm.h"
|
||||
#include "unwind.h"
|
||||
|
||||
#include <api/fs/fs.h>
|
||||
|
||||
int thread__init_map_groups(struct thread *thread, struct machine *machine)
|
||||
{
|
||||
struct thread *leader;
|
||||
@@ -153,6 +155,23 @@ int __thread__set_comm(struct thread *thread, const char *str, u64 timestamp,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int thread__set_comm_from_proc(struct thread *thread)
|
||||
{
|
||||
char path[64];
|
||||
char *comm = NULL;
|
||||
size_t sz;
|
||||
int err = -1;
|
||||
|
||||
if (!(snprintf(path, sizeof(path), "%d/task/%d/comm",
|
||||
thread->pid_, thread->tid) >= (int)sizeof(path)) &&
|
||||
procfs__read_str(path, &comm, &sz) == 0) {
|
||||
comm[sz - 1] = '\0';
|
||||
err = thread__set_comm(thread, comm, 0);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
const char *thread__comm_str(const struct thread *thread)
|
||||
{
|
||||
const struct comm *comm = thread__comm(thread);
|
||||
|
||||
@@ -71,6 +71,8 @@ static inline int thread__set_comm(struct thread *thread, const char *comm,
|
||||
return __thread__set_comm(thread, comm, timestamp, false);
|
||||
}
|
||||
|
||||
int thread__set_comm_from_proc(struct thread *thread);
|
||||
|
||||
int thread__comm_len(struct thread *thread);
|
||||
struct comm *thread__comm(const struct thread *thread);
|
||||
struct comm *thread__exec_comm(const struct thread *thread);
|
||||
|
||||
Reference in new issue
Block a user