40 while (!list_empty(&dbe->
deferred)) {
57 while (!list_empty(&dbe->
deferred)) {
127 struct thread *main_thread;
128 u64 main_thread_db_id = 0;
136 if (thread->
pid_ != -1) {
137 if (thread->
pid_ == thread->
tid) {
138 main_thread = thread;
155 main_thread_db_id = main_thread->
db_id;
156 if (main_thread != thread)
172 struct thread *main_thread)
237 u64 *dso_db_id, u64 *sym_db_id, u64 *offset)
247 *dso_db_id = dso->
db_id;
290 sample, NULL, NULL, PERF_MAX_STACK_DEPTH);
300 u64 dso_db_id = 0, sym_db_id = 0, offset = 0;
302 memset(&al, 0,
sizeof(al));
361 struct thread *main_thread;
404 if ((evsel->
attr.sample_type & PERF_SAMPLE_ADDR) &&
440 "software interrupt"},
442 "return from interrupt"},
446 "return from system call"},
void thread__resolve(struct thread *thread, struct addr_location *al, struct perf_sample *sample)
int(* export_branch_type)(struct db_export *dbe, u32 branch_type, const char *name)
struct list_head deferred
int db_export__evsel(struct db_export *dbe, struct perf_evsel *evsel)
void dso__insert_symbol(struct dso *dso, struct symbol *sym)
struct addr_location * al
u64 call_return_last_db_id
u64 comm_thread_last_db_id
int db_export__sample(struct db_export *dbe, union perf_event *event, struct perf_sample *sample, struct perf_evsel *evsel, struct addr_location *al)
struct ip_callchain * callchain
int(* export_symbol)(struct db_export *dbe, struct symbol *sym, struct dso *dso)
static void callchain_cursor_commit(struct callchain_cursor *cursor)
int db_export__init(struct db_export *dbe)
int(* export_call_path)(struct db_export *dbe, struct call_path *cp)
x86 movsq based memset() in arch/x86/lib/memset_64.S") MEMSET_FN(memset_erms
int db_export__branch_types(struct db_export *dbe)
struct perf_sample * sample
int(* export_evsel)(struct db_export *dbe, struct perf_evsel *evsel)
struct call_path_root * cpr
void call_return_processor__free(struct call_return_processor *crp)
int db_export__comm_thread(struct db_export *dbe, struct comm *comm, struct thread *thread)
struct call_path * parent
struct symbol * symbol__new(u64 start, u64 len, u8 binding, u8 type, const char *name)
struct call_path call_path
struct call_path * call_path__findnew(struct call_path_root *cpr, struct call_path *parent, struct symbol *sym, u64 ip, u64 ks)
struct call_return_processor * crp
int db_export__symbol(struct db_export *dbe, struct symbol *sym, struct dso *dso)
int thread_stack__process(struct thread *thread, struct comm *comm, struct perf_sample *sample, struct addr_location *from_al, struct addr_location *to_al, u64 ref, struct call_return_processor *crp)
static void callchain_cursor_advance(struct callchain_cursor *cursor)
void db_export__exit(struct db_export *dbe)
static struct @66 branch_types[]
int db_export__branch_type(struct db_export *dbe, u32 branch_type, const char *name)
int(* export_sample)(struct db_export *dbe, struct export_sample *es)
int db_export__call_return(struct db_export *dbe, struct call_return *cr)
struct symbol * dso__find_symbol(struct dso *dso, u64 addr)
int(* export_call_return)(struct db_export *dbe, struct call_return *cr)
struct thread * thread__main_thread(struct machine *machine, struct thread *thread)
int db_export__thread(struct db_export *dbe, struct thread *thread, struct machine *machine, struct comm *comm)
void thread__put(struct thread *thread)
static int sym(yyscan_t scanner, int type, int config)
struct comm * machine__thread_exec_comm(struct machine *machine, struct thread *thread)
struct perf_evsel * evsel
int(* export_comm_thread)(struct db_export *dbe, u64 db_id, struct comm *comm, struct thread *thread)
static int db_ids_from_al(struct db_export *dbe, struct addr_location *al, u64 *dso_db_id, u64 *sym_db_id, u64 *offset)
int(* export_comm)(struct db_export *dbe, struct comm *comm)
static struct call_path * call_path_from_sample(struct db_export *dbe, struct machine *machine, struct thread *thread, struct perf_sample *sample, struct perf_evsel *evsel)
static int db_export__defer_comm(struct db_export *dbe, struct comm *comm)
static int db_export__deferred(struct db_export *dbe)
int(* export_dso)(struct db_export *dbe, struct dso *dso, struct machine *machine)
int thread__resolve_callchain(struct thread *thread, struct callchain_cursor *cursor, struct perf_evsel *evsel, struct perf_sample *sample, struct symbol **parent, struct addr_location *root_al, int max_stack)
int(* export_thread)(struct db_export *dbe, struct thread *thread, u64 main_thread_db_id, struct machine *machine)
bool sample_addr_correlates_sym(struct perf_event_attr *attr)
int db_export__machine(struct db_export *dbe, struct machine *machine)
int db_export__flush(struct db_export *dbe)
int db_export__dso(struct db_export *dbe, struct dso *dso, struct machine *machine)
static void * symbol__priv(struct symbol *sym)
static void db_export__free_deferred(struct db_export *dbe)
static u64 machine__kernel_start(struct machine *machine)
int(* export_machine)(struct db_export *dbe, struct machine *machine)
struct thread * machine__findnew_thread(struct machine *machine, pid_t pid, pid_t tid)
struct perf_event_attr attr
int db_export__comm(struct db_export *dbe, struct comm *comm, struct thread *main_thread)
int db_export__call_path(struct db_export *dbe, struct call_path *cp)
static struct callchain_cursor_node * callchain_cursor_current(struct callchain_cursor *cursor)
void static void * zalloc(size_t size)