From: Gabriele Monaco <gmonaco@redhat.com>
To: linux-kernel@vger.kernel.org,
Steven Rostedt <rostedt@goodmis.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
linux-trace-kernel@vger.kernel.org
Cc: Gabriele Monaco <gmonaco@redhat.com>,
Nam Cao <namcao@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Tomas Glozar <tglozar@redhat.com>, Juri Lelli <jlelli@redhat.com>,
Clark Williams <williams@redhat.com>,
John Kacur <jkacur@redhat.com>
Subject: [PATCH v4 09/14] tools/dot2c: Fix generated files going over 100 column limit
Date: Mon, 21 Jul 2025 10:23:19 +0200 [thread overview]
Message-ID: <20250721082325.71554-10-gmonaco@redhat.com> (raw)
In-Reply-To: <20250721082325.71554-1-gmonaco@redhat.com>
The dot2c.py script generates all states in a single line. This breaks the
100 column limit when the state machines are non-trivial.
Change dot2c.py to generate the states in separate lines in case the
generated line is going to be too long.
Also adapt existing monitors with line length over the limit.
Suggested-by: Nam Cao <namcao@linutronix.de>
Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
---
kernel/trace/rv/monitors/snep/snep.h | 14 ++++++++++++--
tools/verification/rvgen/rvgen/dot2c.py | 20 +++++++++++---------
2 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/kernel/trace/rv/monitors/snep/snep.h b/kernel/trace/rv/monitors/snep/snep.h
index 6d16b9ad931e1..4cd9abb77b7b2 100644
--- a/kernel/trace/rv/monitors/snep/snep.h
+++ b/kernel/trace/rv/monitors/snep/snep.h
@@ -41,8 +41,18 @@ static const struct automaton_snep automaton_snep = {
"schedule_exit"
},
.function = {
- { non_scheduling_context_snep, non_scheduling_context_snep, scheduling_contex_snep, INVALID_STATE },
- { INVALID_STATE, INVALID_STATE, INVALID_STATE, non_scheduling_context_snep },
+ {
+ non_scheduling_context_snep,
+ non_scheduling_context_snep,
+ scheduling_contex_snep,
+ INVALID_STATE
+ },
+ {
+ INVALID_STATE,
+ INVALID_STATE,
+ INVALID_STATE,
+ non_scheduling_context_snep
+ },
},
.initial_state = non_scheduling_context_snep,
.final_states = { 1, 0 },
diff --git a/tools/verification/rvgen/rvgen/dot2c.py b/tools/verification/rvgen/rvgen/dot2c.py
index 6009caf568d92..97112b65b4177 100644
--- a/tools/verification/rvgen/rvgen/dot2c.py
+++ b/tools/verification/rvgen/rvgen/dot2c.py
@@ -152,28 +152,30 @@ class Dot2c(Automata):
max_state_name = max(self.states, key = len).__len__()
return max(max_state_name, self.invalid_state_str.__len__())
- def __get_state_string_length(self):
- maxlen = self.__get_max_strlen_of_states() + self.enum_suffix.__len__()
- return "%" + str(maxlen) + "s"
-
def get_aut_init_function(self):
nr_states = self.states.__len__()
nr_events = self.events.__len__()
buff = []
- strformat = self.__get_state_string_length()
-
+ maxlen = self.__get_max_strlen_of_states() + len(self.enum_suffix)
+ tab_braces = 2 * 8 + 2 + 1 # "\t\t{ " ... "}"
+ comma_space = 2 # ", " count last comma here
+ linetoolong = tab_braces + (maxlen + comma_space) * nr_events >= self.line_length
for x in range(nr_states):
- line = "\t\t{ "
+ line = "\t\t{\n" if linetoolong else "\t\t{ "
for y in range(nr_events):
next_state = self.function[x][y]
if next_state != self.invalid_state_str:
next_state = self.function[x][y] + self.enum_suffix
+ if linetoolong:
+ line += "\t\t\t%s" % next_state
+ else:
+ line += "%*s" % (maxlen, next_state)
if y != nr_events-1:
- line = line + strformat % next_state + ", "
+ line += ",\n" if linetoolong else ", "
else:
- line = line + strformat % next_state + " },"
+ line += "\n\t\t}," if linetoolong else " },"
buff.append(line)
return self.__buff_to_string(buff)
--
2.50.1
next prev parent reply other threads:[~2025-07-21 8:24 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-21 8:23 [PATCH v4 00/14] rv: Add monitors to validate task switch Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 01/14] tools/rv: Do not skip idle in trace Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 02/14] tools/rv: Stop gracefully also on SIGTERM Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 03/14] rv: Add da_handle_start_run_event_ to per-task monitors Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 04/14] rv: Remove trailing whitespace from tracepoint string Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 05/14] rv: Return init error when registering monitors Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 06/14] rv: Use strings in da monitors tracepoints Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 07/14] rv: Adjust monitor dependencies Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 08/14] verification/rvgen: Organise Kconfig entries for nested monitors Gabriele Monaco
2025-07-21 14:38 ` Nam Cao
2025-07-21 15:17 ` Gabriele Monaco
2025-07-21 8:23 ` Gabriele Monaco [this message]
2025-07-21 14:52 ` [PATCH v4 09/14] tools/dot2c: Fix generated files going over 100 column limit Nam Cao
2025-07-23 11:18 ` Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 10/14] rv: Retry when da monitor detects race conditions Gabriele Monaco
2025-07-21 15:01 ` Nam Cao
2025-07-21 15:23 ` Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 11/14] sched: Adapt sched tracepoints for RV task model Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 12/14] rv: Replace tss and sncid monitors with more complete sts Gabriele Monaco
2025-07-21 15:15 ` Nam Cao
2025-07-21 16:13 ` Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 13/14] rv: Add nrp and sssw per-task monitors Gabriele Monaco
2025-07-21 8:23 ` [PATCH v4 14/14] rv: Add opid per-cpu monitor Gabriele Monaco
2025-07-23 0:50 ` [PATCH v4 00/14] rv: Add monitors to validate task switch Steven Rostedt
2025-07-23 9:55 ` Gabriele Monaco
2025-07-23 14:22 ` 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=20250721082325.71554-10-gmonaco@redhat.com \
--to=gmonaco@redhat.com \
--cc=jkacur@redhat.com \
--cc=jlelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=namcao@linutronix.de \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglozar@redhat.com \
--cc=williams@redhat.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
all inboxes | Powered by JetHome®