[PATCH v3 14/22] rv: Add rtapp container monitor

Nam Cao posted 22 patches 8 months, 1 week ago
There is a newer version of this series
[PATCH v3 14/22] rv: Add rtapp container monitor
Posted by Nam Cao 8 months, 1 week ago
Add the container "rtapp" which is the monitor collection for detecting
problems with real-time applications. The monitors will be added in the
follow-up commits.

Signed-off-by: Nam Cao <namcao@linutronix.de>
---
 kernel/trace/rv/Kconfig                |  1 +
 kernel/trace/rv/Makefile               |  1 +
 kernel/trace/rv/monitors/rtapp/Kconfig |  6 +++++
 kernel/trace/rv/monitors/rtapp/rtapp.c | 34 ++++++++++++++++++++++++++
 kernel/trace/rv/monitors/rtapp/rtapp.h |  3 +++
 5 files changed, 45 insertions(+)
 create mode 100644 kernel/trace/rv/monitors/rtapp/Kconfig
 create mode 100644 kernel/trace/rv/monitors/rtapp/rtapp.c
 create mode 100644 kernel/trace/rv/monitors/rtapp/rtapp.h

diff --git a/kernel/trace/rv/Kconfig b/kernel/trace/rv/Kconfig
index 6e157f964991..5c407d291661 100644
--- a/kernel/trace/rv/Kconfig
+++ b/kernel/trace/rv/Kconfig
@@ -41,6 +41,7 @@ source "kernel/trace/rv/monitors/snroc/Kconfig"
 source "kernel/trace/rv/monitors/scpd/Kconfig"
 source "kernel/trace/rv/monitors/snep/Kconfig"
 source "kernel/trace/rv/monitors/sncid/Kconfig"
+source "kernel/trace/rv/monitors/rtapp/Kconfig"
 # Add new monitors here
 
 config RV_REACTORS
diff --git a/kernel/trace/rv/Makefile b/kernel/trace/rv/Makefile
index f9b2cd0483c3..9b28c2419995 100644
--- a/kernel/trace/rv/Makefile
+++ b/kernel/trace/rv/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_RV_MON_SNROC) += monitors/snroc/snroc.o
 obj-$(CONFIG_RV_MON_SCPD) += monitors/scpd/scpd.o
 obj-$(CONFIG_RV_MON_SNEP) += monitors/snep/snep.o
 obj-$(CONFIG_RV_MON_SNCID) += monitors/sncid/sncid.o
+obj-$(CONFIG_RV_MON_RTAPP) += monitors/rtapp/rtapp.o
 # Add new monitors here
 obj-$(CONFIG_RV_REACTORS) += rv_reactors.o
 obj-$(CONFIG_RV_REACT_PRINTK) += reactor_printk.o
diff --git a/kernel/trace/rv/monitors/rtapp/Kconfig b/kernel/trace/rv/monitors/rtapp/Kconfig
new file mode 100644
index 000000000000..94689d66a79c
--- /dev/null
+++ b/kernel/trace/rv/monitors/rtapp/Kconfig
@@ -0,0 +1,6 @@
+config RV_MON_RTAPP
+	depends on RV
+	bool "rtapp monitor"
+	help
+	  Collection of monitors to check for common problems with real-time application that cause
+	  unexpected latency.
diff --git a/kernel/trace/rv/monitors/rtapp/rtapp.c b/kernel/trace/rv/monitors/rtapp/rtapp.c
new file mode 100644
index 000000000000..193c9d8dc0af
--- /dev/null
+++ b/kernel/trace/rv/monitors/rtapp/rtapp.c
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: GPL-2.0
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/rv.h>
+
+#define MODULE_NAME "rtapp"
+
+#include "rtapp.h"
+
+struct rv_monitor rv_rtapp;
+
+struct rv_monitor rv_rtapp = {
+	.name = "rtapp",
+	.description = "Collection of monitors for detecting problems with real-time applications",
+};
+
+static int __init register_rtapp(void)
+{
+	rv_register_monitor(&rv_rtapp, NULL);
+	return 0;
+}
+
+static void __exit unregister_rtapp(void)
+{
+	rv_unregister_monitor(&rv_rtapp);
+}
+
+module_init(register_rtapp);
+module_exit(unregister_rtapp);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Nam Cao <namcao@linutronix.de>");
+MODULE_DESCRIPTION("Collection of monitors for detecting problems with real-time applications");
diff --git a/kernel/trace/rv/monitors/rtapp/rtapp.h b/kernel/trace/rv/monitors/rtapp/rtapp.h
new file mode 100644
index 000000000000..4c200d67c7f6
--- /dev/null
+++ b/kernel/trace/rv/monitors/rtapp/rtapp.h
@@ -0,0 +1,3 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+extern struct rv_monitor rv_rtapp;
-- 
2.39.5
Re: [PATCH v3 14/22] rv: Add rtapp container monitor
Posted by Gabriele Monaco 8 months, 1 week ago

