u64 block_timestamp, last_block_timestamp, tmp_trace_block[TRACES_PER_BLOCK];
        u32 block_count, start_offset, prev_start_offset, prev_consumer_index;
        u32 trace_event_size = MLX5_ST_SZ_BYTES(tracer_event);
+       struct mlx5_core_dev *dev = tracer->dev;
        struct tracer_event tracer_event;
-       struct mlx5_core_dev *dev;
        int i;
 
+       mlx5_core_dbg(dev, "FWTracer: Handle Trace event, owner=(%d)\n", tracer->owner);
        if (!tracer->owner)
                return;
 
-       dev = tracer->dev;
        block_count = tracer->buff.size / TRACER_BLOCK_SIZE_BYTE;
        start_offset = tracer->buff.consumer_index * TRACER_BLOCK_SIZE_BYTE;
 
                goto release_ownership;
        }
 
+       mlx5_core_dbg(dev, "FWTracer: Ownership granted and active\n");
        return 0;
 
 release_ownership:
        struct mlx5_fw_tracer *tracer =
                container_of(work, struct mlx5_fw_tracer, ownership_change_work);
 
+       mlx5_core_dbg(tracer->dev, "FWTracer: ownership changed, current=(%d)\n", tracer->owner);
        if (tracer->owner) {
                tracer->owner = false;
                tracer->buff.consumer_index = 0;
                goto free_log_buf;
        }
 
+       mlx5_core_dbg(dev, "FWTracer: Tracer created\n");
+
        return tracer;
 
 free_log_buf:
        if (IS_ERR_OR_NULL(tracer))
                return;
 
+       mlx5_core_dbg(tracer->dev, "FWTracer: Cleanup, is owner ? (%d)\n",
+                     tracer->owner);
+
        cancel_work_sync(&tracer->ownership_change_work);
        cancel_work_sync(&tracer->handle_traces_work);
 
        if (IS_ERR_OR_NULL(tracer))
                return;
 
+       mlx5_core_dbg(tracer->dev, "FWTracer: Destroy\n");
+
        cancel_work_sync(&tracer->read_fw_strings_work);
        mlx5_fw_tracer_clean_ready_list(tracer);
        mlx5_fw_tracer_clean_print_hash(tracer);