net/mlx5: Rearm the FW tracer after each tracer event
[ Upstream commit8bf94e6414
] The current design does not arm the tracer if traces are available before the tracer string database is fully loaded, leading to an unfunctional tracer. This fix will rearm the tracer every time the FW triggers tracer event regardless of the tracer strings database status. Fixes:c71ad41ccb
("net/mlx5: FW tracer, events handling") Signed-off-by: Feras Daoud <ferasda@nvidia.com> Signed-off-by: Roy Novich <royno@nvidia.com> Reviewed-by: Moshe Shemesh <moshe@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
d2ebc436aa
Коммит
0e92af67f0
|
@ -675,6 +675,9 @@ static void mlx5_fw_tracer_handle_traces(struct work_struct *work)
|
|||
if (!tracer->owner)
|
||||
return;
|
||||
|
||||
if (unlikely(!tracer->str_db.loaded))
|
||||
goto arm;
|
||||
|
||||
block_count = tracer->buff.size / TRACER_BLOCK_SIZE_BYTE;
|
||||
start_offset = tracer->buff.consumer_index * TRACER_BLOCK_SIZE_BYTE;
|
||||
|
||||
|
@ -732,6 +735,7 @@ static void mlx5_fw_tracer_handle_traces(struct work_struct *work)
|
|||
&tmp_trace_block[TRACES_PER_BLOCK - 1]);
|
||||
}
|
||||
|
||||
arm:
|
||||
mlx5_fw_tracer_arm(dev);
|
||||
}
|
||||
|
||||
|
@ -1137,7 +1141,6 @@ static int fw_tracer_event(struct notifier_block *nb, unsigned long action, void
|
|||
queue_work(tracer->work_queue, &tracer->ownership_change_work);
|
||||
break;
|
||||
case MLX5_TRACER_SUBTYPE_TRACES_AVAILABLE:
|
||||
if (likely(tracer->str_db.loaded))
|
||||
queue_work(tracer->work_queue, &tracer->handle_traces_work);
|
||||
break;
|
||||
default:
|
||||
|
|
Загрузка…
Ссылка в новой задаче