Man page - libtracefs(3)
Packages contains this manual
- tracefs_instance_get_subbuf_size(3)
- tracefs_tracer_clear(3)
- tracefs_function_notrace(3)
- tracefs_instance_file_append(3)
- tracefs_hist_alloc_nd(3)
- tracefs_instance_get_affinity(3)
- tracefs_error_clear(3)
- tracefs_instance_get_dir(3)
- tracefs_filter_pid_function_clear(3)
- tracefs_buffer_stat_timestamp(3)
- tracefs_hist_add_key(3)
- tracefs_set_loglevel(3)
- tracefs_trace_pipe_stop(3)
- tracefs_instance_file_open(3)
- tracefs_iterate_stop(3)
- tracefs_synth_append_end_filter(3)
- tracefs_vprintf(3)
- tracefs_instance_put_stat(3)
- tracefs_hist_add_value(3)
- tracefs_cpu_read(3)
- tracefs_synth_free(3)
- tracefs_event_file_exists(3)
- tracefs_instance_clear(3)
- tracefs_event_enable(3)
- tracefs_dynevent_get(3)
- tracefs_synth_add_match_field(3)
- tracefs_mapped_is_supported(3)
- tracefs_list_add(3)
- tracefs_load_cmdlines(3)
- tracefs_instance_set_affinity_raw(3)
- libtracefs(3)
- tracefs_hist_set_sort_key(3)
- tracefs_event_filter_clear(3)
- tracefs_tracing_dir_is_mounted(3)
- tracefs_binary_write(3)
- tracefs_cpu_snapshot_open(3)
- tracefs_cpu_unmap(3)
- tracefs_synth_add_compare_field(3)
- tracefs_synth_show_event(3)
- tracefs_follow_event(3)
- tracefs_option_name(3)
- tracefs_instance_free(3)
- tracefs_synth_add_end_field(3)
- tracefs_uretprobe_alloc(3)
- tracefs_synth_snapshot(3)
- tracefs_hist_alloc_nd_cnt(3)
- tracefs_synth_trace(3)
- tracefs_option_mask_is_set(3)
- tracefs_buffer_stat_commit_overrun(3)
- tracefs_tracer_available(3)
- tracefs_instance_get_buffer_percent(3)
- tracefs_instance_file_read_number(3)
- tracefs_cpu_flush(3)
- tracefs_synth_get_name(3)
- tracefs_synth_get_event(3)
- tracefs_dir_exists(3)
- tracefs_printf(3)
- tracefs_event_systems(3)
- tracefs_error_all(3)
- tracefs_cpu_stop(3)
- tracefs_hist_alloc(3)
- tracefs_trace_on_get_fd(3)
- tracefs_instance_get_stat(3)
- tracefs_snapshot_snap(3)
- tracefs_buffer_stat_dropped_events(3)
- tracefs_event_disable(3)
- tracefs_hist_get_name(3)
- tracefs_iterate_snapshot_events(3)
- tracefs_synth_set_instance(3)
- tracefs_filter_string_verify(3)
- tracefs_trace_off(3)
- tracefs_synth_show_end_hist(3)
- tracefs_dynevent_info(3)
- tracefs_sql(3)
- tracefs_error_last(3)
- tracefs_dynevent_get_all(3)
- tracefs_file_exists(3)
- tracefs_synth_show_start_hist(3)
- tracefs_hist_add_sort_key(3)
- tracefs_instance_file_clear(3)
- tracefs_kprobe_raw(3)
- tracefs_dynevent_destroy_all(3)
- tracefs_dynevent_free(3)
- tracefs_cpu_open(3)
- tracefs_load_headers(3)
- tracefs_filter_pid_events_clear(3)
- tracefs_instance_tracers(3)
- tracefs_instance_reset(3)
- tracefs_tracers(3)
- tracefs_cpu_is_mapped(3)
- tracefs_hist_add_key_cnt(3)
- tracefs_debug_dir(3)
- tracefs_hist_add_name(3)
- tracefs_instance_destroy(3)
- tracefs_event_file_append(3)
- tracefs_buffer_stat_bytes(3)
- tracefs_cpu_flush_write(3)
- tracefs_instances(3)
- tracefs_cpu_close(3)
- tracefs_hist_destroy(3)
- tracefs_option_is_supported(3)
- tracefs_cpu_open_mapped(3)
- tracefs_buffer_stat_overrun(3)
- tracefs_dynevent_destroy(3)
- sqlhist(1)
- tracefs_instance_file_read(3)
- tracefs_cpu_read_buf(3)
- tracefs_instance_get_affinity_set(3)
- tracefs_snapshot_free(3)
- tracefs_instances_walk(3)
- tracefs_set_tracing_dir(3)
- tracefs_hist_pause(3)
- tracefs_synth_complete(3)
- tracefs_option_id(3)
- tracefs_cpu_free_fd(3)
- tracefs_hist_sort_key_direction(3)
- tracefs_hist_continue(3)
- tracefs_kretprobe_raw(3)
- tracefs_trace_on_fd(3)
- tracefs_synth_raw_fmt(3)
- tracefs_hist_echo_cmd(3)
- tracefs_time_conversion(3)
- tracefs_filter_pid_events(3)
- tracefs_hist_free(3)
- tracefs_hist_get_event(3)
- tracefs_buffer_stat_entries(3)
- tracefs_follow_missed_events(3)
- tracefs_synth_echo_cmd(3)
- tracefs_filter_pid_function(3)
- tracefs_get_clock(3)
- tracefs_get_tracing_file(3)
- tracefs_cpu_flush_buf(3)
- tracefs_options_get_enabled(3)
- tracefs_print_close(3)
- tracefs_local_events(3)
- tracefs_dynevent_list_free(3)
- tracefs_cpu_buffered_read_buf(3)
- tracefs_cpu_buffered_read(3)
- tracefs_trace_on(3)
- tracefs_event_file_clear(3)
- tracefs_option_enable(3)
- tracefs_snapshot_clear(3)
- tracefs_function_filter(3)
- tracefs_hist_append_filter(3)
- tracefs_list_free(3)
- tracefs_synth_add_start_field(3)
- tracefs_trace_pipe_print(3)
- tracefs_buffer_stat_read_events(3)
- tracefs_trace_is_on(3)
- tracefs_instance_set_buffer_size(3)
- tracefs_instance_get_affinity_raw(3)
- tracefs_hist_command(3)
- tracefs_instance_find_cid_pid(3)
- tracefs_follow_event_clear(3)
- tracefs_trace_pipe_stream(3)
- tracefs_event_is_enabled(3)
- tracefs_trace_off_fd(3)
- tracefs_cpu_read_size(3)
- tracefs_binary_close(3)
- tracefs_find_cid_pid(3)
- tracefs_instance_create(3)
- tracefs_instance_get_name(3)
- tracefs_buffer_stat_event_timestamp(3)
- tracefs_instance_set_affinity_set(3)
- tracefs_instance_get_file(3)
- tracefs_kprobe_alloc(3)
- tracefs_options_get_supported(3)
- tracefs_follow_missed_events_clear(3)
- tracefs_hist_start(3)
- tracefs_kretprobe_alloc(3)
- tracefs_hist_reset(3)
- tracefs_synth_destroy(3)
- tracefs_instance_get_buffer_size(3)
- tracefs_option_is_enabled(3)
- tracefs_binary_init(3)
- tracefs_instance_file_write(3)
- tracefs_instance_set_buffer_percent(3)
- tracefs_eprobe_alloc(3)
- tracefs_synth_create(3)
- tracefs_put_tracing_file(3)
- tracefs_event_filter_apply(3)
- tracefs_instance_alloc(3)
- tracefs_uprobe_alloc(3)
- tracefs_instance_get_trace_dir(3)
- tracefs_event_file_read(3)
- tracefs_option_disable(3)
- tracefs_iterate_raw_events(3)
- tracefs_event_file_write(3)
- tracefs_system_events(3)
- tracefs_fill_local_events(3)
- tracefs_cpu_map(3)
- tracefs_dynevent_get_event(3)
- tracefs_cpu_write(3)
- tracefs_dynevent_create(3)
- tracefs_synth_append_start_filter(3)
- tracefs_synth_get_start_hist(3)
- tracefs_instance_file_write_number(3)
- tracefs_list_size(3)
- tracefs_print_init(3)
- tracefs_filter_functions(3)
- tracefs_instance_exists(3)
- tracefs_instance_set_affinity(3)
- tracefs_options(3)
- tracefs_kprobe_destroy(3)
- tracefs_hist_get_system(3)
- tracefs_cpu_pipe(3)
- tracefs_hist_alloc_2d(3)
- tracefs_synth_save(3)
- tracefs_instance_set_subbuf_size(3)
- tracefs_filter_string_append(3)
- tracefs_cpu_alloc_fd(3)
- tracefs_event_get_file(3)
- tracefs_tracing_dir(3)
- tracefs_instance_is_new(3)
- tracefs_local_events_system(3)
- tracefs_tracer_set(3)
- tracefs_synth_alloc(3)
apt-get install libtracefs-doc
Manual
LIBTRACEFS
NAMESYNOPSIS
DESCRIPTION
FILES
SEE ALSO
AUTHOR
REPORTING BUGS
LICENSE
RESOURCES
COPYING
NOTES
NAME
libtracefs - Linux kernel trace file system library
SYNOPSIS
#include <tracefs.h>
Locations of
tracing files and directories:
char *
tracefs_get_tracing_file
(const char
*
name
);
void
tracefs_put_tracing_file
(char *
name
);
const char *
tracefs_tracing_dir
(void);
const char *
tracefs_debug_dir
(void);
int
tracefs_set_tracing_dir
(char *
tracing_dir
)
int
tracefs_tracing_dir_is_mounted
(bool
mount
,
const char **
path
);
Trace instances:
struct tracefs_instance
*
tracefs_instance_create
(const char *
name
);
int
tracefs_instance_destroy
(struct tracefs_instance
*
instance
);
struct tracefs_instance *
tracefs_instance_alloc
(const
char *
tracing_dir
, const char *
name
);
void
tracefs_instance_free
(struct tracefs_instance
*
instance
);
char **
tracefs_instances
(const char *
regex
);
void
tracefs_instance_clear
(struct tracefs_instance
*
instance
);
void
tracefs_instance_reset
(struct tracefs_instance
*
instance
);
bool
tracefs_instance_is_new
(struct tracefs_instance
*
instance
);
bool
tracefs_file_exists
(struct tracefs_instance
*
instance
, char *
name
);
bool
tracefs_dir_exists
(struct tracefs_instance
*
instance
, char *
name
);
char *
tracefs_instance_get_file
(struct
tracefs_instance *
instance
, const char *
file
);
char *
tracefs_instance_get_dir
(struct
tracefs_instance *
instance
);
int
tracefs_instance_file_open
(struct
tracefs_instance *
instance
, const char *
file
,
int
mode
);
int
tracefs_instance_file_write
(struct
tracefs_instance *
instance
, const char *
file
,
const char *
str
);
int
tracefs_instance_file_write_number
(struct
tracefs_instance *
instance
, const char *
file
,
size_t
val
);
int
tracefs_instance_file_append
(struct
tracefs_instance *
instance
, const char *
file
,
const char *
str
);
int
tracefs_instance_file_clear
(struct
tracefs_instance *
instance
, const char *
file
);
char *
tracefs_instance_file_read
(struct
tracefs_instance *
instance
, const char *
file
,
int *
psize
);
int
tracefs_instance_file_read_number
(struct
tracefs_instance *
instance
, const char *
file
,
long long int *
res
);
const char *
tracefs_instance_get_name
(struct
tracefs_instance *
instance
);
const char *
tracefs_instance_get_trace_dir
(struct
tracefs_instance *
instance
);
int
tracefs_instances_walk
(int
(*
callback
)(const char *, void *), void
*
context)
;
bool
tracefs_instance_exists
(const char
*
name
);
int
tracefs_instance_set_affinity
(struct
tracefs_instance *
instance
, const char
*
cpu_str
);
int
tracefs_instance_set_affinity_set
(struct
tracefs_instance *
instance
, cpu_set_t *
set
,
size_t
set_size
);
int
tracefs_instance_set_affinity_raw
(struct
tracefs_instance *
instance
, const char *
mask
);
char *
tracefs_instance_get_affinity
(struct
tracefs_instance *
instance
);
int
tracefs_instance_get_affinity_set
(struct
tracefs_instance *
instance
, cpu_set_t *
set
,
size_t
set_size
);
char *
tracefs_instance_get_affinity_raw
(struct
tracefs_instance *
instance
);
size_t
tracefs_instance_get_buffer_size
(struct
tracefs_instance *
instance
, int
cpu
);
int
tracefs_instance_set_buffer_size
(struct
tracefs_instance *
instance
, size_t
size
, int
cpu
);
int
tracefs_instance_get_buffer_percent
(struct
tracefs_instance *
instance
);
int
tracefs_instance_set_buffer_percent
(struct
tracefs_instance *
instance
, int
val
);
Trace events:
char **
tracefs_event_systems
(const char
*
tracing_dir
);
char **
tracefs_system_events
(const char
*
tracing_dir
, const char *
system
);
int
tracefs_event_enable
(struct tracefs_instance
*
instance
, const char *
system
,
const char *
event
);
int
tracefs_event_disable
(struct tracefs_instance
*
instance
, const char *
system
,
const char *
event
);
enum tracefs_enable_state
tracefs_event_is_enabled
(struct tracefs_instance
*
instance
,
const char *
system
, const char *
event
);
int
tracefs_iterate_raw_events
(struct tep_handle
*
tep
, struct tracefs_instance *
instance
,
cpu_set_t *
cpus
, int
cpu_size
, int
(*
callback
)(struct tep_event *, struct tep_record *,
int, void *), void *
callback_context
);
void
tracefs_iterate_stop
(struct tracefs_instance
*
instance
);
int
tracefs_follow_event
(struct tep_handle
*
tep
, struct tracefs_instance *
instance
,
const char *
system
, const char *
event_name
,
int (*
callback
)(struct tep_event *,
struct tep_record *,
int, void *),
void *
callback_data
);
int
tracefs_follow_missed_events
(struct
tracefs_instance *
instance
,
int (*
callback
)(struct tep_event *,
struct tep_record *,
int, void *),
void *
callback_data
);
int
tracefs_follow_event_clear
(struct
tracefs_instance *
instance
,
const char *
system
, const char *
event_name
);
int
tracefs_follow_missed_events_clear
(struct
tracefs_instance *
instance
);
struct tep_handle *
tracefs_local_events
(const char
*
tracing_dir
);
struct tep_handle *
tracefs_local_events_system
(const
char *
tracing_dir
, const char * const
*
sys_names
);
int
tracefs_fill_local_events
(const char
*
tracing_dir
, struct tep_handle *
tep
, int
*
parsing_failures
);
int
tracefs_load_cmdlines
(const char
*
tracing_dir
, struct tep_handle *
tep
);
int
tracefs_load_headers
(const char
*
tracing_dir
, struct tep_handle *
tep
);
char *
tracefs_event_get_file
(struct tracefs_instance
*
instance
, const char *
system
, const char
*
event
,
const char *
file
);
char *
tracefs_event_file_read
(struct tracefs_instance
*
instance
, const char *
system
, const char
*
event
,
const char *
file
, int *
psize
);
int
tracefs_event_file_write
(struct tracefs_instance
*
instance
, const char *
system
, const char
*
event
,
const char *
file
, const char *
str
);
int
tracefs_event_file_append
(struct tracefs_instance
*
instance
, const char *
system
, const char
*
event
,
const char *
file
, const char *
str
);
int
tracefs_event_file_clear
(struct tracefs_instance
*
instance
, const char *
system
, const char
*
event
,
const char *
file
);
bool
tracefs_event_file_exists
(struct
tracefs_instance *
instance
, const char
*
system
, const char *
event
,
const char *
file
);
Snapshot buffer:
int
tracefs_snapshot_snap
(struct tracefs_instance
*instance);
int
tracefs_snapshot_clear
(struct tracefs_instance
*instance);
int
tracefs_snapshot_free
(struct tracefs_instance
*instance);
int
tracefs_iterate_snapshot_events
(struct tep_handle
*
tep
, struct tracefs_instance *
instance
,
cpu_set_t *
cpus
, int
cpu_size
,
int (*
callback
)(struct tep_event *, struct tep_record
*, int, void *),
void *
callback_context
);
struct tracefs_cpu *
tracefs_cpu_snapshot_open
(struct
tracefs_instance *
instance
,
int
cpu
, bool
nonblock
);
Event filters:
int
tracefs_filter_string_append
(struct tep_event
*
event
, char **
filter
,
struct tracefs_filter
type
, const char *
field
,
enum tracefs_synth_compare
compare
, const char
*
val
);
int
tracefs_filter_string_verify
(struct tep_event
*
event
, const char *
filter
, char
**
err
);
int
tracefs_event_filter_apply
(struct
tracefs_instance *
instance
, struct tep_event
*
event
, const char *
filter
);
int
tracefs_event_filter_clear
(struct
tracefs_instance *
instance
, struct tep_event
*
event
);
Function
filters:
int
tracefs_function_filter
(struct tracefs_instance
*
instance
, const char *
filter
, const char
*
module
, int
flags
);
int
tracefs_function_notrace
(struct tracefs_instance
*
instance
, const char *
filter
, const char
*
module
, int
flags
);
int
tracefs_filter_functions
(const char
*
filter
, const char *
module
, char
***
list
);
PID filters:
int
tracefs_filter_pid_function
(struct
tracefs_instance *
instance,
int
pid
,
bool
reset
, bool
notrace
);
int
tracefs_filter_pid_function_clear
(struct
tracefs_instance *
instance
, bool
notrace
);
int
tracefs_filter_pid_events
(struct tracefs_instance
*
instance
, int
pid
,
bool
reset
, bool
notrace
);
int
tracefs_filter_pid_events_clear
(struct
tracefs_instance *
instance
, bool
notrace
);
Trace helper
functions:
void
tracefs_list_free
(char **
list
);
char **
tracefs_list_add
(char
*
list
,
const char *
string
);
int *tracefs_list_size
(char **
list
);
char *
tracefs_get_clock
(struct tracefs_instance
*
instance
);
int
tracefs_trace_is_on
(struct tracefs_instance
*
instance
);
int
tracefs_trace_on
(struct tracefs_instance
*
instance
);
int
tracefs_trace_off
(struct tracefs_instance
*
instance
);
int
tracefs_trace_on_get_fd
(struct tracefs_instance
*
instance
);
int
tracefs_trace_on_fd
(int
fd
);
int
tracefs_trace_off_fd
(int
fd
);
Trace stream:
ssize_t
tracefs_trace_pipe_stream
(int
fd
,
struct tracefs_instance *
instance
, int
flags
);
ssize_t
tracefs_trace_pipe_print
(struct
tracefs_instance *
instance
, int
flags
);
void
tracefs_trace_pipe_stop
(struct tracefs_instance
*
instance
);
Memory mapping
the ring buffer:
bool
tracefs_cpu_is_mapped
(struct tracefs_cpu *tcpu);
bool
tracefs_mapped_is_supported
(void);
int
tracefs_cpu_map
(struct tracefs_cpu *tcpu);
void
tracefs_cpu_unmap
(struct tracefs_cpu *tcpu);
struct tracefs_cpu *
tracefs_cpu_open_mapped
(struct
tracefs_instance *instance,
int cpu, bool nonblock);
Trace options:
const struct tracefs_options_mask
*
tracefs_options_get_supported
(struct
tracefs_instance *
instance
);
bool
tracefs_option_is_supported
(struct
tracefs_instance *
instance
, enum tracefs_option_id
id
);
const struct tracefs_options_mask
*
tracefs_options_get_enabled
(struct tracefs_instance
*
instance
);
bool
tracefs_option_is_enabled
(struct
tracefs_instance *
instance
, enum tracefs_option_id
id
);
bool
tracefs_option_mask_is_set
(const struct
tracefs_options_mask
options, enum tracefs_option_id id);
int *tracefs_option_enable
(struct tracefs_instance
*
instance
, enum tracefs_option_id
id
);
int
tracefs_option_disable
(struct tracefs_instance
*
instance
, enum tracefs_option_id
id
);
const char *
tracefs_option_name
(enum
tracefs_option_id
id
);
enum tracefs_option_id
tracefs_option_id
(const char
*
name
);
Ftrace tracers:
char **
tracefs_tracers
(const char
*
tracing_dir
);
char **
tracefs_instance_tracers
(struct
tracefs_instance *
instance
);
bool
tracefs_tracer_available
(const char
*
tracing_dir
, const char *
tracer
);
int
tracefs_tracer_set
(struct tracefs_instance
*
instance
, enum tracefs_tracers
tracer
);
int
tracefs_tracer_set
(struct tracefs_instance
*
instance
, enum tracefs_tracers
tracer
, const
char *
name
);
int
tracefs_tracer_clear
(struct tracefs_instance
*
instance
);
Writing data in
the trace buffer:
int
tracefs_print_init
(struct tracefs_instance
*
instance
);
int
tracefs_printf
(struct tracefs_instance
*
instance
, const char *
fmt
,
...
);
int
tracefs_vprintf
(struct tracefs_instance
*
instance
, const char *
fmt
, va_list
ap
);
void
tracefs_print_close
(struct tracefs_instance
*
instance
);
int
tracefs_binary_init
(struct tracefs_instance
*
instance
);
int
tracefs_binary_write
(struct tracefs_instance
*
instance
, void *
data
, int
len
);
void
tracefs_binary_close
(struct tracefs_instance
*
instance
);
Control library
logs:
int
tracefs_set_loglevel
(enum tep_loglevel
level
);
Read the ring
buffer statistics:
struct tracefs_buffer_stat
*
tracefs_instance_get_stat
(struct tracefs_instance
*
instance
, int
cpu
);
void
tracefs_instance_put_stat
(struct
tracefs_buffer_stat *
tstat
);
ssize_t
tracefs_buffer_stat_entries
(struct
tracefs_buffer_stat *
tstat
);
ssize_t
tracefs_buffer_stat_overrun
(struct
tracefs_buffer_stat *
tstat
);
ssize_t
tracefs_buffer_stat_commit_overrun
(struct
tracefs_buffer_stat *
tstat
);
ssize_t
tracefs_buffer_stat_bytes
(struct
tracefs_buffer_stat *
tstat
);
long long
tracefs_buffer_stat_event_timestamp
(struct
tracefs_buffer_stat *
tstat
);
long long
tracefs_buffer_stat_timestamp
(struct
tracefs_buffer_stat *
tstat
);
ssize_t
tracefs_buffer_stat_dropped_events
(struct
tracefs_buffer_stat *
tstat
);
ssize_t
tracefs_buffer_stat_read_events
(struct
tracefs_buffer_stat *
tstat
);
Dynamic event
generic APIs:
struct
tracefs_dynevent
;
enum
tracefs_dynevent_type
;
int
tracefs_dynevent_create
(struct tracefs_dynevent
*
devent
);
int
tracefs_dynevent_destroy
(struct tracefs_dynevent
*
devent
, bool
force
);
int
tracefs_dynevent_destroy_all
(unsigned int
types
, bool
force
);
void
tracefs_dynevent_free
(struct tracefs_dynevent
*
devent
);
void
tracefs_dynevent_list_free
(struct
tracefs_dynevent **
events
);
struct tracefs_dynevent *
tracefs_dynevent_get
(enum
tracefs_dynevent_type
type
, const char
*
system
, const char *
event
);
struct tracefs_dynevent
**
tracefs_dynevent_get_all
(unsigned int
types
,
const char *
system
);
enum tracefs_dynevent_type
tracefs_dynevent_info
(struct tracefs_dynevent
*
dynevent
, char **
system
, char **
event
,
char **
prefix
, char **
addr
, char
**
format
);
struct tep_event *
tracefs_dynevent_get_event
(struct
tep_handle *
tep
, struct tracefs_dynevent
*
dynevent
);
Even probes
(eprobes):
struct tracefs_dynevent *
tracefs_eprobe_alloc
(const
char *
system
, const char *
event
, const char
*
target_system
, const char *
target_event
,
const char *
fetchargs
);
Uprobes, Kprobes
and Kretprobes:
struct tracefs_dynevent *
tracefs_kprobe_alloc
(const
char *
system
, const char *
event
, const char
*
addr
, const char *
format
);
struct tracefs_dynevent *
tracefs_kretprobe_alloc
(const char *
system
,
const char *
event
, const char *
addr
, const
char *
format
, unsigned int
max
);
int
tracefs_kprobe_raw
(const char *
system
,
const char *
event
, const char *
addr
, const
char *
format
);
int
tracefs_kretprobe_raw
(const char *
system
,
const char *
event
, const char *
addr
, const
char *
format
);
tracefs_uprobe_alloc
(const char *
system
, const
char *
event
,
const char *
file
, unsigned long long
offset
,
const char *
fetchargs
)
tracefs_uretprobe_alloc
(const char *
system
, const
char *
event
,
const char *
file
, unsigned long long
offset
,
const char *
fetchargs
);
int
tracefs_kprobe_destroy
(const char *
system
,
const char *
event
,
const char *
addr
, const char *
format
, bool
force
);
Synthetic
events:
struct tracefs_synth *
tracefs_sql
(struct tep_handle
*
tep
, const char *
name
,
const char *
sql_buffer
, char **
err
);
struct tracefs_synth *
tracefs_synth_alloc
(struct
tep_handle *
tep
,
const char *
name
,
const char *
start_system
,
const char *
start_event
,
const char *
end_system
,
const char *
end_event
,
const char *
start_match_field
,
const char *
end_match_field
,
const char *
match_name
);
int
tracefs_synth_add_match_field
(struct
tracefs_synth *
synth
,
const char *
start_match_field
,
const char *
end_match_field
,
const char *
name
);
int
tracefs_synth_add_compare_field
(struct
tracefs_synth *
synth
,
const char *
start_compare_field
,
const char *
end_compare_field
,
enum tracefs_synth_calc
calc
,
const char *
name
);
int
tracefs_synth_add_start_field
(struct
tracefs_synth *
synth
,
const char *
start_field
,
const char *
name
);
int
tracefs_synth_add_end_field
(struct tracefs_synth
*
synth
,
const char *
end_field
,
const char *
name
);
int
tracefs_synth_append_start_filter
(struct
tracefs_synth *
synth
,
struct tracefs_filter
type
,
const char *
field
,
enum tracefs_synth_compare
compare
,
const char *
val
);
int
tracefs_synth_append_end_filter
(struct
tracefs_synth *
synth
,
struct tracefs_filter
type
,
const char *
field
,
enum tracefs_synth_compare
compare
,
const char *
val
);
void
tracefs_synth_free
(struct tracefs_synth
*
synth
);
int
tracefs_synth_create
(struct tracefs_synth
*
synth
);
int
tracefs_synth_destroy
(struct tracefs_synth
*
synth
);
int
tracefs_synth_set_instance
(struct tracefs_synth
*
synth
, struct tracefs_instance *
instance
);
int
tracefs_synth_echo_cmd
(struct trace_seq
*
seq
, struct tracefs_synth *
synth
);
bool
tracefs_synth_complete
(struct tracefs_synth
*
synth
);
struct tracefs_hist
*
tracefs_synth_get_start_hist
(struct tracefs_synth
*
synth
);
int
tracefs_synth_trace
(struct tracefs_synth
*
synth
,
enum tracefs_synth_handler
type
, const char
*
var
);
int
tracefs_synth_snapshot
(struct tracefs_synth
*
synth
,
enum tracefs_synth_handler
type
, const char
*
var
);
int
tracefs_synth_save
(struct tracefs_synth
*
synth
,
enum tracefs_synth_handler
type
, const char
*
var
,
char **
save_fields
);
const char *
tracefs_synth_get_name
(struct
tracefs_synth *
synth
);
int
tracefs_synth_raw_fmt
(struct trace_seq
*
seq
, struct tracefs_synth *
synth
);
const char *
tracefs_synth_show_event
(struct
tracefs_synth *
synth
);
const char *
tracefs_synth_show_start_hist
(struct
tracefs_synth *
synth
);
const char *
tracefs_synth_show_end_hist
(struct
tracefs_synth *
synth
);
struct tep_event *
tracefs_synth_get_event
(struct
tep_handle *
tep
, struct tracefs_synth
*
synth
);
Ftrace errors
reporting:
char *
tracefs_error_last
(struct tracefs_instance
*
instance
);
char *
tracefs_error_all
(struct tracefs_instance
*
instance
);
int
tracefs_error_clear
(struct tracefs_instance
*
instance
);
Histograms:
struct tracefs_hist *
tracefs_hist_alloc
(struct
tracefs_tep *
tep
,
const char *
system
, const char *
event
,
const char *
key
, enum tracefs_hist_key_type
type
);
struct tracefs_hist *
tracefs_hist_alloc_2d
(struct
tracefs_tep *
tep
,
const char *
system
, const char *
event
,
const char *
key1
, enum tracefs_hist_key_type
type1
,
const char *
key2
, enum tracefs_hist_key_type
type2
));
struct tracefs_hist *
tracefs_hist_alloc_nd
(struct
tracefs_tep *
tep
,
const char *
system
, const char *
event
,
struct tracefs_hist_axis *
axes
);
struct tracefs_hist *
tracefs_hist_alloc_nd_cnt
(struct
tep_handle *
tep
,
const char *
system
, const char *
event_name
,
struct tracefs_hist_axis_cnt *
axes
);
void
tracefs_hist_free
(struct tracefs_hist
*
hist
);
int
tracefs_hist_add_key
(struct tracefs_hist
*
hist
, const char *
key
,
enum tracefs_hist_key_type
type
);
int
tracefs_hist_add_key_cnt
(struct tracefs_hist
*
hist
, const char *
key
,
enum tracefs_hist_key_type
type
, int
cnt
);
int
tracefs_hist_add_value
(struct tracefs_hist
*
hist
, const char *
value
);
int
tracefs_hist_add_sort_key
(struct tracefs_hist
*
hist
,
const char *
sort_key
);
int
tracefs_hist_set_sort_key
(struct tracefs_hist
*
hist
,
const char *
sort_key
,
...
);
int
tracefs_hist_sort_key_direction
(struct
tracefs_hist *
hist
,
const char *
sort_key
,
enum tracefs_hist_sort_direction
dir
);
int
tracefs_hist_add_name
(struct tracefs_hist
*
hist
, const char *
name
);
int
tracefs_hist_append_filter
(struct tracefs_hist
*
hist
,
enum tracefs_filter
type
,
const char *
field
,
enum tracefs_compare
compare
,
const char *
val
);
int
tracefs_hist_echo_cmd
(struct trace_seq *
s
,
struct tracefs_instance *
instance
,
struct tracefs_hist *
hist
,
enum tracefs_hist_command
command
);
int
tracefs_hist_command
(struct tracefs_instance
*
instance
,
struct tracefs_hist *
hist
,
enum tracefs_hist_command
command
);
const char *
tracefs_hist_get_name
(struct tracefs_hist
*
hist
);
const char *
tracefs_hist_get_event
(struct
tracefs_hist *
hist
);
const char *
tracefs_hist_get_system
(struct
tracefs_hist *
hist
);
int
tracefs_hist_start
(struct tracefs_instance
*
instance
, struct tracefs_hist *
hist
);
int
tracefs_hist_destroy
(struct tracefs_instance
*
instance
, struct tracefs_hist *
hist
);
int
tracefs_hist_pause
(struct tracefs_instance
*
instance
, struct tracefs_hist *
hist
);
int
tracefs_hist_continue
(struct tracefs_instance
*
instance
, struct tracefs_hist *
hist
);
int
tracefs_hist_reset
(struct tracefs_instance
*
instance
, struct tracefs_hist *
hist
);
Recording of
trace_pipe_raw files:
struct tracefs_cpu *
tracefs_cpu_open
(struct
tracefs_instance *
instance
,
int
cpu
, bool
nonblock
);
struct tracefs_cpu *
tracefs_cpu_alloc_fd
(int
fd
, int
subbuf_size
, bool
nonblock
);
void
tracefs_cpu_close
(struct tracefs_cpu
*
tcpu
);
void
tracefs_cpu_free_fd
(struct tracefs_cpu
*
tcpu
);
int
tracefs_cpu_read_size
(struct tracefs_cpu
*
tcpu
);
int
tracefs_cpu_read
(struct tracefs_cpu *
tcpu
,
void *
buffer
, bool
nonblock
);
int
tracefs_cpu_buffered_read
(struct tracefs_cpu
*
tcpu
, void *
buffer
, bool
nonblock
);
int
tracefs_cpu_write
(struct tracefs_cpu
*
tcpu
, int
wfd
, bool
nonblock
);
int
tracefs_cpu_stop
(struct tracefs_cpu
*
tcpu
);
int
tracefs_cpu_flush
(struct tracefs_cpu
*
tcpu
, void *
buffer
);
int
tracefs_cpu_flush_write
(struct tracefs_cpu
*
tcpu
, int
wfd
);
int
tracefs_cpu_pipe
(struct tracefs_cpu *
tcpu
,
int
wfd
, bool
nonblock
);
struct kbuffer *
tracefs_cpu_read_buf
(struct
tracefs_cpu *
tcpu
, bool
nonblock
);
struct kbuffer *
tracefs_cpu_buffered_read_buf
(struct
tracefs_cpu *
tcpu
, bool
nonblock
);
struct kbuffer *
tracefs_cpu_flush_buf
(struct
tracefs_cpu *
tcpu
);
Helper functions
for modifying the ring buffer sub-buffers:
size_t
tracefs_instance_get_subbuf_size
(struct
tracefs_instance *
instance
);
int
tracefs_instance_set_subbuf_size
(struct
tracefs_instance *
instance
, size_t
size
);
Helper functions
for guest tracing:
char *
tracefs_find_cid_pid
(int
cid
);
char *
tracefs_instance_find_cid_pid
(struct
tracefs_instance *
instance
, int
cid
);
int
tracefs_time_conversion
(int
cpu
, int
*
shift
, int *
multi
, long long *offset);
DESCRIPTION
The libtracefs(3) library provides APIs to access kernel trace file system.
FILES
tracefs.h
Header file to include in order to have access to the
library APIs.
-ltracefs
Linker switch to add when building a program that uses the
library.
SEE ALSO
libtraceevent (3), trace-cmd (1)
AUTHOR
Steven
Rostedt
<
rostedt@goodmis.org
[1]
>
Tzvetomir Stoyanov
<
tz.stoyanov@gmail.com
[2]
>
REPORTING BUGS
Report bugs to < linux-trace-devel@vger.kernel.org [3] >
LICENSE
libtracefs is Free Software licensed under the GNU LGPL 2.1
RESOURCES
https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/
COPYING
Copyright (C) 2020 VMware, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL).
NOTES
|
1. |
rostedt@goodmis.org |
mailto:rostedt@goodmis.org
|
2. |
tz.stoyanov@gmail.com |
mailto:tz.stoyanov@gmail.com
|
3. |
linux-trace-devel@vger.kernel.org |
mailto:linux-trace-devel@vger.kernel.org