]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - tools/perf/util/thread.h
perf: 'perf kvm' tool for monitoring guest performance from host
[mirror_ubuntu-bionic-kernel.git] / tools / perf / util / thread.h
CommitLineData
8b40f521
JK
1#ifndef __PERF_THREAD_H
2#define __PERF_THREAD_H
3
6baa0a5a 4#include <linux/rbtree.h>
6baa0a5a
FW
5#include <unistd.h>
6#include "symbol.h"
7
9958e1f0
ACM
8struct thread {
9 struct rb_node rb_node;
10 struct map_groups mg;
11 pid_t pid;
0ec04e16 12 char shortname[3];
faa5c5c3 13 bool comm_set;
b5fae128 14 char *comm;
a4fb581b 15 int comm_len;
6baa0a5a
FW
16};
17
4b8cf846
ACM
18struct perf_session;
19
d6d901c2 20int find_all_tid(int pid, pid_t ** all_tid);
6baa0a5a 21int thread__set_comm(struct thread *self, const char *comm);
a4fb581b 22int thread__comm_len(struct thread *self);
b3165f41 23struct thread *perf_session__findnew(struct perf_session *self, pid_t pid);
6baa0a5a
FW
24void thread__insert_map(struct thread *self, struct map *map);
25int thread__fork(struct thread *self, struct thread *parent);
b3165f41 26size_t perf_session__fprintf(struct perf_session *self, FILE *fp);
8b40f521 27
9958e1f0
ACM
28static inline struct map *thread__find_map(struct thread *self,
29 enum map_type type, u64 addr)
95011c60 30{
9958e1f0 31 return self ? map_groups__find(&self->mg, type, addr) : NULL;
95011c60 32}
1ed091c4 33
59ee68ec
ACM
34void thread__find_addr_map(struct thread *self,
35 struct perf_session *session, u8 cpumode,
a1645ce1 36 enum map_type type, pid_t pid, u64 addr,
59ee68ec
ACM
37 struct addr_location *al);
38
4aa65636
ACM
39void thread__find_addr_location(struct thread *self,
40 struct perf_session *session, u8 cpumode,
a1645ce1 41 enum map_type type, pid_t pid, u64 addr,
1ed091c4
ACM
42 struct addr_location *al,
43 symbol_filter_t filter);
8b40f521 44#endif /* __PERF_THREAD_H */