#define CREATE_TRACE_POINTS
#include "lib/eq.h"
#include "fw_tracer.h"
#include "fw_tracer_tracepoint.h"
static int mlx5_query_mtrc_caps(struct mlx5_fw_tracer *tracer)
{ … }
static int mlx5_set_mtrc_caps_trace_owner(struct mlx5_fw_tracer *tracer,
u32 *out, u32 out_size,
u8 trace_owner)
{ … }
static int mlx5_fw_tracer_ownership_acquire(struct mlx5_fw_tracer *tracer)
{ … }
static void mlx5_fw_tracer_ownership_release(struct mlx5_fw_tracer *tracer)
{ … }
static int mlx5_fw_tracer_create_log_buf(struct mlx5_fw_tracer *tracer)
{ … }
static void mlx5_fw_tracer_destroy_log_buf(struct mlx5_fw_tracer *tracer)
{ … }
static int mlx5_fw_tracer_create_mkey(struct mlx5_fw_tracer *tracer)
{ … }
static void mlx5_fw_tracer_free_strings_db(struct mlx5_fw_tracer *tracer)
{ … }
static int mlx5_fw_tracer_allocate_strings_db(struct mlx5_fw_tracer *tracer)
{ … }
static void
mlx5_fw_tracer_init_saved_traces_array(struct mlx5_fw_tracer *tracer)
{ … }
static void
mlx5_fw_tracer_clean_saved_traces_array(struct mlx5_fw_tracer *tracer)
{ … }
static void mlx5_tracer_read_strings_db(struct work_struct *work)
{ … }
static void mlx5_fw_tracer_arm(struct mlx5_core_dev *dev)
{ … }
static const char *VAL_PARM = …;
static const char *REPLACE_64_VAL_PARM = …;
static const char *PARAM_CHAR = …;
static int mlx5_tracer_message_hash(u32 message_id)
{ … }
static struct tracer_string_format *mlx5_tracer_message_insert(struct mlx5_fw_tracer *tracer,
struct tracer_event *tracer_event)
{ … }
static struct tracer_string_format *mlx5_tracer_get_string(struct mlx5_fw_tracer *tracer,
struct tracer_event *tracer_event)
{ … }
static void mlx5_tracer_clean_message(struct tracer_string_format *str_frmt)
{ … }
static int mlx5_tracer_get_num_of_params(char *str)
{ … }
static struct tracer_string_format *mlx5_tracer_message_find(struct hlist_head *head,
u8 event_id, u32 tmsn)
{ … }
static struct tracer_string_format *mlx5_tracer_message_get(struct mlx5_fw_tracer *tracer,
struct tracer_event *tracer_event)
{ … }
static void poll_trace(struct mlx5_fw_tracer *tracer,
struct tracer_event *tracer_event, u64 *trace)
{ … }
static u64 get_block_timestamp(struct mlx5_fw_tracer *tracer, u64 *ts_event)
{ … }
static void mlx5_fw_tracer_clean_print_hash(struct mlx5_fw_tracer *tracer)
{ … }
static void mlx5_fw_tracer_clean_ready_list(struct mlx5_fw_tracer *tracer)
{ … }
static void mlx5_fw_tracer_save_trace(struct mlx5_fw_tracer *tracer,
u64 timestamp, bool lost,
u8 event_id, char *msg)
{ … }
static noinline
void mlx5_tracer_print_trace(struct tracer_string_format *str_frmt,
struct mlx5_core_dev *dev,
u64 trace_timestamp)
{ … }
static int mlx5_tracer_handle_raw_string(struct mlx5_fw_tracer *tracer,
struct tracer_event *tracer_event)
{ … }
static int mlx5_tracer_handle_string_trace(struct mlx5_fw_tracer *tracer,
struct tracer_event *tracer_event)
{ … }
static void mlx5_tracer_handle_timestamp_trace(struct mlx5_fw_tracer *tracer,
struct tracer_event *tracer_event)
{ … }
static int mlx5_tracer_handle_trace(struct mlx5_fw_tracer *tracer,
struct tracer_event *tracer_event)
{ … }
static void mlx5_fw_tracer_handle_traces(struct work_struct *work)
{ … }
static int mlx5_fw_tracer_set_mtrc_conf(struct mlx5_fw_tracer *tracer)
{ … }
static int mlx5_fw_tracer_set_mtrc_ctrl(struct mlx5_fw_tracer *tracer, u8 status, u8 arm)
{ … }
static int mlx5_fw_tracer_start(struct mlx5_fw_tracer *tracer)
{ … }
static void mlx5_fw_tracer_ownership_change(struct work_struct *work)
{ … }
static int mlx5_fw_tracer_set_core_dump_reg(struct mlx5_core_dev *dev,
u32 *in, int size_in)
{ … }
int mlx5_fw_tracer_trigger_core_dump_general(struct mlx5_core_dev *dev)
{ … }
static void
mlx5_devlink_fmsg_fill_trace(struct devlink_fmsg *fmsg,
struct mlx5_fw_trace_data *trace_data)
{ … }
int mlx5_fw_tracer_get_saved_traces_objects(struct mlx5_fw_tracer *tracer,
struct devlink_fmsg *fmsg)
{ … }
static void mlx5_fw_tracer_update_db(struct work_struct *work)
{ … }
struct mlx5_fw_tracer *mlx5_fw_tracer_create(struct mlx5_core_dev *dev)
{ … }
static int fw_tracer_event(struct notifier_block *nb, unsigned long action, void *data);
int mlx5_fw_tracer_init(struct mlx5_fw_tracer *tracer)
{ … }
void mlx5_fw_tracer_cleanup(struct mlx5_fw_tracer *tracer)
{ … }
void mlx5_fw_tracer_destroy(struct mlx5_fw_tracer *tracer)
{ … }
static int mlx5_fw_tracer_recreate_strings_db(struct mlx5_fw_tracer *tracer)
{ … }
int mlx5_fw_tracer_reload(struct mlx5_fw_tracer *tracer)
{ … }
static int fw_tracer_event(struct notifier_block *nb, unsigned long action, void *data)
{ … }
EXPORT_TRACEPOINT_SYMBOL(…);