tracer_event
struct tracer_event *tracer_event)
&tracer->hash[mlx5_tracer_message_hash(tracer_event->string_event.tmsn)];
struct tracer_event *tracer_event)
str_ptr = tracer_event->string_event.string_param;
cur_string = mlx5_tracer_message_insert(tracer, tracer_event);
struct tracer_event *tracer_event)
&tracer->hash[mlx5_tracer_message_hash(tracer_event->string_event.tmsn)];
return mlx5_tracer_message_find(head, tracer_event->event_id, tracer_event->string_event.tmsn);
struct tracer_event *tracer_event, u64 *trace)
tracer_event->event_id = MLX5_GET(tracer_event, trace, event_id);
tracer_event->lost_event = MLX5_GET(tracer_event, trace, lost);
tracer_event->out = trace;
switch (tracer_event->event_id) {
tracer_event->type = TRACER_EVENT_TYPE_TIMESTAMP;
tracer_event->timestamp_event.unreliable = !!(urts >> 2);
tracer_event->timestamp_event.unreliable = !!(urts & 1);
tracer_event->timestamp_event.timestamp =
if (tracer_event->event_id >= tracer->str_db.first_string_trace &&
tracer_event->event_id <= tracer->str_db.first_string_trace +
tracer_event->type = TRACER_EVENT_TYPE_STRING;
tracer_event->string_event.timestamp =
tracer_event->string_event.string_param =
tracer_event->string_event.tmsn =
tracer_event->string_event.tdsn =
tracer_event->type = TRACER_EVENT_TYPE_UNRECOGNIZED;
struct tracer_event tracer_event;
event_id = MLX5_GET(tracer_event, ts_event, event_id);
poll_trace(tracer, &tracer_event, ts_event);
tracer_event.timestamp_event.timestamp = 0;
return tracer_event.timestamp_event.timestamp;
struct tracer_event *tracer_event)
cur_string = mlx5_tracer_message_insert(tracer, tracer_event);
cur_string->event_id = tracer_event->event_id;
cur_string->timestamp = tracer_event->string_event.timestamp;
cur_string->lost = tracer_event->lost_event;
cur_string->params[0] = upper_32_bits(*tracer_event->out);
cur_string->params[1] = lower_32_bits(*tracer_event->out);
struct tracer_event *tracer_event)
if (tracer_event->string_event.tdsn == 0) {
cur_string = mlx5_tracer_get_string(tracer, tracer_event);
return mlx5_tracer_handle_raw_string(tracer, tracer_event);
cur_string->event_id = tracer_event->event_id;
cur_string->tmsn = tracer_event->string_event.tmsn;
cur_string->timestamp = tracer_event->string_event.timestamp;
cur_string->lost = tracer_event->lost_event;
cur_string = mlx5_tracer_message_get(tracer, tracer_event);
__func__, tracer_event->string_event.tmsn);
return mlx5_tracer_handle_raw_string(tracer, tracer_event);
tracer_event->string_event.string_param;
struct tracer_event *tracer_event)
tracer_event->timestamp_event;
struct tracer_event *tracer_event)
if (tracer_event->type == TRACER_EVENT_TYPE_STRING) {
mlx5_tracer_handle_string_trace(tracer, tracer_event);
} else if (tracer_event->type == TRACER_EVENT_TYPE_TIMESTAMP) {
if (!tracer_event->timestamp_event.unreliable)
mlx5_tracer_handle_timestamp_trace(tracer, tracer_event);
__func__, tracer_event->type);
u32 trace_event_size = MLX5_ST_SZ_BYTES(tracer_event);
struct tracer_event tracer_event;
poll_trace(tracer, &tracer_event, &tmp_trace_block[i]);
mlx5_tracer_handle_trace(tracer, &tracer_event);