mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

Support for build IDs in mmap2 perf events has been present since Linux v5.12: https://lore.kernel.org/lkml/20210219194619.1780437-1-acme@kernel.org/ Build ID mmap events don't avoid the need to inject build IDs for DSO touched by samples as the build ID cache is populated by perf record. They can avoid some cases of symbol mis-resolution caused by the file system changing from when a sample occurred and when the DSO is sought. Unlike the --buildid-mmap option, this chnage doesn't disable the build ID cache but it does disable the processing of samples looking for DSOs to inject build IDs for. To disable the build ID cache the -B (--no-buildid) option should be used. Making this option the default was raised on the list in: https://lore.kernel.org/linux-perf-users/CAP-5=fXP7jN_QrGUcd55_QH5J-Y-FCaJ6=NaHVtyx0oyNh8_-Q@mail.gmail.com/ Signed-off-by: Ian Rogers <irogers@google.com> Link: https://lore.kernel.org/r/20250724163302.596743-9-irogers@google.com Signed-off-by: Namhyung Kim <namhyung@kernel.org>
95 lines
1.9 KiB
C
95 lines
1.9 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __PERF_SYMBOL_CONF
|
|
#define __PERF_SYMBOL_CONF 1
|
|
|
|
#include <stdbool.h>
|
|
#include <linux/bitmap.h>
|
|
#include "perf.h"
|
|
|
|
struct strlist;
|
|
struct intlist;
|
|
|
|
struct symbol_conf {
|
|
bool nanosecs;
|
|
unsigned short priv_size;
|
|
bool try_vmlinux_path,
|
|
init_annotation,
|
|
force,
|
|
ignore_vmlinux,
|
|
ignore_vmlinux_buildid,
|
|
show_kernel_path,
|
|
use_modules,
|
|
allow_aliases,
|
|
show_nr_samples,
|
|
show_total_period,
|
|
use_callchain,
|
|
cumulate_callchain,
|
|
show_branchflag_count,
|
|
exclude_other,
|
|
show_cpu_utilization,
|
|
initialized,
|
|
kptr_restrict,
|
|
event_group,
|
|
demangle,
|
|
demangle_kernel,
|
|
filter_relative,
|
|
show_hist_headers,
|
|
has_filter,
|
|
show_ref_callgraph,
|
|
hide_unresolved,
|
|
raw_trace,
|
|
report_hierarchy,
|
|
report_block,
|
|
report_individual_block,
|
|
inline_name,
|
|
disable_add2line_warn,
|
|
no_buildid_mmap2,
|
|
guest_code,
|
|
lazy_load_kernel_maps,
|
|
keep_exited_threads,
|
|
annotate_data_member,
|
|
annotate_data_sample,
|
|
skip_empty,
|
|
enable_latency,
|
|
prefer_latency;
|
|
const char *vmlinux_name,
|
|
*kallsyms_name,
|
|
*source_prefix,
|
|
*field_sep,
|
|
*graph_function;
|
|
const char *default_guest_vmlinux_name,
|
|
*default_guest_kallsyms,
|
|
*default_guest_modules;
|
|
const char *guestmount;
|
|
const char *dso_list_str,
|
|
*comm_list_str,
|
|
*pid_list_str,
|
|
*tid_list_str,
|
|
*sym_list_str,
|
|
*parallelism_list_str,
|
|
*col_width_list_str,
|
|
*bt_stop_list_str;
|
|
const char *addr2line_path;
|
|
unsigned long time_quantum;
|
|
struct strlist *dso_list,
|
|
*comm_list,
|
|
*sym_list,
|
|
*dso_from_list,
|
|
*dso_to_list,
|
|
*sym_from_list,
|
|
*sym_to_list,
|
|
*bt_stop_list;
|
|
struct intlist *pid_list,
|
|
*tid_list,
|
|
*addr_list;
|
|
const char *symfs;
|
|
int res_sample;
|
|
int pad_output_len_dso;
|
|
int group_sort_idx;
|
|
int addr_range;
|
|
DECLARE_BITMAP(parallelism_filter, MAX_NR_CPUS + 1);
|
|
};
|
|
|
|
extern struct symbol_conf symbol_conf;
|
|
|
|
#endif // __PERF_SYMBOL_CONF
|