On Wed, 2025-04-16 at 08:51 +0200, Nam Cao wrote:
> Add the container "rtapp" which is the monitor collection for
> detecting
> problems with real-time applications. The monitors will be added in
> the
> follow-up commits.
> 
> Signed-off-by: Nam Cao <namcao@linutronix.de>
> ---
>  kernel/trace/rv/Kconfig                |  1 +
>  kernel/trace/rv/Makefile               |  1 +
>  kernel/trace/rv/monitors/rtapp/Kconfig |  6 +++++
>  kernel/trace/rv/monitors/rtapp/rtapp.c | 34
> ++++++++++++++++++++++++++
>  kernel/trace/rv/monitors/rtapp/rtapp.h |  3 +++
>  5 files changed, 45 insertions(+)
>  create mode 100644 kernel/trace/rv/monitors/rtapp/Kconfig
>  create mode 100644 kernel/trace/rv/monitors/rtapp/rtapp.c
>  create mode 100644 kernel/trace/rv/monitors/rtapp/rtapp.h
> 
> diff --git a/kernel/trace/rv/Kconfig b/kernel/trace/rv/Kconfig
> index 6e157f964991..5c407d291661 100644
> --- a/kernel/trace/rv/Kconfig
> +++ b/kernel/trace/rv/Kconfig
> @@ -41,6 +41,7 @@ source "kernel/trace/rv/monitors/snroc/Kconfig"
>  source "kernel/trace/rv/monitors/scpd/Kconfig"
>  source "kernel/trace/rv/monitors/snep/Kconfig"
>  source "kernel/trace/rv/monitors/sncid/Kconfig"
> +source "kernel/trace/rv/monitors/rtapp/Kconfig"
>  # Add new monitors here
>  
>  config RV_REACTORS
> diff --git a/kernel/trace/rv/Makefile b/kernel/trace/rv/Makefile
> index f9b2cd0483c3..9b28c2419995 100644
> --- a/kernel/trace/rv/Makefile
> +++ b/kernel/trace/rv/Makefile
> @@ -12,6 +12,7 @@ obj-$(CONFIG_RV_MON_SNROC) +=
> monitors/snroc/snroc.o
>  obj-$(CONFIG_RV_MON_SCPD) += monitors/scpd/scpd.o
>  obj-$(CONFIG_RV_MON_SNEP) += monitors/snep/snep.o
>  obj-$(CONFIG_RV_MON_SNCID) += monitors/sncid/sncid.o
> +obj-$(CONFIG_RV_MON_RTAPP) += monitors/rtapp/rtapp.o
>  # Add new monitors here
>  obj-$(CONFIG_RV_REACTORS) += rv_reactors.o
>  obj-$(CONFIG_RV_REACT_PRINTK) += reactor_printk.o
> diff --git a/kernel/trace/rv/monitors/rtapp/Kconfig
> b/kernel/trace/rv/monitors/rtapp/Kconfig
> new file mode 100644
> index 000000000000..94689d66a79c
> --- /dev/null
> +++ b/kernel/trace/rv/monitors/rtapp/Kconfig
> @@ -0,0 +1,6 @@
> +config RV_MON_RTAPP
> +	depends on RV
	depends on RV_PER_TASK_MONITORS >= 2

