summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorGabriele Monaco <gmonaco@redhat.com>2025-03-05 17:03:55 +0300
committerSteven Rostedt (Google) <rostedt@goodmis.org>2025-03-25 00:27:39 +0300
commitcb85c660fcd4b3a03ed993affa0b2d1a8af2f06b (patch)
treec3cfa6547ccc95b660b0e477702c7351dc7f0bf1 /include/linux
parent26f80681a09b95fd64bcf33d02e258e78a30842b (diff)
downloadlinux-cb85c660fcd4b3a03ed993affa0b2d1a8af2f06b.tar.xz
rv: Add option for nested monitors and include sched
Monitors describing complex systems, such as the scheduler, can easily grow to the point where they are just hard to understand because of the many possible state transitions. Often it is possible to break such descriptions into smaller monitors, sharing some or all events. Enabling those smaller monitors concurrently is, in fact, testing the system as if we had one single larger monitor. Splitting models into multiple specification is not only easier to understand, but gives some more clues when we see errors. Add the possibility to create container monitors, whose only purpose is to host other nested monitors. Enabling a container monitor enables all nested ones, but it's still possible to enable nested monitors independently. Add the sched monitor as first container, for now empty. Cc: Ingo Molnar <mingo@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Juri Lelli <juri.lelli@redhat.com> Link: https://lore.kernel.org/20250305140406.350227-3-gmonaco@redhat.com Signed-off-by: Gabriele Monaco <gmonaco@redhat.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/rv.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/rv.h b/include/linux/rv.h
index 55d458be53a4..3452b5e4b29e 100644
--- a/include/linux/rv.h
+++ b/include/linux/rv.h
@@ -56,7 +56,7 @@ struct rv_monitor {
bool rv_monitoring_on(void);
int rv_unregister_monitor(struct rv_monitor *monitor);
-int rv_register_monitor(struct rv_monitor *monitor);
+int rv_register_monitor(struct rv_monitor *monitor, struct rv_monitor *parent);
int rv_get_task_monitor_slot(void);
void rv_put_task_monitor_slot(int slot);