mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-08-09 06:14:34 +02:00
As struct perf_sample now directly contains its own resolved evsel pointer, passing the evsel separately is redundant and clutters the interface. Remove the redundant evsel parameter from db-export-specific handlers and structures, ensuring the tool always directly accesses the evsel bound to the sample. This simplifies the API signatures and eliminates the risk of passing an inconsistent evsel. Signed-off-by: Ian Rogers <irogers@google.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Alexandre Ghiti <alex@ghiti.fr> Cc: Andi Kleen <ak@linux.intel.com> Cc: Andrew Jones <ajones@ventanamicro.com> Cc: Anup Patel <anup@brainfault.org> Cc: Athira Rajeev <atrajeev@linux.ibm.com> Cc: Blake Jones <blakejones@google.com> Cc: Chen Ni <nichen@iscas.ac.cn> Cc: Chun-Tse Shao <ctshao@google.com> Cc: Dapeng Mi <dapeng1.mi@linux.intel.com> Cc: Derek Foreman <derek.foreman@collabora.com> Cc: Dmitriy Vyukov <dvyukov@google.com> Cc: Dr. David Alan Gilbert <linux@treblig.org> Cc: Howard Chu <howardchu95@gmail.com> Cc: Hrishikesh Suresh <hrishikesh123s@gmail.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@linaro.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Krzysztof Łopatowski <krzysztof.m.lopatowski@gmail.com> Cc: Leo Yan <leo.yan@arm.com> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Paul Walmsley <pjw@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Quan Zhou <zhouquan@iscas.ac.cn> Cc: Ravi Bangoria <ravi.bangoria@amd.com> Cc: Swapnil Sapkal <swapnil.sapkal@amd.com> Cc: Thomas Falcon <thomas.falcon@intel.com> Cc: Tianyou Li <tianyou.li@intel.com> Cc: Yujie Liu <yujie.liu@intel.com> Cc: tanze <tanze@kylinos.cn> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
110 lines
3.8 KiB
C
110 lines
3.8 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* db-export.h: Support for exporting data suitable for import to a database
|
|
* Copyright (c) 2014, Intel Corporation.
|
|
*/
|
|
|
|
#ifndef __PERF_DB_EXPORT_H
|
|
#define __PERF_DB_EXPORT_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/list.h>
|
|
|
|
struct evsel;
|
|
struct machine;
|
|
struct thread;
|
|
struct comm;
|
|
struct dso;
|
|
struct perf_sample;
|
|
struct addr_location;
|
|
struct call_return_processor;
|
|
struct call_path_root;
|
|
struct call_path;
|
|
struct call_return;
|
|
|
|
struct export_sample {
|
|
union perf_event *event;
|
|
struct perf_sample *sample;
|
|
struct addr_location *al;
|
|
u64 db_id;
|
|
u64 comm_db_id;
|
|
u64 dso_db_id;
|
|
u64 sym_db_id;
|
|
u64 offset; /* ip offset from symbol start */
|
|
u64 addr_dso_db_id;
|
|
u64 addr_sym_db_id;
|
|
u64 addr_offset; /* addr offset from symbol start */
|
|
u64 call_path_id;
|
|
};
|
|
|
|
struct db_export {
|
|
int (*export_evsel)(struct db_export *dbe, struct evsel *evsel);
|
|
int (*export_machine)(struct db_export *dbe, struct machine *machine);
|
|
int (*export_thread)(struct db_export *dbe, struct thread *thread,
|
|
u64 main_thread_db_id, struct machine *machine);
|
|
int (*export_comm)(struct db_export *dbe, struct comm *comm,
|
|
struct thread *thread);
|
|
int (*export_comm_thread)(struct db_export *dbe, u64 db_id,
|
|
struct comm *comm, struct thread *thread);
|
|
int (*export_dso)(struct db_export *dbe, struct dso *dso,
|
|
struct machine *machine);
|
|
int (*export_symbol)(struct db_export *dbe, struct symbol *sym,
|
|
struct dso *dso);
|
|
int (*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 (*export_call_path)(struct db_export *dbe, struct call_path *cp);
|
|
int (*export_call_return)(struct db_export *dbe,
|
|
struct call_return *cr);
|
|
int (*export_context_switch)(struct db_export *dbe, u64 db_id,
|
|
struct machine *machine,
|
|
struct perf_sample *sample,
|
|
u64 th_out_id, u64 comm_out_id,
|
|
u64 th_in_id, u64 comm_in_id, int flags);
|
|
struct call_return_processor *crp;
|
|
struct call_path_root *cpr;
|
|
u64 evsel_last_db_id;
|
|
u64 machine_last_db_id;
|
|
u64 thread_last_db_id;
|
|
u64 comm_last_db_id;
|
|
u64 comm_thread_last_db_id;
|
|
u64 dso_last_db_id;
|
|
u64 symbol_last_db_id;
|
|
u64 sample_last_db_id;
|
|
u64 call_path_last_db_id;
|
|
u64 call_return_last_db_id;
|
|
u64 context_switch_last_db_id;
|
|
};
|
|
|
|
int db_export__init(struct db_export *dbe);
|
|
void db_export__exit(struct db_export *dbe);
|
|
int db_export__evsel(struct db_export *dbe, struct evsel *evsel);
|
|
int db_export__machine(struct db_export *dbe, struct machine *machine);
|
|
int db_export__thread(struct db_export *dbe, struct thread *thread,
|
|
struct machine *machine, struct thread *main_thread);
|
|
int db_export__comm(struct db_export *dbe, struct comm *comm,
|
|
struct thread *thread);
|
|
int db_export__exec_comm(struct db_export *dbe, struct comm *comm,
|
|
struct thread *main_thread);
|
|
int db_export__comm_thread(struct db_export *dbe, struct comm *comm,
|
|
struct thread *thread);
|
|
int db_export__dso(struct db_export *dbe, struct dso *dso,
|
|
struct machine *machine);
|
|
int db_export__symbol(struct db_export *dbe, struct symbol *sym,
|
|
struct dso *dso);
|
|
int db_export__branch_type(struct db_export *dbe, u32 branch_type,
|
|
const char *name);
|
|
int db_export__sample(struct db_export *dbe, union perf_event *event,
|
|
struct perf_sample *sample,
|
|
struct addr_location *al, struct addr_location *addr_al);
|
|
|
|
int db_export__branch_types(struct db_export *dbe);
|
|
|
|
int db_export__call_path(struct db_export *dbe, struct call_path *cp);
|
|
int db_export__call_return(struct db_export *dbe, struct call_return *cr,
|
|
u64 *parent_db_id);
|
|
int db_export__switch(struct db_export *dbe, union perf_event *event,
|
|
struct perf_sample *sample, struct machine *machine);
|
|
|
|
#endif
|