linux-trace-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gabriele Monaco <gmonaco@redhat.com>
To: linux-kernel@vger.kernel.org,
	Steven Rostedt <rostedt@goodmis.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 03/14] rv: Add da_handle_start_run_event_ to per-task monitors
Date: Mon, 21 Jul 2025 10:23:13 +0200	[thread overview]
Message-ID: <20250721082325.71554-4-gmonaco@redhat.com> (raw)
In-Reply-To: <20250721082325.71554-1-gmonaco@redhat.com>

The RV da_monitor API allows to start monitors in two ways:
da_handle_start_event_NAME and da_handle_start_run_event_NAME.
The former is used when the event is followed by the initial state of
the module, so we ignore the event but we know the monitor is in the
initial state and can start monitoring, the latter can be used if the
event can only occur in the initial state, so we do handle the event as
if the monitor was in the initial state.
This latter API is defined for implicit monitors but not per-task ones.

Define da_handle_start_run_event_NAME macro also for per-task monitors.

Reviewed-by: Nam Cao <namcao@linutronix.de>
Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
---
 include/rv/da_monitor.h | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/include/rv/da_monitor.h b/include/rv/da_monitor.h
index 15f9ed4e4bb69..ed3c34fe18d61 100644
--- a/include/rv/da_monitor.h
+++ b/include/rv/da_monitor.h
@@ -487,6 +487,30 @@ da_handle_start_event_##name(struct task_struct *tsk, enum events_##name event)
 	__da_handle_event_##name(da_mon, tsk, event);						\
 												\
 	return 1;										\
+}												\
+												\
+/*												\
+ * da_handle_start_run_event_##name - start monitoring and handle event				\
+ *												\
+ * This function is used to notify the monitor that the system is in the			\
+ * initial state, so the monitor can start monitoring and handling event.			\
+ */												\
+static inline bool										\
+da_handle_start_run_event_##name(struct task_struct *tsk, enum events_##name event)		\
+{												\
+	struct da_monitor *da_mon;								\
+												\
+	if (!da_monitor_enabled_##name())							\
+		return 0;									\
+												\
+	da_mon = da_get_monitor_##name(tsk);							\
+												\
+	if (unlikely(!da_monitoring_##name(da_mon)))						\
+		da_monitor_start_##name(da_mon);						\
+												\
+	__da_handle_event_##name(da_mon, tsk, event);						\
+												\
+	return 1;										\
 }
 
 /*
-- 
2.50.1


  parent reply	other threads:[~2025-07-21  8:24 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20250721082325.71554-1-gmonaco@redhat.com>
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 ` Gabriele Monaco [this message]
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 ` [PATCH v4 09/14] tools/dot2c: Fix generated files going over 100 column limit Gabriele Monaco
2025-07-21 14:52   ` 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

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-4-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=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;
as well as URLs for NNTP newsgroup(s).