From: Saeed Mahameed <saeed@kernel•org>
To: "David S. Miller" <davem@davemloft•net>,
Jakub Kicinski <kuba@kernel•org>, Paolo Abeni <pabeni@redhat•com>,
Eric Dumazet <edumazet@google•com>
Cc: Saeed Mahameed <saeedm@nvidia•com>,
netdev@vger•kernel.org, Tariq Toukan <tariqt@nvidia•com>,
Shay Drory <shayd@nvidia•com>, Moshe Shemesh <moshe@nvidia•com>
Subject: [net-next 15/15] net/mlx5: fw_tracer, Add support for unrecognized string
Date: Tue, 7 Feb 2023 16:37:12 -0800 [thread overview]
Message-ID: <20230208003712.68386-16-saeed@kernel.org> (raw)
In-Reply-To: <20230208003712.68386-1-saeed@kernel.org>
From: Shay Drory <shayd@nvidia•com>
In case FW is publishing a string which isn't found in the driver's
string DBs, keep the string as raw data.
Signed-off-by: Shay Drory <shayd@nvidia•com>
Reviewed-by: Moshe Shemesh <moshe@nvidia•com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia•com>
---
.../mellanox/mlx5/core/diag/fw_tracer.c | 25 +++++++++++++++++--
.../mellanox/mlx5/core/diag/fw_tracer.h | 1 +
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c b/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
index 46f1e866bf64..f7864d51d4c4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
@@ -465,6 +465,7 @@ static void poll_trace(struct mlx5_fw_tracer *tracer,
tracer_event->event_id = MLX5_GET(tracer_event, trace, event_id);
tracer_event->lost_event = MLX5_GET(tracer_event, trace, lost);
+ tracer_event->out = trace;
switch (tracer_event->event_id) {
case TRACER_EVENT_TYPE_TIMESTAMP:
@@ -587,6 +588,26 @@ void mlx5_tracer_print_trace(struct tracer_string_format *str_frmt,
mlx5_tracer_clean_message(str_frmt);
}
+static int mlx5_tracer_handle_raw_string(struct mlx5_fw_tracer *tracer,
+ struct tracer_event *tracer_event)
+{
+ struct tracer_string_format *cur_string;
+
+ cur_string = mlx5_tracer_message_insert(tracer, tracer_event);
+ if (!cur_string)
+ return -1;
+
+ cur_string->event_id = tracer_event->event_id;
+ cur_string->timestamp = tracer_event->string_event.timestamp;
+ cur_string->lost = tracer_event->lost_event;
+ cur_string->string = "0x%08x%08x";
+ cur_string->num_of_params = 2;
+ cur_string->params[0] = upper_32_bits(*tracer_event->out);
+ cur_string->params[1] = lower_32_bits(*tracer_event->out);
+ list_add_tail(&cur_string->list, &tracer->ready_strings_list);
+ return 0;
+}
+
static int mlx5_tracer_handle_string_trace(struct mlx5_fw_tracer *tracer,
struct tracer_event *tracer_event)
{
@@ -595,7 +616,7 @@ static int mlx5_tracer_handle_string_trace(struct mlx5_fw_tracer *tracer,
if (tracer_event->string_event.tdsn == 0) {
cur_string = mlx5_tracer_get_string(tracer, tracer_event);
if (!cur_string)
- return -1;
+ return mlx5_tracer_handle_raw_string(tracer, tracer_event);
cur_string->num_of_params = mlx5_tracer_get_num_of_params(cur_string->string);
cur_string->last_param_num = 0;
@@ -610,7 +631,7 @@ static int mlx5_tracer_handle_string_trace(struct mlx5_fw_tracer *tracer,
if (!cur_string) {
pr_debug("%s Got string event for unknown string tmsn: %d\n",
__func__, tracer_event->string_event.tmsn);
- return -1;
+ return mlx5_tracer_handle_raw_string(tracer, tracer_event);
}
cur_string->last_param_num += 1;
if (cur_string->last_param_num > TRACER_MAX_PARAMS) {
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h b/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h
index 873c1eb38e49..5c548bb74f07 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h
@@ -166,6 +166,7 @@ struct tracer_event {
struct tracer_string_event string_event;
struct tracer_timestamp_event timestamp_event;
};
+ u64 *out;
};
struct mlx5_ifc_tracer_event_bits {
--
2.39.1
prev parent reply other threads:[~2023-02-08 0:38 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-08 0:36 [pull request][net-next 00/15] mlx5 updates 2023-02-07 Saeed Mahameed
2023-02-08 0:36 ` [net-next 01/15] mlx5: reduce stack usage in mlx5_setup_tc Saeed Mahameed
2023-02-09 3:20 ` patchwork-bot+netdevbpf
2023-02-08 0:36 ` [net-next 02/15] net/mlx5: Remove redundant health work lock Saeed Mahameed
2023-02-08 0:37 ` [net-next 03/15] net/mlx5: fw reset: Skip device ID check if PCI link up failed Saeed Mahameed
2023-02-08 0:37 ` [net-next 04/15] net/mlx5e: Don't listen to remove flows event Saeed Mahameed
2023-02-08 0:37 ` [net-next 05/15] net/mlx5e: Remove redundant code for handling vlan actions Saeed Mahameed
2023-02-08 0:37 ` [net-next 06/15] net/mlx5: fs, Remove redundant vport_number assignment Saeed Mahameed
2023-02-08 0:37 ` [net-next 07/15] net/mlx5e: Remove incorrect debugfs_create_dir NULL check in hairpin Saeed Mahameed
2023-02-08 0:37 ` [net-next 08/15] net/mlx5e: Remove incorrect debugfs_create_dir NULL check in TLS Saeed Mahameed
2023-02-08 0:37 ` [net-next 09/15] net/mlx5: Fix memory leak in error flow of port set buffer Saeed Mahameed
2023-02-08 0:37 ` [net-next 10/15] net/mlx5: fs_core, Remove redundant variable err Saeed Mahameed
2023-02-08 0:37 ` [net-next 11/15] net/mlx5: fs, Remove redundant assignment of size Saeed Mahameed
2023-02-08 0:37 ` [net-next 12/15] net/mlx5: fw_tracer: Fix debug print Saeed Mahameed
2023-02-08 0:37 ` [net-next 13/15] net/mlx5: fw_tracer, allow 0 size string DBs Saeed Mahameed
2023-02-08 0:37 ` [net-next 14/15] net/mlx5: fw_tracer, Add support for strings DB update event Saeed Mahameed
2023-02-08 0:37 ` Saeed Mahameed [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230208003712.68386-16-saeed@kernel.org \
--to=saeed@kernel$(echo .)org \
--cc=davem@davemloft$(echo .)net \
--cc=edumazet@google$(echo .)com \
--cc=kuba@kernel$(echo .)org \
--cc=moshe@nvidia$(echo .)com \
--cc=netdev@vger$(echo .)kernel.org \
--cc=pabeni@redhat$(echo .)com \
--cc=saeedm@nvidia$(echo .)com \
--cc=shayd@nvidia$(echo .)com \
--cc=tariqt@nvidia$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox