drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1002
mutex_unlock(&tracer->st_arr.lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1009
struct mlx5_fw_tracer *tracer =
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
101
err = mlx5_set_mtrc_caps_trace_owner(tracer, out, sizeof(out),
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1012
mlx5_fw_tracer_reload(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1018
struct mlx5_fw_tracer *tracer = NULL;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1026
tracer = kvzalloc_obj(*tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1027
if (!tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1030
tracer->work_queue = create_singlethread_workqueue("mlx5_fw_tracer");
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1031
if (!tracer->work_queue) {
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1036
tracer->dev = dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1038
INIT_LIST_HEAD(&tracer->ready_strings_list);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1039
INIT_WORK(&tracer->ownership_change_work, mlx5_fw_tracer_ownership_change);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1040
INIT_WORK(&tracer->read_fw_strings_work, mlx5_tracer_read_strings_db);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1041
INIT_WORK(&tracer->handle_traces_work, mlx5_fw_tracer_handle_traces);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1042
INIT_WORK(&tracer->update_db_work, mlx5_fw_tracer_update_db);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1043
mutex_init(&tracer->state_lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1046
err = mlx5_query_mtrc_caps(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1052
err = mlx5_fw_tracer_create_log_buf(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1058
err = mlx5_fw_tracer_allocate_strings_db(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1064
mlx5_fw_tracer_init_saved_traces_array(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1067
return tracer;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1070
mlx5_fw_tracer_destroy_log_buf(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1072
tracer->dev = NULL;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1073
destroy_workqueue(tracer->work_queue);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1075
kvfree(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1082
int mlx5_fw_tracer_init(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1087
if (IS_ERR_OR_NULL(tracer))
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
109
tracer->owner = !!MLX5_GET(mtrc_cap, out, trace_owner);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1090
if (!tracer->str_db.loaded)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1091
queue_work(tracer->work_queue, &tracer->read_fw_strings_work);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1093
mutex_lock(&tracer->state_lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1094
if (test_and_set_bit(MLX5_TRACER_STATE_UP, &tracer->state))
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1097
dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1099
err = mlx5_core_alloc_pd(dev, &tracer->buff.pdn);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1105
err = mlx5_fw_tracer_create_mkey(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
111
if (!tracer->owner)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1111
MLX5_NB_INIT(&tracer->nb, fw_tracer_event, DEVICE_TRACER);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1112
mlx5_eq_notifier_register(dev, &tracer->nb);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1114
err = mlx5_fw_tracer_start(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1120
mutex_unlock(&tracer->state_lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1124
mlx5_eq_notifier_unregister(dev, &tracer->nb);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1125
mlx5_core_destroy_mkey(dev, tracer->buff.mkey);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1127
mlx5_core_dealloc_pd(dev, tracer->buff.pdn);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1129
cancel_work_sync(&tracer->read_fw_strings_work);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1130
mutex_unlock(&tracer->state_lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1135
void mlx5_fw_tracer_cleanup(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1137
if (IS_ERR_OR_NULL(tracer))
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1140
mutex_lock(&tracer->state_lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1141
if (!test_and_clear_bit(MLX5_TRACER_STATE_UP, &tracer->state))
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1144
mlx5_core_dbg(tracer->dev, "FWTracer: Cleanup, is owner ? (%d)\n",
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1145
tracer->owner);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1146
mlx5_eq_notifier_unregister(tracer->dev, &tracer->nb);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1147
cancel_work_sync(&tracer->ownership_change_work);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1148
cancel_work_sync(&tracer->handle_traces_work);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1152
cancel_work(&tracer->update_db_work);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1154
if (tracer->owner)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1155
mlx5_fw_tracer_ownership_release(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1157
mlx5_core_destroy_mkey(tracer->dev, tracer->buff.mkey);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1158
mlx5_core_dealloc_pd(tracer->dev, tracer->buff.pdn);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1160
mutex_unlock(&tracer->state_lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1164
void mlx5_fw_tracer_destroy(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1166
if (IS_ERR_OR_NULL(tracer))
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1169
mlx5_core_dbg(tracer->dev, "FWTracer: Destroy\n");
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
117
static void mlx5_fw_tracer_ownership_release(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1171
cancel_work_sync(&tracer->read_fw_strings_work);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1172
mlx5_fw_tracer_clean_ready_list(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1173
mlx5_fw_tracer_clean_print_hash(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1174
mlx5_fw_tracer_clean_saved_traces_array(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1175
mlx5_fw_tracer_free_strings_db(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1176
mlx5_fw_tracer_destroy_log_buf(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1177
mutex_destroy(&tracer->state_lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1178
destroy_workqueue(tracer->work_queue);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1179
kvfree(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1182
static int mlx5_fw_tracer_recreate_strings_db(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1187
if (test_and_set_bit(MLX5_TRACER_RECREATE_DB, &tracer->state))
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1189
cancel_work_sync(&tracer->read_fw_strings_work);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1190
mlx5_fw_tracer_clean_ready_list(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1191
mlx5_fw_tracer_clean_print_hash(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1192
mlx5_fw_tracer_clean_saved_traces_array(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1193
mlx5_fw_tracer_free_strings_db(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1195
dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1196
err = mlx5_query_mtrc_caps(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1202
err = mlx5_fw_tracer_allocate_strings_db(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1207
mlx5_fw_tracer_init_saved_traces_array(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1209
clear_bit(MLX5_TRACER_RECREATE_DB, &tracer->state);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
121
mlx5_set_mtrc_caps_trace_owner(tracer, out, sizeof(out),
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1213
int mlx5_fw_tracer_reload(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1218
if (IS_ERR_OR_NULL(tracer))
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1221
dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1222
mlx5_fw_tracer_cleanup(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1223
err = mlx5_fw_tracer_recreate_strings_db(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1228
err = mlx5_fw_tracer_init(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
123
tracer->owner = false;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1239
struct mlx5_fw_tracer *tracer = mlx5_nb_cof(nb, struct mlx5_fw_tracer, nb);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1240
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1245
queue_work(tracer->work_queue, &tracer->ownership_change_work);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1248
queue_work(tracer->work_queue, &tracer->handle_traces_work);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
1251
queue_work(tracer->work_queue, &tracer->update_db_work);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
126
static int mlx5_fw_tracer_create_log_buf(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
128
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
135
tracer->buff.size = TRACE_BUFFER_SIZE_BYTE;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
139
get_order(tracer->buff.size));
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
145
tracer->buff.log_buf = buff;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
148
dma = dma_map_single(ddev, buff, tracer->buff.size, DMA_FROM_DEVICE);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
155
tracer->buff.dma = dma;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
160
free_pages((unsigned long)tracer->buff.log_buf, get_order(tracer->buff.size));
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
165
static void mlx5_fw_tracer_destroy_log_buf(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
167
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
170
if (!tracer->buff.log_buf)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
174
dma_unmap_single(ddev, tracer->buff.dma, tracer->buff.size, DMA_FROM_DEVICE);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
175
free_pages((unsigned long)tracer->buff.log_buf, get_order(tracer->buff.size));
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
178
static int mlx5_fw_tracer_create_mkey(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
180
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
197
mtt[i] = cpu_to_be64(tracer->buff.dma + i * PAGE_SIZE);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
203
MLX5_SET(mkc, mkc, pd, tracer->buff.pdn);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
209
MLX5_SET64(mkc, mkc, start_addr, tracer->buff.dma);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
210
MLX5_SET64(mkc, mkc, len, tracer->buff.size);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
211
err = mlx5_core_create_mkey(dev, &tracer->buff.mkey, in, inlen);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
220
static void mlx5_fw_tracer_free_strings_db(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
222
u32 num_string_db = tracer->str_db.num_string_db;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
226
kfree(tracer->str_db.buffer[i]);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
227
tracer->str_db.buffer[i] = NULL;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
231
static int mlx5_fw_tracer_allocate_strings_db(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
233
u32 *string_db_size_out = tracer->str_db.size_out;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
234
u32 num_string_db = tracer->str_db.num_string_db;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
240
tracer->str_db.buffer[i] = kzalloc(string_db_size_out[i], GFP_KERNEL);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
241
if (!tracer->str_db.buffer[i])
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
248
mlx5_fw_tracer_free_strings_db(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
253
mlx5_fw_tracer_init_saved_traces_array(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
255
tracer->st_arr.saved_traces_index = 0;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
256
mutex_init(&tracer->st_arr.lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
260
mlx5_fw_tracer_clean_saved_traces_array(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
262
mutex_destroy(&tracer->st_arr.lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
267
struct mlx5_fw_tracer *tracer = container_of(work, struct mlx5_fw_tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
269
u32 num_of_reads, num_string_db = tracer->str_db.num_string_db;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
270
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
285
if (!tracer->str_db.size_out[i])
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
289
num_of_reads = tracer->str_db.size_out[i] /
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
291
leftovers = (tracer->str_db.size_out[i] %
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
309
memcpy(tracer->str_db.buffer[i] + offset, out_value,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
330
memcpy(tracer->str_db.buffer[i] + offset, out_value,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
336
tracer->str_db.loaded = true;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
38
static int mlx5_query_mtrc_caps(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
40
u32 *string_db_base_address_out = tracer->str_db.base_address_out;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
408
static struct tracer_string_format *mlx5_tracer_message_insert(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
41
u32 *string_db_size_out = tracer->str_db.size_out;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
412
&tracer->hash[mlx5_tracer_message_hash(tracer_event->string_event.tmsn)];
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
42
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
424
static struct tracer_string_format *mlx5_tracer_get_string(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
433
for (i = 0; i < tracer->str_db.num_string_db; i++) {
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
434
if (!tracer->str_db.size_out[i])
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
436
if (str_ptr > tracer->str_db.base_address_out[i] &&
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
437
str_ptr < tracer->str_db.base_address_out[i] +
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
438
tracer->str_db.size_out[i]) {
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
439
offset = str_ptr - tracer->str_db.base_address_out[i];
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
441
cur_string = mlx5_tracer_message_insert(tracer, tracer_event);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
444
cur_string->string = (char *)(tracer->str_db.buffer[i] +
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
503
static struct tracer_string_format *mlx5_tracer_message_get(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
507
&tracer->hash[mlx5_tracer_message_hash(tracer_event->string_event.tmsn)];
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
512
static void poll_trace(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
525
if (tracer->trc_ver == 0)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
543
if (tracer_event->event_id >= tracer->str_db.first_string_trace &&
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
544
tracer_event->event_id <= tracer->str_db.first_string_trace +
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
545
tracer->str_db.num_string_trace) {
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
562
static u64 get_block_timestamp(struct mlx5_fw_tracer *tracer, u64 *ts_event)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
570
poll_trace(tracer, &tracer_event, ts_event);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
577
static void mlx5_fw_tracer_clean_print_hash(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
584
hlist_for_each_entry_safe(str_frmt, n, &tracer->hash[i], hlist)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
589
static void mlx5_fw_tracer_clean_ready_list(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
593
list_for_each_entry_safe(str_frmt, tmp_str, &tracer->ready_strings_list,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
598
static void mlx5_fw_tracer_save_trace(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
604
mutex_lock(&tracer->st_arr.lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
605
trace_data = &tracer->st_arr.straces[tracer->st_arr.saved_traces_index];
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
61
tracer->trc_ver = MLX5_GET(mtrc_cap, out, trc_ver);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
611
tracer->st_arr.saved_traces_index =
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
612
(tracer->st_arr.saved_traces_index + 1) & (SAVED_TRACES_NUM - 1);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
613
mutex_unlock(&tracer->st_arr.lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
62
tracer->str_db.first_string_trace =
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
635
trace_mlx5_fw(dev->tracer, trace_timestamp, str_frmt->lost,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
638
mlx5_fw_tracer_save_trace(dev->tracer, trace_timestamp,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
64
tracer->str_db.num_string_trace =
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
645
static int mlx5_tracer_handle_raw_string(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
650
cur_string = mlx5_tracer_message_insert(tracer, tracer_event);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
66
tracer->str_db.num_string_db = MLX5_GET(mtrc_cap, out, num_string_db);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
661
list_add_tail(&cur_string->list, &tracer->ready_strings_list);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
665
static void mlx5_tracer_handle_bad_format_string(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
669
list_add_tail(&cur_string->list, &tracer->ready_strings_list);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
67
tracer->owner = !!MLX5_GET(mtrc_cap, out, trace_owner);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
672
static int mlx5_tracer_handle_string_trace(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
678
cur_string = mlx5_tracer_get_string(tracer, tracer_event);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
68
tracer->str_db.loaded = false;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
680
return mlx5_tracer_handle_raw_string(tracer, tracer_event);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
691
mlx5_tracer_handle_bad_format_string(tracer, cur_string);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
695
list_add_tail(&cur_string->list, &tracer->ready_strings_list);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
697
cur_string = mlx5_tracer_message_get(tracer, tracer_event);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
70
for (i = 0; i < tracer->str_db.num_string_db; i++) {
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
701
return mlx5_tracer_handle_raw_string(tracer, tracer_event);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
712
list_add_tail(&cur_string->list, &tracer->ready_strings_list);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
719
list_add_tail(&cur_string->list, &tracer->ready_strings_list);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
725
static void mlx5_tracer_handle_timestamp_trace(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
731
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
734
list_for_each_entry_safe(str_frmt, tmp_str, &tracer->ready_strings_list, list) {
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
747
static int mlx5_tracer_handle_trace(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
751
mlx5_tracer_handle_string_trace(tracer, tracer_event);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
754
mlx5_tracer_handle_timestamp_trace(tracer, tracer_event);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
764
struct mlx5_fw_tracer *tracer =
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
769
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
773
mlx5_core_dbg(dev, "FWTracer: Handle Trace event, owner=(%d)\n", tracer->owner);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
774
if (!tracer->owner)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
777
if (unlikely(!tracer->str_db.loaded))
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
780
block_count = tracer->buff.size / TRACER_BLOCK_SIZE_BYTE;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
781
start_offset = tracer->buff.consumer_index * TRACER_BLOCK_SIZE_BYTE;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
784
memcpy(tmp_trace_block, tracer->buff.log_buf + start_offset,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
788
get_block_timestamp(tracer, &tmp_trace_block[TRACES_PER_BLOCK - 1]);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
790
while (block_timestamp > tracer->last_timestamp) {
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
792
if (tracer->last_timestamp) {
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
800
(tracer->buff.consumer_index - 1) & (block_count - 1);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
803
ts_event = tracer->buff.log_buf + prev_start_offset +
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
805
last_block_timestamp = get_block_timestamp(tracer, ts_event);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
811
if (tracer->last_timestamp != last_block_timestamp) {
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
813
tracer->last_timestamp = block_timestamp;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
814
tracer->buff.consumer_index =
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
815
(tracer->buff.consumer_index + 1) & (block_count - 1);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
82
static int mlx5_set_mtrc_caps_trace_owner(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
822
poll_trace(tracer, &tracer_event, &tmp_trace_block[i]);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
823
mlx5_tracer_handle_trace(tracer, &tracer_event);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
826
tracer->buff.consumer_index =
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
827
(tracer->buff.consumer_index + 1) & (block_count - 1);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
829
tracer->last_timestamp = block_timestamp;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
830
start_offset = tracer->buff.consumer_index * TRACER_BLOCK_SIZE_BYTE;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
831
memcpy(tmp_trace_block, tracer->buff.log_buf + start_offset,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
833
block_timestamp = get_block_timestamp(tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
841
static int mlx5_fw_tracer_set_mtrc_conf(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
843
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
851
MLX5_SET(mtrc_conf, in, trace_mkey, tracer->buff.mkey);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
858
tracer->buff.consumer_index = 0;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
86
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
862
static int mlx5_fw_tracer_set_mtrc_ctrl(struct mlx5_fw_tracer *tracer, u8 status, u8 arm)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
864
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
877
tracer->last_timestamp = 0;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
882
static int mlx5_fw_tracer_start(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
884
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
887
err = mlx5_fw_tracer_ownership_acquire(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
894
err = mlx5_fw_tracer_set_mtrc_conf(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
901
err = mlx5_fw_tracer_set_mtrc_ctrl(tracer, 1, 1);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
911
mlx5_fw_tracer_ownership_release(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
917
struct mlx5_fw_tracer *tracer =
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
920
mlx5_core_dbg(tracer->dev, "FWTracer: ownership changed, current=(%d)\n", tracer->owner);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
921
if (tracer->owner) {
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
922
mlx5_fw_tracer_ownership_acquire(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
926
mlx5_fw_tracer_start(tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
944
struct mlx5_fw_tracer *tracer = dev->tracer;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
948
if (!MLX5_CAP_DEBUG(dev, core_dump_general) || !tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
95
static int mlx5_fw_tracer_ownership_acquire(struct mlx5_fw_tracer *tracer)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
950
if (!tracer->owner)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
958
queue_work(tracer->work_queue, &tracer->handle_traces_work);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
959
flush_workqueue(tracer->work_queue);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
97
struct mlx5_core_dev *dev = tracer->dev;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
975
int mlx5_fw_tracer_get_saved_traces_objects(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
978
struct mlx5_fw_trace_data *straces = tracer->st_arr.straces;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
985
mutex_lock(&tracer->st_arr.lock);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
986
saved_traces_index = tracer->st_arr.saved_traces_index;
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h
198
int mlx5_fw_tracer_init(struct mlx5_fw_tracer *tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h
199
void mlx5_fw_tracer_cleanup(struct mlx5_fw_tracer *tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h
200
void mlx5_fw_tracer_destroy(struct mlx5_fw_tracer *tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h
202
int mlx5_fw_tracer_get_saved_traces_objects(struct mlx5_fw_tracer *tracer,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h
204
int mlx5_fw_tracer_reload(struct mlx5_fw_tracer *tracer);
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h
44
TP_PROTO(const struct mlx5_fw_tracer *tracer, u64 trace_timestamp,
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h
47
TP_ARGS(tracer, trace_timestamp, lost, event_id, msg),
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h
50
__string(dev_name, dev_name(tracer->dev->device))
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
367
if (mlx5_fw_tracer_reload(dev->tracer))
drivers/net/ethernet/mellanox/mlx5/core/health.c
550
return mlx5_fw_tracer_get_saved_traces_objects(dev->tracer, fmsg);
drivers/net/ethernet/mellanox/mlx5/core/main.c
1088
dev->tracer = mlx5_fw_tracer_create(dev);
drivers/net/ethernet/mellanox/mlx5/core/main.c
1132
mlx5_fw_tracer_destroy(dev->tracer);
drivers/net/ethernet/mellanox/mlx5/core/main.c
1343
err = mlx5_fw_tracer_init(dev->tracer);
drivers/net/ethernet/mellanox/mlx5/core/main.c
1346
mlx5_fw_tracer_destroy(dev->tracer);
drivers/net/ethernet/mellanox/mlx5/core/main.c
1347
dev->tracer = NULL;
drivers/net/ethernet/mellanox/mlx5/core/main.c
1417
mlx5_fw_tracer_cleanup(dev->tracer);
drivers/net/ethernet/mellanox/mlx5/core/main.c
1444
mlx5_fw_tracer_cleanup(dev->tracer);
fs/proc/array.c
155
struct task_struct *tracer;
fs/proc/array.c
161
tracer = ptrace_parent(p);
fs/proc/array.c
162
if (tracer)
fs/proc/array.c
163
tpid = task_pid_nr_ns(tracer, ns);
include/linux/mlx5/driver.h
784
struct mlx5_fw_tracer *tracer;
include/linux/ptrace.h
61
extern void exit_ptrace(struct task_struct *tracer, struct list_head *dead);
include/linux/trace_events.h
15
struct tracer;
include/linux/trace_events.h
98
struct tracer *trace;
kernel/ptrace.c
538
static bool __ptrace_detach(struct task_struct *tracer, struct task_struct *p)
kernel/ptrace.c
550
if (!same_thread_group(p->real_parent, tracer))
kernel/ptrace.c
552
else if (ignoring_children(tracer->sighand)) {
kernel/ptrace.c
553
__wake_up_parent(p, tracer);
kernel/ptrace.c
594
void exit_ptrace(struct task_struct *tracer, struct list_head *dead)
kernel/ptrace.c
598
list_for_each_entry_safe(p, n, &tracer->ptraced, ptrace_entry) {
kernel/ptrace.c
602
if (__ptrace_detach(tracer, p))
kernel/trace/blktrace.c
1815
static struct tracer blk_tracer __read_mostly = {
kernel/trace/trace.c
1737
struct tracer *type;
kernel/trace/trace.c
1742
static int save_selftest(struct tracer *type)
kernel/trace/trace.c
1755
static int run_tracer_selftest(struct tracer *type)
kernel/trace/trace.c
1759
struct tracer *saved_tracer = tr->current_trace;
kernel/trace/trace.c
1831
static int do_run_tracer_selftest(struct tracer *type)
kernel/trace/trace.c
1852
struct tracer *t, **last;
kernel/trace/trace.c
1893
static inline int do_run_tracer_selftest(struct tracer *type)
kernel/trace/trace.c
1899
static int add_tracer(struct trace_array *tr, struct tracer *t);
kernel/trace/trace.c
1922
int __init register_tracer(struct tracer *type)
kernel/trace/trace.c
1925
struct tracer *t;
kernel/trace/trace.c
3415
struct tracer *type = iter->trace;
kernel/trace/trace.c
4179
trace_ok_for_array(struct tracer *t, struct trace_array *tr)
kernel/trace/trace.c
4188
static struct tracer *
kernel/trace/trace.c
4189
get_tracer_for_array(struct trace_array *tr, struct tracer *t)
kernel/trace/trace.c
4201
struct tracer *t = v;
kernel/trace/trace.c
4214
struct tracer *t;
kernel/trace/trace.c
4233
struct tracer *t = v;
kernel/trace/trace.c
4458
struct tracer *trace = tracer_flags->trace;
kernel/trace/trace.c
4494
int trace_keep_overwrite(struct tracer *tracer, u64 mask, int set)
kernel/trace/trace.c
4496
if (tracer->enabled && (mask & TRACE_ITER(OVERWRITE)) && !set)
kernel/trace/trace.c
5218
int tracer_init(struct tracer *t, struct trace_array *tr)
kernel/trace/trace.c
5551
struct tracer *trace = NULL;
kernel/trace/trace.c
5569
if (strcmp(t->tracer->name, buf) == 0) {
kernel/trace/trace.c
5570
trace = t->tracer;
kernel/trace/trace.c
5638
tr->current_trace_flags = t->flags ? : t->tracer->flags;
kernel/trace/trace.c
693
static struct tracer *trace_types __read_mostly;
kernel/trace/trace.c
8894
create_trace_option_files(struct trace_array *tr, struct tracer *tracer,
kernel/trace/trace.c
8922
tr->topts[tr->nr_topts].tracer = tracer;
kernel/trace/trace.c
8936
static int get_global_flags_val(struct tracer *tracer)
kernel/trace/trace.c
8941
if (t->tracer != tracer)
kernel/trace/trace.c
8952
struct tracer *tracer = t->tracer;
kernel/trace/trace.c
8953
struct tracer_flags *flags = t->flags ?: tracer->flags;
kernel/trace/trace.c
8962
return create_trace_option_files(tr, tracer, flags);
kernel/trace/trace.c
8965
static int add_tracer(struct trace_array *tr, struct tracer *tracer)
kernel/trace/trace.c
8979
if (!trace_ok_for_array(tracer, tr))
kernel/trace/trace.c
8986
t->tracer = tracer;
kernel/trace/trace.c
8990
flags = tracer->flags;
kernel/trace/trace.c
8992
if (!tracer->default_flags)
kernel/trace/trace.c
9003
*flags = *tracer->default_flags;
kernel/trace/trace.c
9004
flags->trace = tracer;
kernel/trace/trace.c
9010
int val = get_global_flags_val(tracer);
kernel/trace/trace.c
9476
struct tracer *t;
kernel/trace/trace.c
99
struct tracer *tracer;
kernel/trace/trace.h
1472
extern struct tracer nop_trace;
kernel/trace/trace.h
214
struct tracer;
kernel/trace/trace.h
2154
int trace_keep_overwrite(struct tracer *tracer, u64 mask, int set);
kernel/trace/trace.h
228
struct tracer *tracer;
kernel/trace/trace.h
402
struct tracer *current_trace;
kernel/trace/trace.h
584
struct tracer *trace;
kernel/trace/trace.h
639
int (*selftest)(struct tracer *trace,
kernel/trace/trace.h
650
struct tracer *next;
kernel/trace/trace.h
671
int tracer_init(struct tracer *t, struct trace_array *tr);
kernel/trace/trace.h
768
int register_tracer(struct tracer *type);
kernel/trace/trace.h
827
static inline bool tracer_uses_snapshot(struct tracer *tracer)
kernel/trace/trace.h
829
return tracer->use_max_tr;
kernel/trace/trace.h
832
static inline bool tracer_uses_snapshot(struct tracer *tracer)
kernel/trace/trace.h
871
extern int trace_selftest_startup_function(struct tracer *trace,
kernel/trace/trace.h
873
extern int trace_selftest_startup_function_graph(struct tracer *trace,
kernel/trace/trace.h
875
extern int trace_selftest_startup_irqsoff(struct tracer *trace,
kernel/trace/trace.h
877
extern int trace_selftest_startup_preemptoff(struct tracer *trace,
kernel/trace/trace.h
879
extern int trace_selftest_startup_preemptirqsoff(struct tracer *trace,
kernel/trace/trace.h
881
extern int trace_selftest_startup_wakeup(struct tracer *trace,
kernel/trace/trace.h
883
extern int trace_selftest_startup_nop(struct tracer *trace,
kernel/trace/trace.h
885
extern int trace_selftest_startup_branch(struct tracer *trace,
kernel/trace/trace_branch.c
167
static struct tracer branch_trace __read_mostly =
kernel/trace/trace_branch.c
24
static struct tracer branch_trace;
kernel/trace/trace_functions.c
453
static struct tracer function_trace;
kernel/trace/trace_functions.c
488
static struct tracer function_trace __tracer_data =
kernel/trace/trace_functions_graph.c
1742
static struct tracer graph_trace __tracer_data = {
kernel/trace/trace_functions_graph.c
502
static struct tracer graph_trace;
kernel/trace/trace_hwlat.c
861
static struct tracer hwlat_tracer __read_mostly =
kernel/trace/trace_irqsoff.c
541
struct tracer *tracer = tr->current_trace;
kernel/trace/trace_irqsoff.c
551
return trace_keep_overwrite(tracer, mask, set);
kernel/trace/trace_irqsoff.c
662
static struct tracer irqsoff_tracer __read_mostly =
kernel/trace/trace_irqsoff.c
708
static struct tracer preemptoff_tracer __read_mostly =
kernel/trace/trace_irqsoff.c
743
static struct tracer preemptirqsoff_tracer __read_mostly =
kernel/trace/trace_mmiotrace.c
274
static struct tracer mmio_tracer __read_mostly =
kernel/trace/trace_nop.c
88
struct tracer nop_trace __read_mostly =
kernel/trace/trace_osnoise.c
2990
static struct tracer osnoise_tracer __read_mostly = {
kernel/trace/trace_osnoise.c
3071
static struct tracer timerlat_tracer __read_mostly = {
kernel/trace/trace_sched_wakeup.c
329
struct tracer *tracer = tr->current_trace;
kernel/trace/trace_sched_wakeup.c
339
return trace_keep_overwrite(tracer, mask, set);
kernel/trace/trace_sched_wakeup.c
752
static struct tracer wakeup_tracer __read_mostly =
kernel/trace/trace_sched_wakeup.c
772
static struct tracer wakeup_rt_tracer __read_mostly =
kernel/trace/trace_sched_wakeup.c
792
static struct tracer wakeup_dl_tracer __read_mostly =
kernel/trace/trace_selftest.c
1062
trace_selftest_startup_function_graph(struct tracer *trace,
kernel/trace/trace_selftest.c
1196
trace_selftest_startup_irqsoff(struct tracer *trace, struct trace_array *tr)
kernel/trace/trace_selftest.c
1245
trace_selftest_startup_preemptoff(struct tracer *trace, struct trace_array *tr)
kernel/trace/trace_selftest.c
1307
trace_selftest_startup_preemptirqsoff(struct tracer *trace, struct trace_array *tr)
kernel/trace/trace_selftest.c
1408
trace_selftest_startup_nop(struct tracer *trace, struct trace_array *tr)
kernel/trace/trace_selftest.c
1460
trace_selftest_startup_wakeup(struct tracer *trace, struct trace_array *tr)
kernel/trace/trace_selftest.c
1538
trace_selftest_startup_branch(struct tracer *trace, struct trace_array *tr)
kernel/trace/trace_selftest.c
357
static int trace_selftest_startup_dynamic_tracing(struct tracer *trace,
kernel/trace/trace_selftest.c
692
trace_selftest_startup_function(struct tracer *trace, struct trace_array *tr)
kernel/trace/trace_selftest.c
98
static inline void warn_failed_init_tracer(struct tracer *trace, int init_ret)
samples/seccomp/user-trap.c
208
pid_t worker = 0 , tracer = 0;
samples/seccomp/user-trap.c
286
tracer = fork();
samples/seccomp/user-trap.c
287
if (tracer < 0) {
samples/seccomp/user-trap.c
292
if (tracer == 0) {
samples/seccomp/user-trap.c
370
if (tracer > 0)
samples/seccomp/user-trap.c
371
kill(tracer, SIGKILL);
security/apparmor/domain.c
52
struct task_struct *tracer;
security/apparmor/domain.c
59
tracer = ptrace_parent(current);
security/apparmor/domain.c
60
if (tracer) {
security/apparmor/domain.c
62
tracerl = aa_get_task_label(tracer);
security/apparmor/domain.c
63
tracer_cred = get_task_cred(tracer);
security/apparmor/domain.c
66
if (!tracer || unconfined(tracerl))
security/apparmor/include/task.h
94
int aa_may_ptrace(const struct cred *tracer_cred, struct aa_label *tracer,
security/apparmor/lsm.c
128
struct aa_label *tracer, *tracee;
security/apparmor/lsm.c
135
tracer = __begin_current_label_crit_section(&needput);
security/apparmor/lsm.c
136
error = aa_may_ptrace(current_cred(), tracer, cred, tracee,
security/apparmor/lsm.c
139
__end_current_label_crit_section(tracer, needput);
security/apparmor/lsm.c
147
struct aa_label *tracer, *tracee;
security/apparmor/lsm.c
154
tracer = cred_label(cred); /* ref count on cred */
security/apparmor/lsm.c
155
error = aa_may_ptrace(cred, tracer, current_cred(), tracee,
security/apparmor/task.c
245
struct aa_label *tracer, u32 request,
security/apparmor/task.c
248
if (profile_unconfined(tracee) || unconfined(tracer) ||
security/apparmor/task.c
252
return profile_ptrace_perm(cred, tracee, tracer, request, ad);
security/apparmor/task.c
256
struct aa_profile *tracer,
security/apparmor/task.c
260
if (profile_unconfined(tracer))
security/apparmor/task.c
263
if (label_mediates(&tracer->label, AA_CLASS_PTRACE))
security/apparmor/task.c
264
return profile_ptrace_perm(cred, tracer, tracee, request, ad);
security/apparmor/task.c
267
if (&tracer->label == tracee)
security/apparmor/task.c
270
ad->subj_label = &tracer->label;
security/apparmor/task.c
273
ad->error = aa_capable(cred, &tracer->label, CAP_SYS_PTRACE,
security/apparmor/task.c
276
return aa_audit(AUDIT_APPARMOR_AUTO, tracer, ad, audit_ptrace_cb);
security/apparmor/task.c
289
int aa_may_ptrace(const struct cred *tracer_cred, struct aa_label *tracer,
security/apparmor/task.c
297
return xcheck_labels(tracer, tracee, profile,
security/apparmor/task.c
300
profile_tracee_perm(tracee_cred, profile, tracer,
security/selinux/hooks.c
2248
struct task_struct *tracer;
security/selinux/hooks.c
2251
tracer = ptrace_parent(current);
security/selinux/hooks.c
2252
if (tracer)
security/selinux/hooks.c
2253
sid = task_sid_obj(tracer);
security/smack/smack_lsm.c
412
static int smk_ptrace_rule_check(struct task_struct *tracer,
security/smack/smack_lsm.c
424
smk_ad_setfield_u_tsk(&ad, tracer);
security/smack/smack_lsm.c
429
tracercred = __task_cred(tracer);
security/smack/smack_lsm.c
919
struct task_struct *tracer;
security/smack/smack_lsm.c
923
tracer = ptrace_parent(current);
security/smack/smack_lsm.c
924
if (likely(tracer != NULL))
security/smack/smack_lsm.c
925
rc = smk_ptrace_rule_check(tracer,
security/yama/yama_lsm.c
141
static int yama_ptracer_add(struct task_struct *tracer,
security/yama/yama_lsm.c
151
added->tracer = tracer;
security/yama/yama_lsm.c
179
static void yama_ptracer_del(struct task_struct *tracer,
security/yama/yama_lsm.c
190
(tracer && relation->tracer == tracer)) {
security/yama/yama_lsm.c
243
struct task_struct *tracer;
security/yama/yama_lsm.c
245
tracer = find_get_task_by_vpid(arg2);
security/yama/yama_lsm.c
246
if (!tracer) {
security/yama/yama_lsm.c
249
rc = yama_ptracer_add(tracer, myself);
security/yama/yama_lsm.c
250
put_task_struct(tracer);
security/yama/yama_lsm.c
300
static int ptracer_exception_found(struct task_struct *tracer,
security/yama/yama_lsm.c
315
if (parent != NULL && same_thread_group(parent, tracer)) {
security/yama/yama_lsm.c
32
struct task_struct *tracer;
security/yama/yama_lsm.c
327
parent = relation->tracer;
security/yama/yama_lsm.c
333
if (found && (parent == NULL || task_is_descendant(parent, tracer)))
tools/perf/builtin-ftrace.c
1208
ftrace->tracer = "function_graph";
tools/perf/builtin-ftrace.c
1451
if (write_tracing_file("current_tracer", ftrace->tracer) < 0) {
tools/perf/builtin-ftrace.c
1452
pr_err("failed to set current_tracer to %s\n", ftrace->tracer);
tools/perf/builtin-ftrace.c
1537
ftrace->tracer = value;
tools/perf/builtin-ftrace.c
1755
.tracer = DEFAULT_TRACER,
tools/perf/builtin-ftrace.c
1772
OPT_STRING('t', "tracer", &ftrace.tracer, "tracer",
tools/perf/builtin-ftrace.c
732
ftrace->tracer = "function_graph";
tools/perf/builtin-ftrace.c
734
ftrace->tracer = "function";
tools/perf/builtin-ftrace.c
737
pr_debug("%s tracer is used\n", ftrace->tracer);
tools/perf/builtin-ftrace.c
766
if (write_tracing_file("current_tracer", ftrace->tracer) < 0) {
tools/perf/builtin-ftrace.c
767
pr_err("failed to set current_tracer to %s\n", ftrace->tracer);
tools/perf/util/ftrace.h
15
const char *tracer;
tools/testing/selftests/net/tcp_ao/lib/aolib.h
734
void (*destructor)(struct test_ftracer *tracer),
tools/testing/selftests/net/tcp_ao/lib/aolib.h
737
extern int setup_trace_event(struct test_ftracer *tracer,
tools/testing/selftests/net/tcp_ao/lib/aolib.h
739
extern void destroy_ftracer(struct test_ftracer *tracer);
tools/testing/selftests/net/tcp_ao/lib/aolib.h
740
extern const size_t tracer_get_savedlines_nr(struct test_ftracer *tracer);
tools/testing/selftests/net/tcp_ao/lib/aolib.h
741
extern const char **tracer_get_savedlines(struct test_ftracer *tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace-tcp.c
479
static void check_free_events(struct test_ftracer *tracer)
tools/testing/selftests/net/tcp_ao/lib/ftrace-tcp.c
489
nr = tracer_get_savedlines_nr(tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace-tcp.c
490
lines = tracer_get_savedlines(tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace-tcp.c
501
static int setup_tcp_trace_events(struct test_ftracer *tracer)
tools/testing/selftests/net/tcp_ao/lib/ftrace-tcp.c
519
ret = setup_trace_event(tracer, event_name, filter);
tools/testing/selftests/net/tcp_ao/lib/ftrace-tcp.c
529
static void aolib_tracer_destroy(struct test_ftracer *tracer)
tools/testing/selftests/net/tcp_ao/lib/ftrace-tcp.c
531
check_free_events(tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
147
static int setup_ftrace_instance(struct test_ftracer *tracer, const char *name)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
155
tracer->instance_path = mkdtemp(tmp);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
156
if (!tracer->instance_path) {
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
164
static void remove_ftrace_instance(struct test_ftracer *tracer)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
166
if (rmdir(tracer->instance_path))
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
168
tracer->instance_path);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
169
free(tracer->instance_path);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
174
struct test_ftracer *tracer = arg;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
176
fclose(tracer->trace_pipe);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
179
static void tracer_set_error(struct test_ftracer *tracer, int error)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
181
if (!tracer->error)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
182
tracer->error = error;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
185
const size_t tracer_get_savedlines_nr(struct test_ftracer *tracer)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
187
return tracer->next_line_ind;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
190
const char **tracer_get_savedlines(struct test_ftracer *tracer)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
192
return (const char **)tracer->saved_lines;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
197
struct test_ftracer *tracer = arg;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
201
while (tracer->next_line_ind < tracer->saved_lines_size) {
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
202
char **lp = &tracer->saved_lines[tracer->next_line_ind];
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
207
line_len = getline(lp, &buf_len, tracer->trace_pipe);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
212
op = tracer->process_line(*lp);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
215
if (tracer->expecting_more) {
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
216
pthread_mutex_lock(&tracer->met_all_expected_lock);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
217
if (!tracer->expecting_more())
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
218
pthread_cond_signal(&tracer->met_all_expected);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
219
pthread_mutex_unlock(&tracer->met_all_expected_lock);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
229
tracer->next_line_ind++;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
233
tracer->next_line_ind);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
239
static int setup_trace_thread(struct test_ftracer *tracer)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
24
void (*destructor)(struct test_ftracer *tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
244
path = test_sprintf("%s/trace_pipe", tracer->instance_path);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
248
tracer->trace_pipe = fopen(path, "r");
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
249
if (!tracer->trace_pipe) {
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
254
if (pthread_create(&tracer->tracer_thread, NULL,
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
255
tracer_thread_func, (void *)tracer)) {
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
257
fclose(tracer->trace_pipe);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
265
static void stop_trace_thread(struct test_ftracer *tracer)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
269
if (pthread_cancel(tracer->tracer_thread)) {
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
271
tracer_set_error(tracer, -errno);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
273
if (pthread_join(tracer->tracer_thread, &res)) {
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
275
tracer_set_error(tracer, -errno);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
279
tracer_set_error(tracer, -errno);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
281
if (tracer->error)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
282
test_fail("tracer errored by %s", strerror(tracer->error));
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
285
static void final_wait_for_events(struct test_ftracer *tracer,
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
292
if (!tracer->expecting_more)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
295
pthread_mutex_lock(&tracer->met_all_expected_lock);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
300
while (tracer->expecting_more() && ret != ETIMEDOUT)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
301
ret = pthread_cond_timedwait(&tracer->met_all_expected,
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
302
&tracer->met_all_expected_lock, &timeout);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
303
pthread_mutex_unlock(&tracer->met_all_expected_lock);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
306
int setup_trace_event(struct test_ftracer *tracer,
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
309
char *enable_path, *filter_path, *instance = tracer->instance_path;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
334
void (*destructor)(struct test_ftracer *tracer),
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
338
struct test_ftracer *tracer;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
346
tracer = malloc(sizeof(*tracer));
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
347
if (!tracer) {
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
352
memset(tracer, 0, sizeof(*tracer));
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
354
err = setup_ftrace_instance(tracer, name);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
360
err = disable_trace_options(tracer->instance_path);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
366
err = setup_buffer_size(tracer->instance_path, buffer_size_kb);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
372
tracer->saved_lines = calloc(lines_buf_sz, sizeof(tracer->saved_lines[0]));
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
373
if (!tracer->saved_lines) {
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
377
tracer->saved_lines_size = lines_buf_sz;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
379
tracer->process_line = process_line;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
380
tracer->destructor = destructor;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
381
tracer->expecting_more = expecting_more;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
383
err = pthread_cond_init(&tracer->met_all_expected, NULL);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
389
err = pthread_mutex_init(&tracer->met_all_expected_lock, NULL);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
395
err = setup_trace_thread(tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
402
tracer->next = ftracers;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
403
ftracers = tracer;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
406
return tracer;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
409
pthread_mutex_destroy(&tracer->met_all_expected_lock);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
411
pthread_cond_destroy(&tracer->met_all_expected);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
413
free(tracer->saved_lines);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
415
remove_ftrace_instance(tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
417
free(tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
421
static void __destroy_ftracer(struct test_ftracer *tracer)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
425
final_wait_for_events(tracer, TEST_TIMEOUT_SEC);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
426
stop_trace_thread(tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
427
remove_ftrace_instance(tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
428
if (tracer->destructor)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
429
tracer->destructor(tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
430
for (i = 0; i < tracer->saved_lines_size; i++)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
431
free(tracer->saved_lines[i]);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
432
pthread_cond_destroy(&tracer->met_all_expected);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
433
pthread_mutex_destroy(&tracer->met_all_expected_lock);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
434
free(tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
437
void destroy_ftracer(struct test_ftracer *tracer)
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
440
if (tracer == ftracers) {
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
441
ftracers = tracer->next;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
445
while (f->next != tracer) {
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
447
test_error("tracers list corruption or double free %p", tracer);
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
450
f->next = tracer->next;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
452
tracer->next = NULL;
tools/testing/selftests/net/tcp_ao/lib/ftrace.c
454
__destroy_ftracer(tracer);
tools/testing/selftests/seccomp/seccomp_bpf.c
1637
pid_t tracer)
tools/testing/selftests/seccomp/seccomp_bpf.c
1639
if (tracer) {
tools/testing/selftests/seccomp/seccomp_bpf.c
1641
ASSERT_EQ(0, kill(tracer, SIGUSR1));
tools/testing/selftests/seccomp/seccomp_bpf.c
1642
ASSERT_EQ(tracer, waitpid(tracer, &status, 0));
tools/testing/selftests/seccomp/seccomp_bpf.c
1675
pid_t tracer;
tools/testing/selftests/seccomp/seccomp_bpf.c
1701
self->tracer = setup_trace_fixture(_metadata, tracer_poke,
tools/testing/selftests/seccomp/seccomp_bpf.c
1707
teardown_trace_fixture(_metadata, self->tracer);
tools/testing/selftests/seccomp/seccomp_bpf.c
2052
pid_t tracer, mytid, mypid, parent;
tools/testing/selftests/seccomp/seccomp_bpf.c
2180
self->tracer = setup_trace_fixture(_metadata,
tools/testing/selftests/seccomp/seccomp_bpf.c
2198
teardown_trace_fixture(_metadata, self->tracer);
tools/tracing/latency/latency-collector.c
1374
char *tracer;
tools/tracing/latency/latency-collector.c
1380
tracer = read_file(TR_CURRENT, ERR_EXIT);
tools/tracing/latency/latency-collector.c
1383
if (needs_change(tracer, NOP_TRACER)) {
tools/tracing/latency/latency-collector.c
1388
tracer);
tools/tracing/latency/latency-collector.c
1393
"Use the -F [--force] option to disregard the current tracer.\n", tracer);
tools/tracing/latency/latency-collector.c
1400
save_state.tracer = tracer;
tools/tracing/latency/latency-collector.c
177
char *tracer;
tools/tracing/latency/latency-collector.c
609
restore_file(TR_CURRENT, &save_state.tracer, current_tracer);
tools/tracing/latency/latency-collector.c
655
save_state.tracer = NULL;
tools/tracing/rtla/src/common.c
211
retval = enable_tracer_by_name(trace_inst->inst, ops->tracer);
tools/tracing/rtla/src/common.c
213
err_msg("Failed to enable %s tracer\n", ops->tracer);
tools/tracing/rtla/src/common.c
236
tool->record = osnoise_init_trace_tool(ops->tracer);
tools/tracing/rtla/src/common.c
302
printf("%s hit stop tracing\n", ops->tracer);
tools/tracing/rtla/src/common.h
134
const char *tracer;
tools/tracing/rtla/src/common.h
153
struct osnoise_tool *osnoise_init_trace_tool(const char *tracer);
tools/tracing/rtla/src/osnoise.c
1043
struct osnoise_tool *osnoise_init_trace_tool(const char *tracer)
tools/tracing/rtla/src/osnoise.c
1058
retval = enable_tracer_by_name(trace->trace.inst, tracer);
tools/tracing/rtla/src/osnoise.c
1060
err_msg("Could not enable %s tracer for tracing\n", tracer);
tools/tracing/rtla/src/osnoise_hist.c
692
.tracer = "osnoise",
tools/tracing/rtla/src/osnoise_top.c
519
.tracer = "osnoise",
tools/tracing/rtla/src/timerlat_hist.c
1104
.tracer = "timerlat",
tools/tracing/rtla/src/timerlat_top.c
879
.tracer = "timerlat",
tools/tracing/rtla/src/trace.c
17
enum tracefs_tracers tracer;
tools/tracing/rtla/src/trace.c
20
tracer = TRACEFS_TRACER_CUSTOM;
tools/tracing/rtla/src/trace.c
24
retval = tracefs_tracer_set(inst, tracer, tracer_name);