From: Avadhut Naik <avadhut.naik@amd.com>
To: <x86@kernel.org>, <linux-edac@vger.kernel.org>,
<linux-trace-kernel@vger.kernel.org>,
<linux-acpi@vger.kernel.org>
Cc: <linux-kernel@vger.kernel.org>, <bp@alien8.de>,
<tony.luck@intel.com>, <rafael@kernel.org>, <tglx@linutronix.de>,
<mingo@redhat.com>, <rostedt@goodmis.org>, <lenb@kernel.org>,
<mchehab@kernel.org>, <james.morse@arm.com>, <airlied@gmail.com>,
<yazen.ghannam@amd.com>, <john.allen@amd.com>, <avadnaik@amd.com>
Subject: [PATCH v5 2/5] tracing: Add __print_dynamic_array() helper
Date: Tue, 1 Oct 2024 18:12:26 +0000 [thread overview]
Message-ID: <20241001181617.604573-3-avadhut.naik@amd.com> (raw)
In-Reply-To: <20241001181617.604573-1-avadhut.naik@amd.com>
From: Steven Rostedt <rostedt@goodmis.org>
When printing a dynamic array in a trace event, the method is rather ugly.
It has the format of:
__print_array(__get_dynamic_array(array),
__get_dynmaic_array_len(array) / el_size, el_size)
Since dynamic arrays are known to the tracing infrastructure, create a
helper macro that does the above for you.
__print_dynamic_array(array, el_size)
Which would expand to the same output.
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Avadhut Naik <avadhut.naik@amd.com>
---
Changes in v5:
Patch introduced in the series.
---
include/trace/stages/stage3_trace_output.h | 8 ++++++++
include/trace/stages/stage7_class_define.h | 1 +
samples/trace_events/trace-events-sample.h | 7 ++++++-
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/include/trace/stages/stage3_trace_output.h b/include/trace/stages/stage3_trace_output.h
index c1fb1355d309..8e3215093e1f 100644
--- a/include/trace/stages/stage3_trace_output.h
+++ b/include/trace/stages/stage3_trace_output.h
@@ -119,6 +119,14 @@
trace_print_array_seq(p, array, count, el_size); \
})
+#undef __print_dynamic_array
+#define __print_dynamic_array(array, el_size) \
+ ({ \
+ __print_array(__get_dynamic_array(array), \
+ __get_dynamic_array_len(array) / el_size, \
+ el_size); \
+ })
+
#undef __print_hex_dump
#define __print_hex_dump(prefix_str, prefix_type, \
rowsize, groupsize, buf, len, ascii) \
diff --git a/include/trace/stages/stage7_class_define.h b/include/trace/stages/stage7_class_define.h
index bcb960d16fc0..fcd564a590f4 100644
--- a/include/trace/stages/stage7_class_define.h
+++ b/include/trace/stages/stage7_class_define.h
@@ -22,6 +22,7 @@
#undef __get_rel_cpumask
#undef __get_rel_sockaddr
#undef __print_array
+#undef __print_dynamic_array
#undef __print_hex_dump
#undef __get_buf
diff --git a/samples/trace_events/trace-events-sample.h b/samples/trace_events/trace-events-sample.h
index 55f9a3da92d5..999f78d380ae 100644
--- a/samples/trace_events/trace-events-sample.h
+++ b/samples/trace_events/trace-events-sample.h
@@ -319,7 +319,7 @@ TRACE_EVENT(foo_bar,
__assign_cpumask(cpum, cpumask_bits(mask));
),
- TP_printk("foo %s %d %s %s %s %s %s (%s) (%s) %s", __entry->foo, __entry->bar,
+ TP_printk("foo %s %d %s %s %s %s %s %s (%s) (%s) %s", __entry->foo, __entry->bar,
/*
* Notice here the use of some helper functions. This includes:
@@ -363,6 +363,11 @@ TRACE_EVENT(foo_bar,
__print_array(__get_dynamic_array(list),
__get_dynamic_array_len(list) / sizeof(int),
sizeof(int)),
+
+/* A shortcut is to use __print_dynamic_array for dynamic arrays */
+
+ __print_dynamic_array(list, sizeof(int)),
+
__get_str(str), __get_str(lstr),
__get_bitmask(cpus), __get_cpumask(cpum),
__get_str(vstr))
--
2.43.0
next prev parent reply other threads:[~2024-10-01 18:16 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-01 18:12 [PATCH v5 0/5] MCE wrapper and support for new SMCA syndrome MSRs Avadhut Naik
2024-10-01 18:12 ` [PATCH v5 1/5] x86/mce: Add wrapper for struct mce to export vendor specific info Avadhut Naik
2024-10-14 6:04 ` Zhuo, Qiuxu
2024-10-14 17:03 ` Naik, Avadhut
2024-10-15 6:53 ` Zhuo, Qiuxu
2024-10-15 9:48 ` Borislav Petkov
2024-10-15 18:14 ` Naik, Avadhut
2024-10-01 18:12 ` Avadhut Naik [this message]
2024-10-02 15:06 ` [PATCH v5 2/5] tracing: Add __print_dynamic_array() helper Steven Rostedt
2024-10-02 16:29 ` Steven Rostedt
2024-10-02 16:35 ` Naik, Avadhut
2024-10-01 18:12 ` [PATCH v5 3/5] x86/mce, EDAC/mce_amd: Add support for new MCA_SYND{1,2} registers Avadhut Naik
2024-10-01 18:12 ` [PATCH v5 4/5] x86/mce/apei: Handle variable register array size Avadhut Naik
2024-10-01 18:12 ` [PATCH v5 5/5] EDAC/mce_amd: Add support for FRU Text in MCA Avadhut Naik
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=20241001181617.604573-3-avadhut.naik@amd.com \
--to=avadhut.naik@amd.com \
--cc=airlied@gmail.com \
--cc=avadnaik@amd.com \
--cc=bp@alien8.de \
--cc=james.morse@arm.com \
--cc=john.allen@amd.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-edac@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=mingo@redhat.com \
--cc=rafael@kernel.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--cc=yazen.ghannam@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
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