tools/perf/util/auxtrace.h
Source file repositories/reference/linux-study-clean/tools/perf/util/auxtrace.h
File Facts
- System
- Linux kernel
- Corpus path
tools/perf/util/auxtrace.h- Extension
.h- Size
- 25460 bytes
- Lines
- 703
- Domain
- Support Tooling And Documentation
- Bucket
- tools
- Inferred role
- Support Tooling And Documentation: implementation source
- Status
- source implementation candidate
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
sys/types.hstdio.hlinux/perf_event.hlinux/types.hasm/barrier.hperf/cpumap.h
Detected Declarations
struct perf_sessionstruct evliststruct evselstruct perf_envstruct perf_toolstruct mmapstruct perf_samplestruct optionstruct record_optsstruct perf_record_auxtrace_errorstruct perf_record_auxtrace_infostruct events_statsstruct perf_pmustruct itrace_synth_optsstruct auxtrace_index_entrystruct auxtrace_indexstruct auxtracestruct auxtrace_bufferstruct auxtrace_queuestruct auxtrace_queuesstruct auxtrace_heap_itemstruct auxtrace_heapstruct auxtrace_mmapstruct auxtrace_mmap_paramsstruct auxtrace_recordstruct addr_filterstruct addr_filtersstruct auxtrace_cachestruct auxtrace_cache_entryenum auxtrace_error_typeenum auxtrace_typeenum itrace_period_typefunction auxtrace_mmap__read_headfunction auxtrace_mmap__write_tailfunction itrace_synth_opts__set_time_rangefunction itrace_synth_opts__clear_time_range
Annotated Snippet
struct itrace_synth_opts {
bool set;
bool default_no_sample;
bool inject;
bool instructions;
bool cycles;
bool branches;
bool transactions;
bool ptwrites;
bool pwr_events;
bool other_events;
bool intr_events;
bool errors;
bool dont_decode;
bool log;
bool calls;
bool returns;
bool callchain;
bool add_callchain;
bool thread_stack;
bool last_branch;
bool add_last_branch;
bool approx_ipc;
bool flc;
bool llc;
bool tlb;
bool remote_access;
bool mem;
bool timeless_decoding;
bool use_timestamp;
bool vm_time_correlation;
bool vm_tm_corr_dry_run;
char *vm_tm_corr_args;
unsigned int callchain_sz;
unsigned int last_branch_sz;
unsigned long long period;
enum itrace_period_type period_type;
unsigned long initial_skip;
unsigned long *cpu_bitmap;
struct perf_time_interval *ptime_range;
int range_num;
unsigned int error_plus_flags;
unsigned int error_minus_flags;
unsigned int log_plus_flags;
unsigned int log_minus_flags;
unsigned int quick;
unsigned int log_on_error_size;
};
/**
* struct auxtrace_index_entry - indexes a AUX area tracing event within a
* perf.data file.
* @file_offset: offset within the perf.data file
* @sz: size of the event
*/
struct auxtrace_index_entry {
u64 file_offset;
u64 sz;
};
#define PERF_AUXTRACE_INDEX_ENTRY_COUNT 256
/**
* struct auxtrace_index - index of AUX area tracing events within a perf.data
* file.
* @list: linking a number of arrays of entries
* @nr: number of entries
* @entries: array of entries
*/
struct auxtrace_index {
struct list_head list;
size_t nr;
struct auxtrace_index_entry entries[PERF_AUXTRACE_INDEX_ENTRY_COUNT];
};
/**
* struct auxtrace - session callbacks to allow AUX area data decoding.
* @process_event: lets the decoder see all session events
* @process_auxtrace_event: process a PERF_RECORD_AUXTRACE event
* @queue_data: queue an AUX sample or PERF_RECORD_AUXTRACE event for later
* processing
* @dump_auxtrace_sample: dump AUX area sample data
* @flush_events: process any remaining data
* @free_events: free resources associated with event processing
* @free: free resources associated with the session
*/
struct auxtrace {
int (*process_event)(struct perf_session *session,
union perf_event *event,
struct perf_sample *sample,
Annotation
- Immediate include surface: `sys/types.h`, `stdio.h`, `linux/perf_event.h`, `linux/types.h`, `asm/barrier.h`, `perf/cpumap.h`.
- Detected declarations: `struct perf_session`, `struct evlist`, `struct evsel`, `struct perf_env`, `struct perf_tool`, `struct mmap`, `struct perf_sample`, `struct option`, `struct record_opts`, `struct perf_record_auxtrace_error`.
- Atlas domain: Support Tooling And Documentation / tools.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.