From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Tomas Glozar <tglozar@redhat.com>, John Kacur <jkacur@redhat.com>,
Juri Lelli <juri.lelli@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
Gabriele Monaco <gmonaco@redhat.com>
Subject: [for-next][PATCH 3/8] verification/dot2k: More robust template variables
Date: Thu, 02 Jan 2025 10:26:27 -0500 [thread overview]
Message-ID: <20250102152645.513903495@goodmis.org> (raw)
In-Reply-To: <20250102152624.158129997@goodmis.org>
From: Gabriele Monaco <gmonaco@redhat.com>
The dot2k templates currently have variables that are automatically
filled by the script marked as an uppercase VARIABLE. This requires some
care while adding new variables to avoid using valid keywords and get
them unexpectedly substituted.
This patch switches the variables to the %%VARIABLE%% notation to make
the pattern substitution more robust.
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: John Kacur <jkacur@redhat.com>
Link: https://lore.kernel.org/20241227144752.362911-4-gmonaco@redhat.com
Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
tools/verification/dot2/dot2k.py | 14 +++---
.../verification/dot2/dot2k_templates/main.c | 50 +++++++++----------
2 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/tools/verification/dot2/dot2k.py b/tools/verification/dot2/dot2k.py
index 15d6f7048f8d..c88b3c011706 100644
--- a/tools/verification/dot2/dot2k.py
+++ b/tools/verification/dot2/dot2k.py
@@ -107,13 +107,13 @@ class dot2k(Dot2c):
tracepoint_attach = self.fill_tracepoint_attach_probe()
tracepoint_detach = self.fill_tracepoint_detach_helper()
- main_c = main_c.replace("MONITOR_TYPE", monitor_type)
- main_c = main_c.replace("MIN_TYPE", min_type)
- main_c = main_c.replace("MODEL_NAME", self.name)
- main_c = main_c.replace("NR_EVENTS", str(nr_events))
- main_c = main_c.replace("TRACEPOINT_HANDLERS_SKEL", tracepoint_handlers)
- main_c = main_c.replace("TRACEPOINT_ATTACH", tracepoint_attach)
- main_c = main_c.replace("TRACEPOINT_DETACH", tracepoint_detach)
+ main_c = main_c.replace("%%MONITOR_TYPE%%", monitor_type)
+ main_c = main_c.replace("%%MIN_TYPE%%", min_type)
+ main_c = main_c.replace("%%MODEL_NAME%%", self.name)
+ main_c = main_c.replace("%%NR_EVENTS%%", str(nr_events))
+ main_c = main_c.replace("%%TRACEPOINT_HANDLERS_SKEL%%", tracepoint_handlers)
+ main_c = main_c.replace("%%TRACEPOINT_ATTACH%%", tracepoint_attach)
+ main_c = main_c.replace("%%TRACEPOINT_DETACH%%", tracepoint_detach)
return main_c
diff --git a/tools/verification/dot2/dot2k_templates/main.c b/tools/verification/dot2/dot2k_templates/main.c
index 2419a6f89cd8..4a05fef7f3c7 100644
--- a/tools/verification/dot2/dot2k_templates/main.c
+++ b/tools/verification/dot2/dot2k_templates/main.c
@@ -8,7 +8,7 @@
#include <rv/instrumentation.h>
#include <rv/da_monitor.h>
-#define MODULE_NAME "MODEL_NAME"
+#define MODULE_NAME "%%MODEL_NAME%%"
/*
* XXX: include required tracepoint headers, e.g.,
@@ -20,15 +20,15 @@
* This is the self-generated part of the monitor. Generally, there is no need
* to touch this section.
*/
-#include "MODEL_NAME.h"
+#include "%%MODEL_NAME%%.h"
/*
* Declare the deterministic automata monitor.
*
* The rv monitor reference is needed for the monitor declaration.
*/
-static struct rv_monitor rv_MODEL_NAME;
-DECLARE_DA_MON_MONITOR_TYPE(MODEL_NAME, MIN_TYPE);
+static struct rv_monitor rv_%%MODEL_NAME%%;
+DECLARE_DA_MON_%%MONITOR_TYPE%%(%%MODEL_NAME%%, %%MIN_TYPE%%);
/*
* This is the instrumentation part of the monitor.
@@ -37,55 +37,55 @@ DECLARE_DA_MON_MONITOR_TYPE(MODEL_NAME, MIN_TYPE);
* are translated into model's event.
*
*/
-TRACEPOINT_HANDLERS_SKEL
-static int enable_MODEL_NAME(void)
+%%TRACEPOINT_HANDLERS_SKEL%%
+static int enable_%%MODEL_NAME%%(void)
{
int retval;
- retval = da_monitor_init_MODEL_NAME();
+ retval = da_monitor_init_%%MODEL_NAME%%();
if (retval)
return retval;
-TRACEPOINT_ATTACH
+%%TRACEPOINT_ATTACH%%
return 0;
}
-static void disable_MODEL_NAME(void)
+static void disable_%%MODEL_NAME%%(void)
{
- rv_MODEL_NAME.enabled = 0;
+ rv_%%MODEL_NAME%%.enabled = 0;
-TRACEPOINT_DETACH
+%%TRACEPOINT_DETACH%%
- da_monitor_destroy_MODEL_NAME();
+ da_monitor_destroy_%%MODEL_NAME%%();
}
/*
* This is the monitor register section.
*/
-static struct rv_monitor rv_MODEL_NAME = {
- .name = "MODEL_NAME",
- .description = "auto-generated MODEL_NAME",
- .enable = enable_MODEL_NAME,
- .disable = disable_MODEL_NAME,
- .reset = da_monitor_reset_all_MODEL_NAME,
+static struct rv_monitor rv_%%MODEL_NAME%% = {
+ .name = "%%MODEL_NAME%%",
+ .description = "auto-generated %%MODEL_NAME%%",
+ .enable = enable_%%MODEL_NAME%%,
+ .disable = disable_%%MODEL_NAME%%,
+ .reset = da_monitor_reset_all_%%MODEL_NAME%%,
.enabled = 0,
};
-static int __init register_MODEL_NAME(void)
+static int __init register_%%MODEL_NAME%%(void)
{
- rv_register_monitor(&rv_MODEL_NAME);
+ rv_register_monitor(&rv_%%MODEL_NAME%%);
return 0;
}
-static void __exit unregister_MODEL_NAME(void)
+static void __exit unregister_%%MODEL_NAME%%(void)
{
- rv_unregister_monitor(&rv_MODEL_NAME);
+ rv_unregister_monitor(&rv_%%MODEL_NAME%%);
}
-module_init(register_MODEL_NAME);
-module_exit(unregister_MODEL_NAME);
+module_init(register_%%MODEL_NAME%%);
+module_exit(unregister_%%MODEL_NAME%%);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("dot2k: auto-generated");
-MODULE_DESCRIPTION("MODEL_NAME");
+MODULE_DESCRIPTION("%%MODEL_NAME%%");
--
2.45.2
next prev parent reply other threads:[~2025-01-02 15:25 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-02 15:26 [for-next][PATCH 0/8] tracing/tools: Updates for v6.14 Steven Rostedt
2025-01-02 15:26 ` [for-next][PATCH 1/8] verification/dot2k: Fix template directory detection Steven Rostedt
2025-01-02 15:26 ` [for-next][PATCH 2/8] verification/dot2k: Unify main.c templates Steven Rostedt
2025-01-02 15:26 ` Steven Rostedt [this message]
2025-01-02 15:26 ` [for-next][PATCH 4/8] verification/dot2k: Add support for name and description options Steven Rostedt
2025-01-02 15:26 ` [for-next][PATCH 5/8] rv: Simplify manual steps in monitor creation Steven Rostedt
2025-01-02 15:26 ` [for-next][PATCH 6/8] verification/dot2k: " Steven Rostedt
2025-01-02 15:26 ` [for-next][PATCH 7/8] verification/dot2k: Auto patch current kernel source Steven Rostedt
2025-01-02 15:26 ` [for-next][PATCH 8/8] verification/dot2k: Implement event type detection Steven Rostedt
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=20250102152645.513903495@goodmis.org \
--to=rostedt@goodmis.org \
--cc=gmonaco@redhat.com \
--cc=jkacur@redhat.com \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tglozar@redhat.com \
--cc=tglx@linutronix.de \
/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
all inboxes | Powered by JetHome®