tracer 37 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_query_mtrc_caps(struct mlx5_fw_tracer *tracer) tracer 39 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c u32 *string_db_base_address_out = tracer->str_db.base_address_out; tracer 40 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c u32 *string_db_size_out = tracer->str_db.size_out; tracer 41 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 60 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->trc_ver = MLX5_GET(mtrc_cap, out, trc_ver); tracer 61 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->str_db.first_string_trace = tracer 63 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->str_db.num_string_trace = tracer 65 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->str_db.num_string_db = MLX5_GET(mtrc_cap, out, num_string_db); tracer 66 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->owner = !!MLX5_GET(mtrc_cap, out, trace_owner); tracer 68 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c for (i = 0; i < tracer->str_db.num_string_db; i++) { tracer 80 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_set_mtrc_caps_trace_owner(struct mlx5_fw_tracer *tracer, tracer 84 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 93 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_ownership_acquire(struct mlx5_fw_tracer *tracer) tracer 95 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 99 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c err = mlx5_set_mtrc_caps_trace_owner(tracer, out, sizeof(out), tracer 107 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->owner = !!MLX5_GET(mtrc_cap, out, trace_owner); tracer 109 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (!tracer->owner) tracer 115 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_ownership_release(struct mlx5_fw_tracer *tracer) tracer 119 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_set_mtrc_caps_trace_owner(tracer, out, sizeof(out), tracer 121 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->owner = false; tracer 124 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_create_log_buf(struct mlx5_fw_tracer *tracer) tracer 126 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 133 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->buff.size = TRACE_BUFFER_SIZE_BYTE; tracer 137 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c get_order(tracer->buff.size)); tracer 143 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->buff.log_buf = buff; tracer 145 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c dma = dma_map_single(ddev, buff, tracer->buff.size, DMA_FROM_DEVICE); tracer 152 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->buff.dma = dma; tracer 157 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c free_pages((unsigned long)tracer->buff.log_buf, get_order(tracer->buff.size)); tracer 162 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_destroy_log_buf(struct mlx5_fw_tracer *tracer) tracer 164 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 167 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (!tracer->buff.log_buf) tracer 170 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c dma_unmap_single(ddev, tracer->buff.dma, tracer->buff.size, DMA_FROM_DEVICE); tracer 171 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c free_pages((unsigned long)tracer->buff.log_buf, get_order(tracer->buff.size)); tracer 174 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_create_mkey(struct mlx5_fw_tracer *tracer) tracer 176 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 193 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mtt[i] = cpu_to_be64(tracer->buff.dma + i * PAGE_SIZE); tracer 199 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c MLX5_SET(mkc, mkc, pd, tracer->buff.pdn); tracer 205 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c MLX5_SET64(mkc, mkc, start_addr, tracer->buff.dma); tracer 206 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c MLX5_SET64(mkc, mkc, len, tracer->buff.size); tracer 207 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c err = mlx5_core_create_mkey(dev, &tracer->buff.mkey, in, inlen); tracer 216 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_free_strings_db(struct mlx5_fw_tracer *tracer) tracer 218 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c u32 num_string_db = tracer->str_db.num_string_db; tracer 222 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c kfree(tracer->str_db.buffer[i]); tracer 223 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->str_db.buffer[i] = NULL; tracer 227 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_allocate_strings_db(struct mlx5_fw_tracer *tracer) tracer 229 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c u32 *string_db_size_out = tracer->str_db.size_out; tracer 230 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c u32 num_string_db = tracer->str_db.num_string_db; tracer 234 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->str_db.buffer[i] = kzalloc(string_db_size_out[i], GFP_KERNEL); tracer 235 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (!tracer->str_db.buffer[i]) tracer 242 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_free_strings_db(tracer); tracer 247 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_init_saved_traces_array(struct mlx5_fw_tracer *tracer) tracer 249 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->st_arr.saved_traces_index = 0; tracer 250 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mutex_init(&tracer->st_arr.lock); tracer 254 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_clean_saved_traces_array(struct mlx5_fw_tracer *tracer) tracer 256 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mutex_destroy(&tracer->st_arr.lock); tracer 261 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_fw_tracer *tracer = container_of(work, struct mlx5_fw_tracer, tracer 263 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c u32 num_of_reads, num_string_db = tracer->str_db.num_string_db; tracer 264 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 281 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c num_of_reads = tracer->str_db.size_out[i] / tracer 283 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c leftovers = (tracer->str_db.size_out[i] % tracer 301 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c memcpy(tracer->str_db.buffer[i] + offset, out_value, tracer 322 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c memcpy(tracer->str_db.buffer[i] + offset, out_value, tracer 328 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->str_db.loaded = true; tracer 359 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static struct tracer_string_format *mlx5_tracer_message_insert(struct mlx5_fw_tracer *tracer, tracer 363 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c &tracer->hash[mlx5_tracer_message_hash(tracer_event->string_event.tmsn)]; tracer 375 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static struct tracer_string_format *mlx5_tracer_get_string(struct mlx5_fw_tracer *tracer, tracer 384 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c for (i = 0; i < tracer->str_db.num_string_db; i++) { tracer 385 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (str_ptr > tracer->str_db.base_address_out[i] && tracer 386 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c str_ptr < tracer->str_db.base_address_out[i] + tracer 387 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->str_db.size_out[i]) { tracer 388 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c offset = str_ptr - tracer->str_db.base_address_out[i]; tracer 390 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c cur_string = mlx5_tracer_message_insert(tracer, tracer_event); tracer 393 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c cur_string->string = (char *)(tracer->str_db.buffer[i] + tracer 444 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static struct tracer_string_format *mlx5_tracer_message_get(struct mlx5_fw_tracer *tracer, tracer 448 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c &tracer->hash[mlx5_tracer_message_hash(tracer_event->string_event.tmsn)]; tracer 453 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void poll_trace(struct mlx5_fw_tracer *tracer, tracer 465 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (tracer->trc_ver == 0) tracer 483 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (tracer_event->event_id >= tracer->str_db.first_string_trace || tracer 484 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer_event->event_id <= tracer->str_db.first_string_trace + tracer 485 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->str_db.num_string_trace) { tracer 502 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static u64 get_block_timestamp(struct mlx5_fw_tracer *tracer, u64 *ts_event) tracer 510 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c poll_trace(tracer, &tracer_event, ts_event); tracer 517 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_clean_print_hash(struct mlx5_fw_tracer *tracer) tracer 524 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c hlist_for_each_entry_safe(str_frmt, n, &tracer->hash[i], hlist) tracer 529 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_clean_ready_list(struct mlx5_fw_tracer *tracer) tracer 533 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c list_for_each_entry_safe(str_frmt, tmp_str, &tracer->ready_strings_list, tracer 538 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_save_trace(struct mlx5_fw_tracer *tracer, tracer 544 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mutex_lock(&tracer->st_arr.lock); tracer 545 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c trace_data = &tracer->st_arr.straces[tracer->st_arr.saved_traces_index]; tracer 551 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->st_arr.saved_traces_index = tracer 552 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c (tracer->st_arr.saved_traces_index + 1) & (SAVED_TRACES_NUM - 1); tracer 553 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mutex_unlock(&tracer->st_arr.lock); tracer 572 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c trace_mlx5_fw(dev->tracer, trace_timestamp, str_frmt->lost, tracer 575 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_save_trace(dev->tracer, trace_timestamp, tracer 582 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_tracer_handle_string_trace(struct mlx5_fw_tracer *tracer, tracer 588 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c cur_string = mlx5_tracer_get_string(tracer, tracer_event); tracer 599 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c list_add_tail(&cur_string->list, &tracer->ready_strings_list); tracer 601 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c cur_string = mlx5_tracer_message_get(tracer, tracer_event); tracer 611 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c list_add_tail(&cur_string->list, &tracer->ready_strings_list); tracer 618 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c list_add_tail(&cur_string->list, &tracer->ready_strings_list); tracer 624 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_tracer_handle_timestamp_trace(struct mlx5_fw_tracer *tracer, tracer 630 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 633 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c list_for_each_entry_safe(str_frmt, tmp_str, &tracer->ready_strings_list, list) { tracer 646 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_tracer_handle_trace(struct mlx5_fw_tracer *tracer, tracer 650 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_tracer_handle_string_trace(tracer, tracer_event); tracer 653 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_tracer_handle_timestamp_trace(tracer, tracer_event); tracer 663 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_fw_tracer *tracer = tracer 668 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 672 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_core_dbg(dev, "FWTracer: Handle Trace event, owner=(%d)\n", tracer->owner); tracer 673 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (!tracer->owner) tracer 676 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c block_count = tracer->buff.size / TRACER_BLOCK_SIZE_BYTE; tracer 677 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c start_offset = tracer->buff.consumer_index * TRACER_BLOCK_SIZE_BYTE; tracer 680 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c memcpy(tmp_trace_block, tracer->buff.log_buf + start_offset, tracer 684 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c get_block_timestamp(tracer, &tmp_trace_block[TRACES_PER_BLOCK - 1]); tracer 686 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c while (block_timestamp > tracer->last_timestamp) { tracer 688 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (!tracer->last_timestamp) { tracer 696 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c (tracer->buff.consumer_index - 1) & (block_count - 1); tracer 699 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c ts_event = tracer->buff.log_buf + prev_start_offset + tracer 701 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c last_block_timestamp = get_block_timestamp(tracer, ts_event); tracer 707 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (tracer->last_timestamp != last_block_timestamp) { tracer 709 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->last_timestamp = block_timestamp; tracer 710 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->buff.consumer_index = tracer 711 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c (tracer->buff.consumer_index + 1) & (block_count - 1); tracer 718 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c poll_trace(tracer, &tracer_event, &tmp_trace_block[i]); tracer 719 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_tracer_handle_trace(tracer, &tracer_event); tracer 722 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->buff.consumer_index = tracer 723 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c (tracer->buff.consumer_index + 1) & (block_count - 1); tracer 725 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->last_timestamp = block_timestamp; tracer 726 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c start_offset = tracer->buff.consumer_index * TRACER_BLOCK_SIZE_BYTE; tracer 727 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c memcpy(tmp_trace_block, tracer->buff.log_buf + start_offset, tracer 729 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c block_timestamp = get_block_timestamp(tracer, tracer 736 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_set_mtrc_conf(struct mlx5_fw_tracer *tracer) tracer 738 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 746 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c MLX5_SET(mtrc_conf, in, trace_mkey, tracer->buff.mkey.key); tracer 756 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_set_mtrc_ctrl(struct mlx5_fw_tracer *tracer, u8 status, u8 arm) tracer 758 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 771 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->last_timestamp = 0; tracer 776 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_start(struct mlx5_fw_tracer *tracer) tracer 778 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 781 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c err = mlx5_fw_tracer_ownership_acquire(tracer); tracer 788 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c err = mlx5_fw_tracer_set_mtrc_conf(tracer); tracer 795 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c err = mlx5_fw_tracer_set_mtrc_ctrl(tracer, 1, 1); tracer 805 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_ownership_release(tracer); tracer 811 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_fw_tracer *tracer = tracer 814 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_core_dbg(tracer->dev, "FWTracer: ownership changed, current=(%d)\n", tracer->owner); tracer 815 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (tracer->owner) { tracer 816 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->owner = false; tracer 817 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->buff.consumer_index = 0; tracer 821 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_start(tracer); tracer 839 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_fw_tracer *tracer = dev->tracer; tracer 843 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (!MLX5_CAP_DEBUG(dev, core_dump_general) || !tracer) tracer 845 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (!tracer->owner) tracer 853 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c queue_work(tracer->work_queue, &tracer->handle_traces_work); tracer 854 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c flush_workqueue(tracer->work_queue); tracer 890 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c int mlx5_fw_tracer_get_saved_traces_objects(struct mlx5_fw_tracer *tracer, tracer 893 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_fw_trace_data *straces = tracer->st_arr.straces; tracer 901 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mutex_lock(&tracer->st_arr.lock); tracer 902 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c saved_traces_index = tracer->st_arr.saved_traces_index; tracer 923 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mutex_unlock(&tracer->st_arr.lock); tracer 930 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_fw_tracer *tracer = NULL; tracer 938 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer = kvzalloc(sizeof(*tracer), GFP_KERNEL); tracer 939 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (!tracer) tracer 942 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->work_queue = create_singlethread_workqueue("mlx5_fw_tracer"); tracer 943 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (!tracer->work_queue) { tracer 948 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->dev = dev; tracer 950 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c INIT_LIST_HEAD(&tracer->ready_strings_list); tracer 951 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c INIT_WORK(&tracer->ownership_change_work, mlx5_fw_tracer_ownership_change); tracer 952 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c INIT_WORK(&tracer->read_fw_strings_work, mlx5_tracer_read_strings_db); tracer 953 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c INIT_WORK(&tracer->handle_traces_work, mlx5_fw_tracer_handle_traces); tracer 956 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c err = mlx5_query_mtrc_caps(tracer); tracer 962 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c err = mlx5_fw_tracer_create_log_buf(tracer); tracer 968 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c err = mlx5_fw_tracer_allocate_strings_db(tracer); tracer 974 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_init_saved_traces_array(tracer); tracer 977 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c return tracer; tracer 980 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_destroy_log_buf(tracer); tracer 982 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->dev = NULL; tracer 983 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c destroy_workqueue(tracer->work_queue); tracer 985 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c kvfree(tracer); tracer 992 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c int mlx5_fw_tracer_init(struct mlx5_fw_tracer *tracer) tracer 997 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (IS_ERR_OR_NULL(tracer)) tracer 1000 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c dev = tracer->dev; tracer 1002 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (!tracer->str_db.loaded) tracer 1003 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c queue_work(tracer->work_queue, &tracer->read_fw_strings_work); tracer 1005 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c err = mlx5_core_alloc_pd(dev, &tracer->buff.pdn); tracer 1011 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c err = mlx5_fw_tracer_create_mkey(tracer); tracer 1017 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c MLX5_NB_INIT(&tracer->nb, fw_tracer_event, DEVICE_TRACER); tracer 1018 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_eq_notifier_register(dev, &tracer->nb); tracer 1020 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_start(tracer); tracer 1025 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_core_dealloc_pd(dev, tracer->buff.pdn); tracer 1030 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c void mlx5_fw_tracer_cleanup(struct mlx5_fw_tracer *tracer) tracer 1032 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (IS_ERR_OR_NULL(tracer)) tracer 1035 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_core_dbg(tracer->dev, "FWTracer: Cleanup, is owner ? (%d)\n", tracer 1036 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c tracer->owner); tracer 1037 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_eq_notifier_unregister(tracer->dev, &tracer->nb); tracer 1038 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c cancel_work_sync(&tracer->ownership_change_work); tracer 1039 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c cancel_work_sync(&tracer->handle_traces_work); tracer 1041 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (tracer->owner) tracer 1042 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_ownership_release(tracer); tracer 1044 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_core_destroy_mkey(tracer->dev, &tracer->buff.mkey); tracer 1045 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_core_dealloc_pd(tracer->dev, tracer->buff.pdn); tracer 1049 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c void mlx5_fw_tracer_destroy(struct mlx5_fw_tracer *tracer) tracer 1051 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (IS_ERR_OR_NULL(tracer)) tracer 1054 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_core_dbg(tracer->dev, "FWTracer: Destroy\n"); tracer 1056 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c cancel_work_sync(&tracer->read_fw_strings_work); tracer 1057 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_clean_ready_list(tracer); tracer 1058 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_clean_print_hash(tracer); tracer 1059 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_clean_saved_traces_array(tracer); tracer 1060 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_free_strings_db(tracer); tracer 1061 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_destroy_log_buf(tracer); tracer 1062 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c flush_workqueue(tracer->work_queue); tracer 1063 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c destroy_workqueue(tracer->work_queue); tracer 1064 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c kvfree(tracer); tracer 1069 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_fw_tracer *tracer = mlx5_nb_cof(nb, struct mlx5_fw_tracer, nb); tracer 1070 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c struct mlx5_core_dev *dev = tracer->dev; tracer 1076 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c queue_work(tracer->work_queue, &tracer->ownership_change_work); tracer 1079 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c if (likely(tracer->str_db.loaded)) tracer 1080 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c queue_work(tracer->work_queue, &tracer->handle_traces_work); tracer 188 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h int mlx5_fw_tracer_init(struct mlx5_fw_tracer *tracer); tracer 189 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h void mlx5_fw_tracer_cleanup(struct mlx5_fw_tracer *tracer); tracer 190 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h void mlx5_fw_tracer_destroy(struct mlx5_fw_tracer *tracer); tracer 192 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h int mlx5_fw_tracer_get_saved_traces_objects(struct mlx5_fw_tracer *tracer, tracer 44 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h TP_PROTO(const struct mlx5_fw_tracer *tracer, u64 trace_timestamp, tracer 47 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h TP_ARGS(tracer, trace_timestamp, lost, event_id, msg), tracer 50 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h __string(dev_name, dev_name(tracer->dev->device)) tracer 59 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h dev_name(tracer->dev->device)); tracer 522 drivers/net/ethernet/mellanox/mlx5/core/health.c return mlx5_fw_tracer_get_saved_traces_objects(dev->tracer, fmsg); tracer 888 drivers/net/ethernet/mellanox/mlx5/core/main.c dev->tracer = mlx5_fw_tracer_create(dev); tracer 921 drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_fw_tracer_destroy(dev->tracer); tracer 1083 drivers/net/ethernet/mellanox/mlx5/core/main.c err = mlx5_fw_tracer_init(dev->tracer); tracer 1147 drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_fw_tracer_cleanup(dev->tracer); tracer 1168 drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_fw_tracer_cleanup(dev->tracer); tracer 158 fs/proc/array.c struct task_struct *tracer; tracer 167 fs/proc/array.c tracer = ptrace_parent(p); tracer 168 fs/proc/array.c if (tracer) tracer 169 fs/proc/array.c tpid = task_pid_nr_ns(tracer, ns); tracer 719 include/linux/mlx5/driver.h struct mlx5_fw_tracer *tracer; tracer 68 include/linux/ptrace.h extern void exit_ptrace(struct task_struct *tracer, struct list_head *dead); tracer 15 include/linux/trace_events.h struct tracer; tracer 76 include/linux/trace_events.h struct tracer *trace; tracer 524 kernel/ptrace.c static bool __ptrace_detach(struct task_struct *tracer, struct task_struct *p) tracer 536 kernel/ptrace.c if (!same_thread_group(p->real_parent, tracer)) tracer 538 kernel/ptrace.c else if (ignoring_children(tracer->sighand)) { tracer 539 kernel/ptrace.c __wake_up_parent(p, tracer); tracer 580 kernel/ptrace.c void exit_ptrace(struct task_struct *tracer, struct list_head *dead) tracer 584 kernel/ptrace.c list_for_each_entry_safe(p, n, &tracer->ptraced, ptrace_entry) { tracer 588 kernel/ptrace.c if (__ptrace_detach(tracer, p)) tracer 1588 kernel/trace/blktrace.c static struct tracer blk_tracer __read_mostly = { tracer 645 kernel/trace/trace.c static struct tracer *trace_types __read_mostly; tracer 921 kernel/trace/trace.c struct tracer *tracer = tr->current_trace; tracer 938 kernel/trace/trace.c if (tracer->use_max_tr) { tracer 1646 kernel/trace/trace.c struct tracer *type; tracer 1651 kernel/trace/trace.c static int save_selftest(struct tracer *type) tracer 1664 kernel/trace/trace.c static int run_tracer_selftest(struct tracer *type) tracer 1667 kernel/trace/trace.c struct tracer *saved_tracer = tr->current_trace; tracer 1734 kernel/trace/trace.c struct tracer *t, **last; tracer 1778 kernel/trace/trace.c static inline int run_tracer_selftest(struct tracer *type) tracer 1784 kernel/trace/trace.c static void add_tracer_options(struct trace_array *tr, struct tracer *t); tracer 1794 kernel/trace/trace.c int __init register_tracer(struct tracer *type) tracer 1796 kernel/trace/trace.c struct tracer *t; tracer 3640 kernel/trace/trace.c struct tracer *type = iter->trace; tracer 4306 kernel/trace/trace.c trace_ok_for_array(struct tracer *t, struct trace_array *tr) tracer 4312 kernel/trace/trace.c static struct tracer * tracer 4313 kernel/trace/trace.c get_tracer_for_array(struct trace_array *tr, struct tracer *t) tracer 4325 kernel/trace/trace.c struct tracer *t = v; tracer 4338 kernel/trace/trace.c struct tracer *t; tracer 4357 kernel/trace/trace.c struct tracer *t = v; tracer 4558 kernel/trace/trace.c struct tracer *trace = tracer_flags->trace; tracer 4575 kernel/trace/trace.c struct tracer *trace = tr->current_trace; tracer 4591 kernel/trace/trace.c int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set) tracer 4593 kernel/trace/trace.c if (tracer->enabled && (mask & TRACE_ITER_OVERWRITE) && !set) tracer 5448 kernel/trace/trace.c int tracer_init(struct tracer *t, struct trace_array *tr) tracer 5608 kernel/trace/trace.c create_trace_option_files(struct trace_array *tr, struct tracer *tracer); tracer 5627 kernel/trace/trace.c static void add_tracer_options(struct trace_array *tr, struct tracer *t) tracer 5638 kernel/trace/trace.c struct tracer *t; tracer 8068 kernel/trace/trace.c create_trace_option_files(struct trace_array *tr, struct tracer *tracer) tracer 8077 kernel/trace/trace.c if (!tracer) tracer 8080 kernel/trace/trace.c flags = tracer->flags; tracer 8089 kernel/trace/trace.c if (!trace_ok_for_array(tracer, tr)) tracer 8094 kernel/trace/trace.c if (WARN_ON_ONCE(tr->topts[i].tracer->flags == tracer->flags)) tracer 8115 kernel/trace/trace.c tr->topts[tr->nr_topts].tracer = tracer; tracer 8370 kernel/trace/trace.c struct tracer *t; tracer 173 kernel/trace/trace.h struct tracer; tracer 187 kernel/trace/trace.h struct tracer *tracer; tracer 296 kernel/trace/trace.h struct tracer *current_trace; tracer 432 kernel/trace/trace.h struct tracer *trace; tracer 487 kernel/trace/trace.h int (*selftest)(struct tracer *trace, tracer 498 kernel/trace/trace.h struct tracer *next; tracer 679 kernel/trace/trace.h int tracer_init(struct tracer *t, struct trace_array *tr); tracer 749 kernel/trace/trace.h int register_tracer(struct tracer *type); tracer 820 kernel/trace/trace.h extern int trace_selftest_startup_function(struct tracer *trace, tracer 822 kernel/trace/trace.h extern int trace_selftest_startup_function_graph(struct tracer *trace, tracer 824 kernel/trace/trace.h extern int trace_selftest_startup_irqsoff(struct tracer *trace, tracer 826 kernel/trace/trace.h extern int trace_selftest_startup_preemptoff(struct tracer *trace, tracer 828 kernel/trace/trace.h extern int trace_selftest_startup_preemptirqsoff(struct tracer *trace, tracer 830 kernel/trace/trace.h extern int trace_selftest_startup_wakeup(struct tracer *trace, tracer 832 kernel/trace/trace.h extern int trace_selftest_startup_nop(struct tracer *trace, tracer 834 kernel/trace/trace.h extern int trace_selftest_startup_branch(struct tracer *trace, tracer 1308 kernel/trace/trace.h extern struct tracer nop_trace; tracer 1894 kernel/trace/trace.h int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set); tracer 24 kernel/trace/trace_branch.c static struct tracer branch_trace; tracer 173 kernel/trace/trace_branch.c static struct tracer branch_trace __read_mostly = tracer 233 kernel/trace/trace_functions.c static struct tracer function_trace; tracer 266 kernel/trace/trace_functions.c static struct tracer function_trace __tracer_data = tracer 1281 kernel/trace/trace_functions_graph.c static struct tracer graph_trace __tracer_data = { tracer 612 kernel/trace/trace_hwlat.c static struct tracer hwlat_tracer __read_mostly = tracer 519 kernel/trace/trace_irqsoff.c struct tracer *tracer = tr->current_trace; tracer 529 kernel/trace/trace_irqsoff.c return trace_keep_overwrite(tracer, mask, set); tracer 640 kernel/trace/trace_irqsoff.c static struct tracer irqsoff_tracer __read_mostly = tracer 690 kernel/trace/trace_irqsoff.c static struct tracer preemptoff_tracer __read_mostly = tracer 725 kernel/trace/trace_irqsoff.c static struct tracer preemptirqsoff_tracer __read_mostly = tracer 276 kernel/trace/trace_mmiotrace.c static struct tracer mmio_tracer __read_mostly = tracer 88 kernel/trace/trace_nop.c struct tracer nop_trace __read_mostly = tracer 316 kernel/trace/trace_sched_wakeup.c struct tracer *tracer = tr->current_trace; tracer 326 kernel/trace/trace_sched_wakeup.c return trace_keep_overwrite(tracer, mask, set); tracer 744 kernel/trace/trace_sched_wakeup.c static struct tracer wakeup_tracer __read_mostly = tracer 764 kernel/trace/trace_sched_wakeup.c static struct tracer wakeup_rt_tracer __read_mostly = tracer 784 kernel/trace/trace_sched_wakeup.c static struct tracer wakeup_dl_tracer __read_mostly = tracer 97 kernel/trace/trace_selftest.c static inline void warn_failed_init_tracer(struct tracer *trace, int init_ret) tracer 325 kernel/trace/trace_selftest.c static int trace_selftest_startup_dynamic_tracing(struct tracer *trace, tracer 653 kernel/trace/trace_selftest.c trace_selftest_startup_function(struct tracer *trace, struct trace_array *tr) tracer 754 kernel/trace/trace_selftest.c trace_selftest_startup_function_graph(struct tracer *trace, tracer 821 kernel/trace/trace_selftest.c trace_selftest_startup_irqsoff(struct tracer *trace, struct trace_array *tr) tracer 870 kernel/trace/trace_selftest.c trace_selftest_startup_preemptoff(struct tracer *trace, struct trace_array *tr) tracer 932 kernel/trace/trace_selftest.c trace_selftest_startup_preemptirqsoff(struct tracer *trace, struct trace_array *tr) tracer 1033 kernel/trace/trace_selftest.c trace_selftest_startup_nop(struct tracer *trace, struct trace_array *tr) tracer 1085 kernel/trace/trace_selftest.c trace_selftest_startup_wakeup(struct tracer *trace, struct trace_array *tr) tracer 1163 kernel/trace/trace_selftest.c trace_selftest_startup_branch(struct tracer *trace, struct trace_array *tr) tracer 204 samples/seccomp/user-trap.c pid_t worker = 0 , tracer = 0; tracer 282 samples/seccomp/user-trap.c tracer = fork(); tracer 283 samples/seccomp/user-trap.c if (tracer < 0) { tracer 288 samples/seccomp/user-trap.c if (tracer == 0) { tracer 366 samples/seccomp/user-trap.c if (tracer > 0) tracer 367 samples/seccomp/user-trap.c kill(tracer, SIGKILL); tracer 62 security/apparmor/domain.c struct task_struct *tracer; tracer 67 security/apparmor/domain.c tracer = ptrace_parent(current); tracer 68 security/apparmor/domain.c if (tracer) tracer 70 security/apparmor/domain.c tracerl = aa_get_task_label(tracer); tracer 73 security/apparmor/domain.c if (!tracer || unconfined(tracerl)) tracer 32 security/apparmor/include/ipc.h int aa_may_ptrace(struct aa_label *tracer, struct aa_label *tracee, tracer 79 security/apparmor/ipc.c struct aa_label *tracer, u32 request, tracer 82 security/apparmor/ipc.c if (profile_unconfined(tracee) || unconfined(tracer) || tracer 86 security/apparmor/ipc.c return profile_ptrace_perm(tracee, tracer, request, sa); tracer 89 security/apparmor/ipc.c static int profile_tracer_perm(struct aa_profile *tracer, tracer 93 security/apparmor/ipc.c if (profile_unconfined(tracer)) tracer 96 security/apparmor/ipc.c if (PROFILE_MEDIATES(tracer, AA_CLASS_PTRACE)) tracer 97 security/apparmor/ipc.c return profile_ptrace_perm(tracer, tracee, request, sa); tracer 100 security/apparmor/ipc.c if (&tracer->label == tracee) tracer 103 security/apparmor/ipc.c aad(sa)->label = &tracer->label; tracer 106 security/apparmor/ipc.c aad(sa)->error = aa_capable(&tracer->label, CAP_SYS_PTRACE, tracer 109 security/apparmor/ipc.c return aa_audit(AUDIT_APPARMOR_AUTO, tracer, sa, audit_ptrace_cb); tracer 120 security/apparmor/ipc.c int aa_may_ptrace(struct aa_label *tracer, struct aa_label *tracee, tracer 127 security/apparmor/ipc.c return xcheck_labels(tracer, tracee, profile, tracer 129 security/apparmor/ipc.c profile_tracee_perm(profile, tracer, xrequest, &sa)); tracer 108 security/apparmor/lsm.c struct aa_label *tracer, *tracee; tracer 111 security/apparmor/lsm.c tracer = __begin_current_label_crit_section(); tracer 113 security/apparmor/lsm.c error = aa_may_ptrace(tracer, tracee, tracer 117 security/apparmor/lsm.c __end_current_label_crit_section(tracer); tracer 124 security/apparmor/lsm.c struct aa_label *tracer, *tracee; tracer 128 security/apparmor/lsm.c tracer = aa_get_task_label(parent); tracer 129 security/apparmor/lsm.c error = aa_may_ptrace(tracer, tracee, AA_PTRACE_TRACE); tracer 130 security/apparmor/lsm.c aa_put_label(tracer); tracer 2264 security/selinux/hooks.c struct task_struct *tracer; tracer 2267 security/selinux/hooks.c tracer = ptrace_parent(current); tracer 2268 security/selinux/hooks.c if (tracer) tracer 2269 security/selinux/hooks.c sid = task_sid(tracer); tracer 417 security/smack/smack_lsm.c static int smk_ptrace_rule_check(struct task_struct *tracer, tracer 429 security/smack/smack_lsm.c smk_ad_setfield_u_tsk(&ad, tracer); tracer 434 security/smack/smack_lsm.c tracercred = __task_cred(tracer); tracer 924 security/smack/smack_lsm.c struct task_struct *tracer; tracer 928 security/smack/smack_lsm.c tracer = ptrace_parent(current); tracer 929 security/smack/smack_lsm.c if (likely(tracer != NULL)) tracer 930 security/smack/smack_lsm.c rc = smk_ptrace_rule_check(tracer, tracer 31 security/yama/yama_lsm.c struct task_struct *tracer; tracer 141 security/yama/yama_lsm.c static int yama_ptracer_add(struct task_struct *tracer, tracer 151 security/yama/yama_lsm.c added->tracer = tracer; tracer 179 security/yama/yama_lsm.c static void yama_ptracer_del(struct task_struct *tracer, tracer 190 security/yama/yama_lsm.c (tracer && relation->tracer == tracer)) { tracer 247 security/yama/yama_lsm.c struct task_struct *tracer; tracer 249 security/yama/yama_lsm.c tracer = find_get_task_by_vpid(arg2); tracer 250 security/yama/yama_lsm.c if (!tracer) { tracer 253 security/yama/yama_lsm.c rc = yama_ptracer_add(tracer, myself); tracer 254 security/yama/yama_lsm.c put_task_struct(tracer); tracer 305 security/yama/yama_lsm.c static int ptracer_exception_found(struct task_struct *tracer, tracer 320 security/yama/yama_lsm.c if (parent != NULL && same_thread_group(parent, tracer)) { tracer 332 security/yama/yama_lsm.c parent = relation->tracer; tracer 338 security/yama/yama_lsm.c if (found && (parent == NULL || task_is_descendant(parent, tracer))) tracer 35 tools/perf/builtin-ftrace.c const char *tracer; tracer 338 tools/perf/builtin-ftrace.c if (write_tracing_file("current_tracer", ftrace->tracer) < 0) { tracer 339 tools/perf/builtin-ftrace.c pr_err("failed to set current_tracer to %s\n", ftrace->tracer); tracer 414 tools/perf/builtin-ftrace.c ftrace->tracer = value; tracer 452 tools/perf/builtin-ftrace.c .tracer = DEFAULT_TRACER, tracer 461 tools/perf/builtin-ftrace.c OPT_STRING('t', "tracer", &ftrace.tracer, "tracer", tracer 1463 tools/testing/selftests/seccomp/seccomp_bpf.c pid_t tracer) tracer 1465 tools/testing/selftests/seccomp/seccomp_bpf.c if (tracer) { tracer 1471 tools/testing/selftests/seccomp/seccomp_bpf.c ASSERT_EQ(0, kill(tracer, SIGUSR1)); tracer 1472 tools/testing/selftests/seccomp/seccomp_bpf.c ASSERT_EQ(tracer, waitpid(tracer, &status, 0)); tracer 1507 tools/testing/selftests/seccomp/seccomp_bpf.c pid_t tracer; tracer 1533 tools/testing/selftests/seccomp/seccomp_bpf.c self->tracer = setup_trace_fixture(_metadata, tracer_poke, tracer 1539 tools/testing/selftests/seccomp/seccomp_bpf.c teardown_trace_fixture(_metadata, self->tracer); tracer 1811 tools/testing/selftests/seccomp/seccomp_bpf.c pid_t tracer, mytid, mypid, parent; tracer 1852 tools/testing/selftests/seccomp/seccomp_bpf.c self->tracer = setup_trace_fixture(_metadata, tracer_syscall, NULL, tracer 1858 tools/testing/selftests/seccomp/seccomp_bpf.c teardown_trace_fixture(_metadata, self->tracer); tracer 1866 tools/testing/selftests/seccomp/seccomp_bpf.c teardown_trace_fixture(_metadata, self->tracer); tracer 1867 tools/testing/selftests/seccomp/seccomp_bpf.c self->tracer = setup_trace_fixture(_metadata, tracer_ptrace, NULL, tracer 1877 tools/testing/selftests/seccomp/seccomp_bpf.c teardown_trace_fixture(_metadata, self->tracer); tracer 1878 tools/testing/selftests/seccomp/seccomp_bpf.c self->tracer = setup_trace_fixture(_metadata, tracer_ptrace, NULL, tracer 1888 tools/testing/selftests/seccomp/seccomp_bpf.c teardown_trace_fixture(_metadata, self->tracer); tracer 1889 tools/testing/selftests/seccomp/seccomp_bpf.c self->tracer = setup_trace_fixture(_metadata, tracer_ptrace, NULL, tracer 2032 tools/testing/selftests/seccomp/seccomp_bpf.c teardown_trace_fixture(_metadata, self->tracer); tracer 2033 tools/testing/selftests/seccomp/seccomp_bpf.c self->tracer = setup_trace_fixture(_metadata, tracer_ptrace, NULL, tracer 2064 tools/testing/selftests/seccomp/seccomp_bpf.c teardown_trace_fixture(_metadata, self->tracer); tracer 2065 tools/testing/selftests/seccomp/seccomp_bpf.c self->tracer = setup_trace_fixture(_metadata, tracer_ptrace, NULL,