perf tools: Add machine__kernel_ip()
Add a function to determine if an address is in the kernel. This is based on the kernel function kernel_ip(). Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1408129739-17368-5-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:

committed by
Arnaldo Carvalho de Melo

parent
4b99375b38
commit
fbe2af45f6
@@ -36,6 +36,7 @@ struct machine {
|
||||
struct list_head kernel_dsos;
|
||||
struct map_groups kmaps;
|
||||
struct map *vmlinux_maps[MAP__NR_TYPES];
|
||||
u64 kernel_start;
|
||||
symbol_filter_t symbol_filter;
|
||||
pid_t *current_tid;
|
||||
};
|
||||
@@ -46,6 +47,22 @@ struct map *machine__kernel_map(struct machine *machine, enum map_type type)
|
||||
return machine->vmlinux_maps[type];
|
||||
}
|
||||
|
||||
int machine__get_kernel_start(struct machine *machine);
|
||||
|
||||
static inline u64 machine__kernel_start(struct machine *machine)
|
||||
{
|
||||
if (!machine->kernel_start)
|
||||
machine__get_kernel_start(machine);
|
||||
return machine->kernel_start;
|
||||
}
|
||||
|
||||
static inline bool machine__kernel_ip(struct machine *machine, u64 ip)
|
||||
{
|
||||
u64 kernel_start = machine__kernel_start(machine);
|
||||
|
||||
return ip >= kernel_start;
|
||||
}
|
||||
|
||||
struct thread *machine__find_thread(struct machine *machine, pid_t pid,
|
||||
pid_t tid);
|
||||
struct comm *machine__thread_exec_comm(struct machine *machine,
|
||||
|
Reference in New Issue
Block a user