Not sure we want to be that picky, but what about making sure we can
run the monitor in its entirety?
Ignore this if your use case doesn't expect both monitors to be run
together.

Other than that
Reviewed-by: Gabriele Monaco <gmonaco@redhat.com>

Thanks,
Gabriele

> +	bool "rtapp monitor"
> +	help
> +	  Collection of monitors to check for common problems with
> real-time application that cause
> +	  unexpected latency.
> diff --git a/kernel/trace/rv/monitors/rtapp/rtapp.c
> b/kernel/trace/rv/monitors/rtapp/rtapp.c
> new file mode 100644
> index 000000000000..193c9d8dc0af
> --- /dev/null
> +++ b/kernel/trace/rv/monitors/rtapp/rtapp.c
> @@ -0,0 +1,34 @@
> +// SPDX-License-Identifier: GPL-2.0
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/init.h>
> +#include <linux/rv.h>
> +
> +#define MODULE_NAME "rtapp"
> +
> +#include "rtapp.h"
> +
> +struct rv_monitor rv_rtapp;
> +
> +struct rv_monitor rv_rtapp = {
> +	.name = "rtapp",
> +	.description = "Collection of monitors for detecting
> problems with real-time applications",
> +};
> +
> +static int __init register_rtapp(void)
> +{
> +	rv_register_monitor(&rv_rtapp, NULL);
> +	return 0;
> +}
> +
> +static void __exit unregister_rtapp(void)
> +{
> +	rv_unregister_monitor(&rv_rtapp);
> +}
> +
> +module_init(register_rtapp);
> +module_exit(unregister_rtapp);
> +
> +MODULE_LICENSE("GPL");
> +MODULE_AUTHOR("Nam Cao <namcao@linutronix.de>");
> +MODULE_DESCRIPTION("Collection of monitors for detecting problems
> with real-time applications");
> diff --git a/kernel/trace/rv/monitors/rtapp/rtapp.h
> b/kernel/trace/rv/monitors/rtapp/rtapp.h
> new file mode 100644
> index 000000000000..4c200d67c7f6
> --- /dev/null
> +++ b/kernel/trace/rv/monitors/rtapp/rtapp.h
> @@ -0,0 +1,3 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +extern struct rv_monitor rv_rtapp;
Re: [PATCH v3 14/22] rv: Add rtapp container monitor
Posted by Nam Cao 8 months ago
On Wed, Apr 16, 2025 at 09:32:43AM +0200, Gabriele Monaco wrote:
> On Wed, 2025-04-16 at 08:51 +0200, Nam Cao wrote:
> > diff --git a/kernel/trace/rv/monitors/rtapp/Kconfig
> > b/kernel/trace/rv/monitors/rtapp/Kconfig
> > new file mode 100644
> > index 000000000000..94689d66a79c
> > --- /dev/null
> > +++ b/kernel/trace/rv/monitors/rtapp/Kconfig
> > @@ -0,0 +1,6 @@
> > +config RV_MON_RTAPP
> > +	depends on RV
> 	depends on RV_PER_TASK_MONITORS >= 2
> 
> Not sure we want to be that picky, but what about making sure we can
> run the monitor in its entirety?

That makes sense. But CONFIG_RV_PER_TASK_MONITORS doesn't exist yet at this
point. I will add this in the commit adding CONFIG_RV_PER_TASK_MONITORS.

> Ignore this if your use case doesn't expect both monitors to be run
> together.
> 
> Other than that
> Reviewed-by: Gabriele Monaco <gmonaco@redhat.com>

Thanks!
Nam