linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 0/6] rtla: Add hwnoise tool
@ 2023-01-31 16:30 Daniel Bristot de Oliveira
  2023-01-31 16:30 ` [PATCH V2 1/6] rtla/osnoise: Add helper functions to manipulate osnoise/options Daniel Bristot de Oliveira
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Daniel Bristot de Oliveira @ 2023-01-31 16:30 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira, Steven Rostedt, Jonathan Corbet
  Cc: Juri Lelli, Clark Williams, Bagas Sanjaya, linux-trace-devel,
	linux-doc, linux-kernel

This series present a new tool inside rtla. It is named hwnoise.

hwnoise dispatches the osnoise tracer and displays a summary of the noise.
The difference is that it runs the tracer with the OSNOISE_IRQ_DISABLE
option set, thus only allowing only hardware-related noise, resulting in
a simplified output. hwnoise has the same features of osnoise.

An example of the tool's output:

 # rtla hwnoise -c 1-5 -T 1 -d 10m -q
                                           Hardware-related Noise
 duration:   0 00:10:00 | time is in us
 CPU Period       Runtime        Noise  % CPU Aval   Max Noise   Max Single          HW          NMI
   1 #599       599000000          138    99.99997           3            3           4           74
   2 #599       599000000           85    99.99998           3            3           4           75
   3 #599       599000000           86    99.99998           4            3           6           75
   4 #599       599000000           81    99.99998           4            4           2           75
   5 #599       599000000           85    99.99998           2            2           2           75

Changes from v1:
  Add rtla-hwnoise to the rtla documentation index
	(kernel test robot/Bagas Sanjaya)

Daniel Bristot de Oliveira (6):
  rtla/osnoise: Add helper functions to manipulate osnoise/options
  rtla/osnoise: Add OSNOISE_IRQ_DISABLE option
  rtla/osnoise: Add the mode abstraction
  rtla/osnoise_top: Pass the params to the usage function
  rtla: Add hwnoise tool
  Documentation/rtla: Add hwnoise man page

 Documentation/tools/rtla/index.rst        |   1 +
 Documentation/tools/rtla/rtla-hwnoise.rst | 107 +++++++++++++++++++
 tools/tracing/rtla/Makefile               |   2 +
 tools/tracing/rtla/src/osnoise.c          | 120 ++++++++++++++++++++++
 tools/tracing/rtla/src/osnoise.h          |   7 ++
 tools/tracing/rtla/src/osnoise_top.c      |  84 ++++++++++++---
 tools/tracing/rtla/src/rtla.c             |   4 +
 7 files changed, 309 insertions(+), 16 deletions(-)
 create mode 100644 Documentation/tools/rtla/rtla-hwnoise.rst

-- 
2.38.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH V2 1/6] rtla/osnoise: Add helper functions to manipulate osnoise/options
  2023-01-31 16:30 [PATCH V2 0/6] rtla: Add hwnoise tool Daniel Bristot de Oliveira
@ 2023-01-31 16:30 ` Daniel Bristot de Oliveira
  2023-02-01 19:23   ` Steven Rostedt
  2023-02-01 19:25   ` Steven Rostedt
  2023-01-31 16:30 ` [PATCH V2 2/6] rtla/osnoise: Add OSNOISE_IRQ_DISABLE option Daniel Bristot de Oliveira
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 11+ messages in thread
From: Daniel Bristot de Oliveira @ 2023-01-31 16:30 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira, Steven Rostedt, Jonathan Corbet
  Cc: Juri Lelli, Clark Williams, Bagas Sanjaya, linux-trace-devel,
	linux-doc, linux-kernel

Add some helper functions to read and set the on/off osnoise/options.
No usage in this patch.

In preparation for hwnoise tool.

Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Jonathan Corbet <corbet@lwn.net>
---
 tools/tracing/rtla/src/osnoise.c | 108 +++++++++++++++++++++++++++++++
 1 file changed, 108 insertions(+)

diff --git a/tools/tracing/rtla/src/osnoise.c b/tools/tracing/rtla/src/osnoise.c
index 4dee343909b1..050a9997191c 100644
--- a/tools/tracing/rtla/src/osnoise.c
+++ b/tools/tracing/rtla/src/osnoise.c
@@ -734,6 +734,114 @@ void osnoise_put_tracing_thresh(struct osnoise_context *context)
 	context->orig_tracing_thresh = OSNOISE_OPTION_INIT_VAL;
 }
 
+static int osnoise_options_get_option(char *option)
+{
+	char *options = tracefs_instance_file_read(NULL, "osnoise/options", NULL);
+	char no_option[128];
+	int retval = 0;
+	char *opt;
+
+	if (!options)
+		return OSNOISE_OPTION_INIT_VAL;
+
+	/*
+	 * Check first if the option is disabled.
+	 */
+	snprintf(no_option, sizeof(no_option), "NO_%s", option);
+
+	opt = strstr(options, no_option);
+	if (opt)
+		goto out_free;
+
+	/*
+	 * Now that it is not disabled, if the string is there, it is
+	 * enabled. If the string is not there, the option does not exist.
+	 */
+	opt = strstr(options, option);
+	if (opt)
+		retval = 1;
+	else
+		retval = OSNOISE_OPTION_INIT_VAL;
+
+out_free:
+	free(options);
+	return retval;
+}
+
+static int osnoise_options_set_option(char *option, bool onoff)
+{
+	char no_option[128];
+
+	if (onoff)
+		return tracefs_instance_file_write(NULL, "osnoise/options", option);
+
+	snprintf(no_option, sizeof(no_option), "NO_%s", option);
+
+	return tracefs_instance_file_write(NULL, "osnoise/options", no_option);
+}
+
+#define	OSNOISE_OPTION(name, option_str)						\
+static int osnoise_get_##name(struct osnoise_context *context)				\
+{											\
+	if (context->opt_##name != OSNOISE_OPTION_INIT_VAL)				\
+		return context->opt_##name;						\
+											\
+	if (context->orig_opt_##name != OSNOISE_OPTION_INIT_VAL)			\
+		return context->orig_opt_##name;					\
+											\
+	context->orig_opt_##name = osnoise_options_get_option(option_str);		\
+											\
+	return context->orig_opt_##name;						\
+}											\
+											\
+int osnoise_set_##name(struct osnoise_context *context, bool onoff)			\
+{											\
+	int opt_##name = osnoise_get_##name(context);					\
+	int retval;									\
+											\
+	if (opt_##name == OSNOISE_OPTION_INIT_VAL)					\
+		return -1;								\
+											\
+	if (opt_##name == onoff)							\
+		return 0;								\
+											\
+	retval = osnoise_options_set_option(option_str, onoff);				\
+	if (retval < 0)									\
+		return -1;								\
+											\
+	context->opt_##name = onoff;							\
+											\
+	return 0;									\
+}											\
+											\
+static void osnoise_restore_##name(struct osnoise_context *context)			\
+{											\
+	int retval;									\
+											\
+	if (context->orig_opt_##name == OSNOISE_OPTION_INIT_VAL)			\
+		return;									\
+											\
+	if (context->orig_opt_##name == context->opt_##name)				\
+		goto out_done;								\
+											\
+	retval = osnoise_options_set_option(option_str, context->orig_opt_##name);	\
+	if (retval < 0)									\
+		err_msg("Could not restore original osnoise " #option_str " option\n");	\
+											\
+out_done:										\
+	context->orig_opt_##name = OSNOISE_OPTION_INIT_VAL;				\
+}											\
+											\
+static void osnoise_put_##name(struct osnoise_context *context)				\
+{											\
+	osnoise_restore_##name(context);						\
+											\
+	if (context->orig_opt_##name == OSNOISE_OPTION_INIT_VAL)			\
+		return;									\
+											\
+	context->orig_opt_##name = OSNOISE_OPTION_INIT_VAL;				\
+}
+
 /*
  * enable_osnoise - enable osnoise tracer in the trace_instance
  */
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V2 2/6] rtla/osnoise: Add OSNOISE_IRQ_DISABLE option
  2023-01-31 16:30 [PATCH V2 0/6] rtla: Add hwnoise tool Daniel Bristot de Oliveira
  2023-01-31 16:30 ` [PATCH V2 1/6] rtla/osnoise: Add helper functions to manipulate osnoise/options Daniel Bristot de Oliveira
@ 2023-01-31 16:30 ` Daniel Bristot de Oliveira
  2023-01-31 16:30 ` [PATCH V2 3/6] rtla/osnoise: Add the mode abstraction Daniel Bristot de Oliveira
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Daniel Bristot de Oliveira @ 2023-01-31 16:30 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira, Steven Rostedt, Jonathan Corbet
  Cc: Juri Lelli, Clark Williams, Bagas Sanjaya, linux-trace-devel,
	linux-doc, linux-kernel

Add OSNOISE_IRQ_DISABLE to the set of possible options in the osnoise
context. Do not use it yet.

In preparation for the hwnoise tool.

Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Jonathan Corbet <corbet@lwn.net>
---
 tools/tracing/rtla/src/osnoise.c | 6 ++++++
 tools/tracing/rtla/src/osnoise.h | 6 ++++++
 2 files changed, 12 insertions(+)

diff --git a/tools/tracing/rtla/src/osnoise.c b/tools/tracing/rtla/src/osnoise.c
index 050a9997191c..6bf877ed8a77 100644
--- a/tools/tracing/rtla/src/osnoise.c
+++ b/tools/tracing/rtla/src/osnoise.c
@@ -842,6 +842,8 @@ static void osnoise_put_##name(struct osnoise_context *context)				\
 	context->orig_opt_##name = OSNOISE_OPTION_INIT_VAL;				\
 }
 
+OSNOISE_OPTION(irq_disable, "OSNOISE_IRQ_DISABLE");
+
 /*
  * enable_osnoise - enable osnoise tracer in the trace_instance
  */
@@ -906,6 +908,9 @@ struct osnoise_context *osnoise_context_alloc(void)
 	context->orig_tracing_thresh	= OSNOISE_OPTION_INIT_VAL;
 	context->tracing_thresh		= OSNOISE_OPTION_INIT_VAL;
 
+	context->orig_opt_irq_disable	= OSNOISE_OPTION_INIT_VAL;
+	context->opt_irq_disable	= OSNOISE_OPTION_INIT_VAL;
+
 	osnoise_get_context(context);
 
 	return context;
@@ -932,6 +937,7 @@ void osnoise_put_context(struct osnoise_context *context)
 	osnoise_put_timerlat_period_us(context);
 	osnoise_put_print_stack(context);
 	osnoise_put_tracing_thresh(context);
+	osnoise_put_irq_disable(context);
 
 	free(context);
 }
diff --git a/tools/tracing/rtla/src/osnoise.h b/tools/tracing/rtla/src/osnoise.h
index 04a4384cc544..5bb0dc998f58 100644
--- a/tools/tracing/rtla/src/osnoise.h
+++ b/tools/tracing/rtla/src/osnoise.h
@@ -38,6 +38,10 @@ struct osnoise_context {
 	/* -1 as init value because 0 is disabled */
 	long long		orig_print_stack;
 	long long		print_stack;
+
+	/* -1 as init value because 0 is off */
+	int			orig_opt_irq_disable;
+	int			opt_irq_disable;
 };
 
 /*
@@ -79,6 +83,8 @@ void osnoise_restore_print_stack(struct osnoise_context *context);
 int osnoise_set_print_stack(struct osnoise_context *context,
 			    long long print_stack);
 
+int osnoise_set_irq_disable(struct osnoise_context *context, bool onoff);
+
 /*
  * osnoise_tool -  osnoise based tool definition.
  */
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V2 3/6] rtla/osnoise: Add the mode abstraction
  2023-01-31 16:30 [PATCH V2 0/6] rtla: Add hwnoise tool Daniel Bristot de Oliveira
  2023-01-31 16:30 ` [PATCH V2 1/6] rtla/osnoise: Add helper functions to manipulate osnoise/options Daniel Bristot de Oliveira
  2023-01-31 16:30 ` [PATCH V2 2/6] rtla/osnoise: Add OSNOISE_IRQ_DISABLE option Daniel Bristot de Oliveira
@ 2023-01-31 16:30 ` Daniel Bristot de Oliveira
  2023-01-31 16:30 ` [PATCH V2 4/6] rtla/osnoise_top: Pass the params to the usage function Daniel Bristot de Oliveira
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Daniel Bristot de Oliveira @ 2023-01-31 16:30 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira, Steven Rostedt, Jonathan Corbet
  Cc: Juri Lelli, Clark Williams, Bagas Sanjaya, linux-trace-devel,
	linux-doc, linux-kernel

In preparation to the hwnoise tool, add the mode abstraction
to the osnoise tool, so it can have multiple operation modes.

Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Jonathan Corbet <corbet@lwn.net>
---
 tools/tracing/rtla/src/osnoise_top.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/tracing/rtla/src/osnoise_top.c b/tools/tracing/rtla/src/osnoise_top.c
index 76479bfb2922..d7bbd73e1a78 100644
--- a/tools/tracing/rtla/src/osnoise_top.c
+++ b/tools/tracing/rtla/src/osnoise_top.c
@@ -14,6 +14,10 @@
 #include "osnoise.h"
 #include "utils.h"
 
+enum osnoise_mode {
+	MODE_OSNOISE = 0,
+};
+
 /*
  * osnoise top parameters
  */
@@ -32,6 +36,7 @@ struct osnoise_top_params {
 	int			set_sched;
 	struct sched_attr	sched_param;
 	struct trace_events	*events;
+	enum osnoise_mode	mode;
 };
 
 struct osnoise_top_cpu {
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V2 4/6] rtla/osnoise_top: Pass the params to the usage function
  2023-01-31 16:30 [PATCH V2 0/6] rtla: Add hwnoise tool Daniel Bristot de Oliveira
                   ` (2 preceding siblings ...)
  2023-01-31 16:30 ` [PATCH V2 3/6] rtla/osnoise: Add the mode abstraction Daniel Bristot de Oliveira
@ 2023-01-31 16:30 ` Daniel Bristot de Oliveira
  2023-01-31 16:30 ` [PATCH V2 5/6] rtla: Add hwnoise tool Daniel Bristot de Oliveira
  2023-01-31 16:30 ` [PATCH V2 6/6] Documentation/rtla: Add hwnoise man page Daniel Bristot de Oliveira
  5 siblings, 0 replies; 11+ messages in thread
From: Daniel Bristot de Oliveira @ 2023-01-31 16:30 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira, Steven Rostedt, Jonathan Corbet
  Cc: Juri Lelli, Clark Williams, Bagas Sanjaya, linux-trace-devel,
	linux-doc, linux-kernel

In preparation to the hwnoise tool, pass the osnoise top params to the
usage function so it can be adapted according to the mode of the tool.

Also make it static, as it is only used in this file.

Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Jonathan Corbet <corbet@lwn.net>
---
 tools/tracing/rtla/src/osnoise_top.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/tools/tracing/rtla/src/osnoise_top.c b/tools/tracing/rtla/src/osnoise_top.c
index d7bbd73e1a78..fd2104050e3c 100644
--- a/tools/tracing/rtla/src/osnoise_top.c
+++ b/tools/tracing/rtla/src/osnoise_top.c
@@ -246,7 +246,7 @@ osnoise_print_stats(struct osnoise_top_params *params, struct osnoise_tool *top)
 /*
  * osnoise_top_usage - prints osnoise top usage message
  */
-void osnoise_top_usage(char *usage)
+static void osnoise_top_usage(struct osnoise_top_params *params, char *usage)
 {
 	int i;
 
@@ -350,7 +350,7 @@ struct osnoise_top_params *osnoise_top_parse_args(int argc, char **argv)
 		case 'c':
 			retval = parse_cpu_list(optarg, &params->monitored_cpus);
 			if (retval)
-				osnoise_top_usage("\nInvalid -c cpu list\n");
+				osnoise_top_usage(params, "\nInvalid -c cpu list\n");
 			params->cpus = optarg;
 			break;
 		case 'D':
@@ -359,7 +359,7 @@ struct osnoise_top_params *osnoise_top_parse_args(int argc, char **argv)
 		case 'd':
 			params->duration = parse_seconds_duration(optarg);
 			if (!params->duration)
-				osnoise_top_usage("Invalid -D duration\n");
+				osnoise_top_usage(params, "Invalid -D duration\n");
 			break;
 		case 'e':
 			tevent = trace_event_alloc(optarg);
@@ -375,17 +375,17 @@ struct osnoise_top_params *osnoise_top_parse_args(int argc, char **argv)
 			break;
 		case 'h':
 		case '?':
-			osnoise_top_usage(NULL);
+			osnoise_top_usage(params, NULL);
 			break;
 		case 'p':
 			params->period = get_llong_from_str(optarg);
 			if (params->period > 10000000)
-				osnoise_top_usage("Period longer than 10 s\n");
+				osnoise_top_usage(params, "Period longer than 10 s\n");
 			break;
 		case 'P':
 			retval = parse_prio(optarg, &params->sched_param);
 			if (retval == -1)
-				osnoise_top_usage("Invalid -P priority");
+				osnoise_top_usage(params, "Invalid -P priority");
 			params->set_sched = 1;
 			break;
 		case 'q':
@@ -394,7 +394,7 @@ struct osnoise_top_params *osnoise_top_parse_args(int argc, char **argv)
 		case 'r':
 			params->runtime = get_llong_from_str(optarg);
 			if (params->runtime < 100)
-				osnoise_top_usage("Runtime shorter than 100 us\n");
+				osnoise_top_usage(params, "Runtime shorter than 100 us\n");
 			break;
 		case 's':
 			params->stop_us = get_llong_from_str(optarg);
@@ -420,7 +420,7 @@ struct osnoise_top_params *osnoise_top_parse_args(int argc, char **argv)
 					exit(EXIT_FAILURE);
 				}
 			} else {
-				osnoise_top_usage("--trigger requires a previous -e\n");
+				osnoise_top_usage(params, "--trigger requires a previous -e\n");
 			}
 			break;
 		case '1': /* filter */
@@ -431,11 +431,11 @@ struct osnoise_top_params *osnoise_top_parse_args(int argc, char **argv)
 					exit(EXIT_FAILURE);
 				}
 			} else {
-				osnoise_top_usage("--filter requires a previous -e\n");
+				osnoise_top_usage(params, "--filter requires a previous -e\n");
 			}
 			break;
 		default:
-			osnoise_top_usage("Invalid option");
+			osnoise_top_usage(params, "Invalid option");
 		}
 	}
 
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V2 5/6] rtla: Add hwnoise tool
  2023-01-31 16:30 [PATCH V2 0/6] rtla: Add hwnoise tool Daniel Bristot de Oliveira
                   ` (3 preceding siblings ...)
  2023-01-31 16:30 ` [PATCH V2 4/6] rtla/osnoise_top: Pass the params to the usage function Daniel Bristot de Oliveira
@ 2023-01-31 16:30 ` Daniel Bristot de Oliveira
  2023-01-31 16:30 ` [PATCH V2 6/6] Documentation/rtla: Add hwnoise man page Daniel Bristot de Oliveira
  5 siblings, 0 replies; 11+ messages in thread
From: Daniel Bristot de Oliveira @ 2023-01-31 16:30 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira, Steven Rostedt, Jonathan Corbet
  Cc: Juri Lelli, Clark Williams, Bagas Sanjaya, linux-trace-devel,
	linux-doc, linux-kernel

The hwnoise tool is a special mode for the osnoise top tool.

hwnoise dispatches the osnoise tracer and displays a summary of the noise.
The difference is that it runs the tracer with the OSNOISE_IRQ_DISABLE
option set, thus only allowing only hardware-related noise, resulting in
a simplified output. hwnoise has the same features of osnoise.

An example of the tool's output:

 # rtla hwnoise -c 1-5 -T 1 -d 10m -q
                                           Hardware-related Noise
 duration:   0 00:10:00 | time is in us
 CPU Period       Runtime        Noise  % CPU Aval   Max Noise   Max Single          HW          NMI
   1 #599       599000000          138    99.99997           3            3           4           74
   2 #599       599000000           85    99.99998           3            3           4           75
   3 #599       599000000           86    99.99998           4            3           6           75
   4 #599       599000000           81    99.99998           4            4           2           75
   5 #599       599000000           85    99.99998           2            2           2           75

Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Jonathan Corbet <corbet@lwn.net>
---
 tools/tracing/rtla/Makefile          |  2 +
 tools/tracing/rtla/src/osnoise.c     |  6 +++
 tools/tracing/rtla/src/osnoise.h     |  1 +
 tools/tracing/rtla/src/osnoise_top.c | 59 +++++++++++++++++++++++++---
 tools/tracing/rtla/src/rtla.c        |  4 ++
 5 files changed, 66 insertions(+), 6 deletions(-)

diff --git a/tools/tracing/rtla/Makefile b/tools/tracing/rtla/Makefile
index 22e28b76f800..2456a399eb9a 100644
--- a/tools/tracing/rtla/Makefile
+++ b/tools/tracing/rtla/Makefile
@@ -119,6 +119,8 @@ install: doc_install
 	$(STRIP) $(DESTDIR)$(BINDIR)/rtla
 	@test ! -f $(DESTDIR)$(BINDIR)/osnoise || rm $(DESTDIR)$(BINDIR)/osnoise
 	ln -s rtla $(DESTDIR)$(BINDIR)/osnoise
+	@test ! -f $(DESTDIR)$(BINDIR)/hwnoise || rm $(DESTDIR)$(BINDIR)/hwnoise
+	ln -s rtla $(DESTDIR)$(BINDIR)/hwnoise
 	@test ! -f $(DESTDIR)$(BINDIR)/timerlat || rm $(DESTDIR)$(BINDIR)/timerlat
 	ln -s rtla $(DESTDIR)$(BINDIR)/timerlat
 
diff --git a/tools/tracing/rtla/src/osnoise.c b/tools/tracing/rtla/src/osnoise.c
index 6bf877ed8a77..0e47b39992d8 100644
--- a/tools/tracing/rtla/src/osnoise.c
+++ b/tools/tracing/rtla/src/osnoise.c
@@ -1072,3 +1072,9 @@ int osnoise_main(int argc, char *argv[])
 	osnoise_usage(1);
 	exit(1);
 }
+
+int hwnoise_main(int argc, char *argv[])
+{
+	osnoise_top_main(argc, argv);
+	exit(0);
+}
diff --git a/tools/tracing/rtla/src/osnoise.h b/tools/tracing/rtla/src/osnoise.h
index 5bb0dc998f58..4dcf22ccd704 100644
--- a/tools/tracing/rtla/src/osnoise.h
+++ b/tools/tracing/rtla/src/osnoise.h
@@ -103,3 +103,4 @@ struct osnoise_tool *osnoise_init_trace_tool(char *tracer);
 int osnoise_hist_main(int argc, char *argv[]);
 int osnoise_top_main(int argc, char **argv);
 int osnoise_main(int argc, char **argv);
+int hwnoise_main(int argc, char **argv);
diff --git a/tools/tracing/rtla/src/osnoise_top.c b/tools/tracing/rtla/src/osnoise_top.c
index fd2104050e3c..562f2e4b18c5 100644
--- a/tools/tracing/rtla/src/osnoise_top.c
+++ b/tools/tracing/rtla/src/osnoise_top.c
@@ -16,6 +16,7 @@
 
 enum osnoise_mode {
 	MODE_OSNOISE = 0,
+	MODE_HWNOISE
 };
 
 /*
@@ -148,15 +149,23 @@ osnoise_top_handler(struct trace_seq *s, struct tep_record *record,
  */
 static void osnoise_top_header(struct osnoise_tool *top)
 {
+	struct osnoise_top_params *params = top->params;
 	struct trace_seq *s = top->trace.seq;
 	char duration[26];
 
 	get_duration(top->start_time, duration, sizeof(duration));
 
 	trace_seq_printf(s, "\033[2;37;40m");
-	trace_seq_printf(s, "                                          Operating System Noise");
-	trace_seq_printf(s, "                                     ");
-	trace_seq_printf(s, "                                     ");
+	trace_seq_printf(s, "                                          ");
+
+	if (params->mode == MODE_OSNOISE) {
+		trace_seq_printf(s, "Operating System Noise");
+		trace_seq_printf(s, "                                       ");
+	} else if (params->mode == MODE_HWNOISE) {
+		trace_seq_printf(s, "Hardware-related Noise");
+	}
+
+	trace_seq_printf(s, "                                   ");
 	trace_seq_printf(s, "\033[0;0;0m");
 	trace_seq_printf(s, "\n");
 
@@ -167,7 +176,14 @@ static void osnoise_top_header(struct osnoise_tool *top)
 	trace_seq_printf(s, "       Noise ");
 	trace_seq_printf(s, " %% CPU Aval ");
 	trace_seq_printf(s, "  Max Noise   Max Single ");
-	trace_seq_printf(s, "         HW          NMI          IRQ      Softirq       Thread");
+	trace_seq_printf(s, "         HW          NMI");
+
+	if (params->mode == MODE_HWNOISE)
+		goto eol;
+
+	trace_seq_printf(s, "          IRQ      Softirq       Thread");
+
+eol:
 	trace_seq_printf(s, "\033[0;0;0m");
 	trace_seq_printf(s, "\n");
 }
@@ -186,6 +202,7 @@ static void clear_terminal(struct trace_seq *seq)
  */
 static void osnoise_top_print(struct osnoise_tool *tool, int cpu)
 {
+	struct osnoise_top_params *params = tool->params;
 	struct trace_seq *s = tool->trace.seq;
 	struct osnoise_top_cpu *cpu_data;
 	struct osnoise_top_data *data;
@@ -210,6 +227,12 @@ static void osnoise_top_print(struct osnoise_tool *tool, int cpu)
 
 	trace_seq_printf(s, "%12llu ", cpu_data->hw_count);
 	trace_seq_printf(s, "%12llu ", cpu_data->nmi_count);
+
+	if (params->mode == MODE_HWNOISE) {
+		trace_seq_printf(s, "\n");
+		return;
+	}
+
 	trace_seq_printf(s, "%12llu ", cpu_data->irq_count);
 	trace_seq_printf(s, "%12llu ", cpu_data->softirq_count);
 	trace_seq_printf(s, "%12llu\n", cpu_data->thread_count);
@@ -251,7 +274,7 @@ static void osnoise_top_usage(struct osnoise_top_params *params, char *usage)
 	int i;
 
 	static const char * const msg[] = {
-		"  usage: rtla osnoise [top] [-h] [-q] [-D] [-d s] [-a us] [-p us] [-r us] [-s us] [-S us] \\",
+		" [-h] [-q] [-D] [-d s] [-a us] [-p us] [-r us] [-s us] [-S us] \\",
 		"	  [-T us] [-t[=file]] [-e sys[:event]] [--filter <filter>] [--trigger <trigger>] \\",
 		"	  [-c cpu-list] [-P priority]",
 		"",
@@ -282,9 +305,22 @@ static void osnoise_top_usage(struct osnoise_top_params *params, char *usage)
 	if (usage)
 		fprintf(stderr, "%s\n", usage);
 
-	fprintf(stderr, "rtla osnoise top: a per-cpu summary of the OS noise (version %s)\n",
+	if (params->mode == MODE_OSNOISE) {
+		fprintf(stderr,
+			"rtla osnoise top: a per-cpu summary of the OS noise (version %s)\n",
+			VERSION);
+
+		fprintf(stderr, "  usage: rtla osnoise [top]");
+	}
+
+	if (params->mode == MODE_HWNOISE) {
+		fprintf(stderr,
+			"rtla hwnoise: a summary of hardware-related noise (version %s)\n",
 			VERSION);
 
+		fprintf(stderr, "  usage: rtla hwnoise");
+	}
+
 	for (i = 0; msg[i]; i++)
 		fprintf(stderr, "%s\n", msg[i]);
 	exit(1);
@@ -304,6 +340,9 @@ struct osnoise_top_params *osnoise_top_parse_args(int argc, char **argv)
 	if (!params)
 		exit(1);
 
+	if (strcmp(argv[0], "hwnoise") == 0)
+		params->mode = MODE_HWNOISE;
+
 	while (1) {
 		static struct option long_options[] = {
 			{"auto",		required_argument,	0, 'a'},
@@ -500,6 +539,14 @@ osnoise_top_apply_config(struct osnoise_tool *tool, struct osnoise_top_params *p
 		}
 	}
 
+	if (params->mode == MODE_HWNOISE) {
+		retval = osnoise_set_irq_disable(tool->context, 1);
+		if (retval) {
+			err_msg("Failed to set OSNOISE_IRQ_DISABLE option\n");
+			goto out_err;
+		}
+	}
+
 	return 0;
 
 out_err:
diff --git a/tools/tracing/rtla/src/rtla.c b/tools/tracing/rtla/src/rtla.c
index 52e8f1825281..7635c70123ab 100644
--- a/tools/tracing/rtla/src/rtla.c
+++ b/tools/tracing/rtla/src/rtla.c
@@ -26,6 +26,7 @@ static void rtla_usage(int err)
 		"",
 		"  commands:",
 		"     osnoise  - gives information about the operating system noise (osnoise)",
+		"     hwnoise  - gives information about hardware-related noise",
 		"     timerlat - measures the timer irq and thread latency",
 		"",
 		NULL,
@@ -47,6 +48,9 @@ int run_command(int argc, char **argv, int start_position)
 	if (strcmp(argv[start_position], "osnoise") == 0) {
 		osnoise_main(argc-start_position, &argv[start_position]);
 		goto ran;
+	} else if (strcmp(argv[start_position], "hwnoise") == 0) {
+		hwnoise_main(argc-start_position, &argv[start_position]);
+		goto ran;
 	} else if (strcmp(argv[start_position], "timerlat") == 0) {
 		timerlat_main(argc-start_position, &argv[start_position]);
 		goto ran;
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V2 6/6] Documentation/rtla: Add hwnoise man page
  2023-01-31 16:30 [PATCH V2 0/6] rtla: Add hwnoise tool Daniel Bristot de Oliveira
                   ` (4 preceding siblings ...)
  2023-01-31 16:30 ` [PATCH V2 5/6] rtla: Add hwnoise tool Daniel Bristot de Oliveira
@ 2023-01-31 16:30 ` Daniel Bristot de Oliveira
  2023-02-01  9:10   ` Bagas Sanjaya
  5 siblings, 1 reply; 11+ messages in thread
From: Daniel Bristot de Oliveira @ 2023-01-31 16:30 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira, Steven Rostedt, Jonathan Corbet
  Cc: Juri Lelli, Clark Williams, Bagas Sanjaya, linux-trace-devel,
	linux-doc, linux-kernel

Add a man page for the new rtla hwnoise tool, mostly based in the
rtla osnoise top.

Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Jonathan Corbet <corbet@lwn.net>
---
 Documentation/tools/rtla/index.rst        |   1 +
 Documentation/tools/rtla/rtla-hwnoise.rst | 107 ++++++++++++++++++++++
 2 files changed, 108 insertions(+)
 create mode 100644 Documentation/tools/rtla/rtla-hwnoise.rst

diff --git a/Documentation/tools/rtla/index.rst b/Documentation/tools/rtla/index.rst
index 840f0bf3e803..05d2652e4072 100644
--- a/Documentation/tools/rtla/index.rst
+++ b/Documentation/tools/rtla/index.rst
@@ -17,6 +17,7 @@ behavior on specific hardware.
    rtla-timerlat
    rtla-timerlat-hist
    rtla-timerlat-top
+   rtla-hwnoise
 
 .. only::  subproject and html
 
diff --git a/Documentation/tools/rtla/rtla-hwnoise.rst b/Documentation/tools/rtla/rtla-hwnoise.rst
new file mode 100644
index 000000000000..fb1c52bbc00b
--- /dev/null
+++ b/Documentation/tools/rtla/rtla-hwnoise.rst
@@ -0,0 +1,107 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+============
+rtla-hwnoise
+============
+------------------------------------------
+Detect and quantify hardware-related noise
+------------------------------------------
+
+:Manual section: 1
+
+SYNOPSIS
+========
+
+**rtla hwnoise** [*OPTIONS*]
+
+DESCRIPTION
+===========
+
+**rtla hwnoise** collects the periodic summary from the *osnoise* tracer
+running with *interrupts disabled*. By disabling interrupts, and the scheduling
+of threads as a consequence, only non-maskable interrupts and hardware-related
+noise is allowed.
+
+The tool also allows the configurations of the *osnoise* tracer and the
+collection of the tracer output.
+
+OPTIONS
+=======
+.. include:: common_osnoise_options.rst
+
+.. include:: common_top_options.rst
+
+.. include:: common_options.rst
+
+EXAMPLE
+=======
+In the example below, the **rtla hwnoise** tool is set to run on CPUs *1-7*
+on a system with 8 cores/16 threads with hyper-threading enabled.
+
+The tool is set to detect any noise higher than *one microsecond*,
+to run for *ten minutes*, displaying a summary of the report at the
+end of the session::
+
+  # rtla hwnoise -c 1-7 -T 1 -d 10m -q
+                                          Hardware-related Noise
+  duration:   0 00:10:00 | time is in us
+  CPU Period       Runtime        Noise  % CPU Aval   Max Noise   Max Single          HW          NMI
+    1 #599       599000000          138    99.99997           3            3           4           74
+    2 #599       599000000           85    99.99998           3            3           4           75
+    3 #599       599000000           86    99.99998           4            3           6           75
+    4 #599       599000000           81    99.99998           4            4           2           75
+    5 #599       599000000           85    99.99998           2            2           2           75
+    6 #599       599000000           76    99.99998           2            2           0           75
+    7 #599       599000000           77    99.99998           3            3           0           75
+
+
+The first column shows the *CPU*, and the second column shows how many
+*Periods* the tool ran during the session. The *Runtime* is the time
+the tool effectively runs on the CPU. The *Noise* column is the sum of
+all noise that the tool observed, and the *% CPU Aval* is the relation
+between the *Runtime* and *Noise*.
+
+The *Max Noise* column is the maximum hardware noise the tool detected in a
+single period, and the *Max Single* is the maximum single noise seen.
+
+The *HW* and *NMI* columns show the total number of *hardware* and *NMI* noise
+occurrence observed by the tool.
+
+For example, *CPU 3* ran *599* periods of *1 second Runtime*. The CPU received
+*86 us* of noise during the entire execution, leaving *99.99997 %* of CPU time
+for the application. In the worst single period, the CPU caused *4 us* of
+noise to the application, but it was certainly caused by more than one single
+noise, as the *Max Single* noise was of *3 us*. The CPU has *HW noise,* at a
+rate of *six occurrences*/*ten minutes*. The CPU also has *NMIs*, at a higher
+frequency: around *seven per second*.
+
+The tool should report *0* hardware-related noise in the ideal situation.
+For example, by disabling hyper-threading to remove the hardware noise,
+and disabling the TSC watchdog to remove the NMI (it is possible to identify
+this using tracing options of **rtla hwnoise**), it was possible to reach
+the ideal situation in the same hardware::
+
+  # rtla hwnoise -c 1-7 -T 1 -d 10m -q
+                                          Hardware-related Noise
+  duration:   0 00:10:00 | time is in us
+  CPU Period       Runtime        Noise  % CPU Aval   Max Noise   Max Single          HW          NMI
+    1 #599       599000000            0   100.00000           0            0           0            0
+    2 #599       599000000            0   100.00000           0            0           0            0
+    3 #599       599000000            0   100.00000           0            0           0            0
+    4 #599       599000000            0   100.00000           0            0           0            0
+    5 #599       599000000            0   100.00000           0            0           0            0
+    6 #599       599000000            0   100.00000           0            0           0            0
+    7 #599       599000000            0   100.00000           0            0           0            0
+
+SEE ALSO
+========
+
+**rtla-osnoise**\(1)
+
+Osnoise tracer documentation: <https://www.kernel.org/doc/html/latest/trace/osnoise-tracer.html>
+
+AUTHOR
+======
+Written by Daniel Bristot de Oliveira <bristot@kernel.org>
+
+.. include:: common_appendix.rst
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH V2 6/6] Documentation/rtla: Add hwnoise man page
  2023-01-31 16:30 ` [PATCH V2 6/6] Documentation/rtla: Add hwnoise man page Daniel Bristot de Oliveira
@ 2023-02-01  9:10   ` Bagas Sanjaya
  0 siblings, 0 replies; 11+ messages in thread
From: Bagas Sanjaya @ 2023-02-01  9:10 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira, Steven Rostedt, Jonathan Corbet
  Cc: Juri Lelli, Clark Williams, linux-trace-devel, linux-doc, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 5583 bytes --]

On Tue, Jan 31, 2023 at 05:30:07PM +0100, Daniel Bristot de Oliveira wrote:
> diff --git a/Documentation/tools/rtla/rtla-hwnoise.rst b/Documentation/tools/rtla/rtla-hwnoise.rst
> new file mode 100644
> index 000000000000..fb1c52bbc00b
> --- /dev/null
> +++ b/Documentation/tools/rtla/rtla-hwnoise.rst
> @@ -0,0 +1,107 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +============
> +rtla-hwnoise
> +============
> +------------------------------------------
> +Detect and quantify hardware-related noise
> +------------------------------------------
> +
> +:Manual section: 1
> +
> +SYNOPSIS
> +========
> +
> +**rtla hwnoise** [*OPTIONS*]
> +
> +DESCRIPTION
> +===========
> +
> +**rtla hwnoise** collects the periodic summary from the *osnoise* tracer
> +running with *interrupts disabled*. By disabling interrupts, and the scheduling
> +of threads as a consequence, only non-maskable interrupts and hardware-related
> +noise is allowed.
> +
> +The tool also allows the configurations of the *osnoise* tracer and the
> +collection of the tracer output.
> +
> +OPTIONS
> +=======
> +.. include:: common_osnoise_options.rst
> +
> +.. include:: common_top_options.rst
> +
> +.. include:: common_options.rst
> +
> +EXAMPLE
> +=======
> +In the example below, the **rtla hwnoise** tool is set to run on CPUs *1-7*
> +on a system with 8 cores/16 threads with hyper-threading enabled.
> +
> +The tool is set to detect any noise higher than *one microsecond*,
> +to run for *ten minutes*, displaying a summary of the report at the
> +end of the session::
> +
> +  # rtla hwnoise -c 1-7 -T 1 -d 10m -q
> +                                          Hardware-related Noise
> +  duration:   0 00:10:00 | time is in us
> +  CPU Period       Runtime        Noise  % CPU Aval   Max Noise   Max Single          HW          NMI
> +    1 #599       599000000          138    99.99997           3            3           4           74
> +    2 #599       599000000           85    99.99998           3            3           4           75
> +    3 #599       599000000           86    99.99998           4            3           6           75
> +    4 #599       599000000           81    99.99998           4            4           2           75
> +    5 #599       599000000           85    99.99998           2            2           2           75
> +    6 #599       599000000           76    99.99998           2            2           0           75
> +    7 #599       599000000           77    99.99998           3            3           0           75
> +
> +
> +The first column shows the *CPU*, and the second column shows how many
> +*Periods* the tool ran during the session. The *Runtime* is the time
> +the tool effectively runs on the CPU. The *Noise* column is the sum of
> +all noise that the tool observed, and the *% CPU Aval* is the relation
> +between the *Runtime* and *Noise*.
> +
> +The *Max Noise* column is the maximum hardware noise the tool detected in a
> +single period, and the *Max Single* is the maximum single noise seen.
> +
> +The *HW* and *NMI* columns show the total number of *hardware* and *NMI* noise
> +occurrence observed by the tool.
> +
> +For example, *CPU 3* ran *599* periods of *1 second Runtime*. The CPU received
> +*86 us* of noise during the entire execution, leaving *99.99997 %* of CPU time
> +for the application. In the worst single period, the CPU caused *4 us* of
> +noise to the application, but it was certainly caused by more than one single
> +noise, as the *Max Single* noise was of *3 us*. The CPU has *HW noise,* at a
> +rate of *six occurrences*/*ten minutes*. The CPU also has *NMIs*, at a higher
> +frequency: around *seven per second*.
> +
> +The tool should report *0* hardware-related noise in the ideal situation.
> +For example, by disabling hyper-threading to remove the hardware noise,
> +and disabling the TSC watchdog to remove the NMI (it is possible to identify
> +this using tracing options of **rtla hwnoise**), it was possible to reach
> +the ideal situation in the same hardware::
> +
> +  # rtla hwnoise -c 1-7 -T 1 -d 10m -q
> +                                          Hardware-related Noise
> +  duration:   0 00:10:00 | time is in us
> +  CPU Period       Runtime        Noise  % CPU Aval   Max Noise   Max Single          HW          NMI
> +    1 #599       599000000            0   100.00000           0            0           0            0
> +    2 #599       599000000            0   100.00000           0            0           0            0
> +    3 #599       599000000            0   100.00000           0            0           0            0
> +    4 #599       599000000            0   100.00000           0            0           0            0
> +    5 #599       599000000            0   100.00000           0            0           0            0
> +    6 #599       599000000            0   100.00000           0            0           0            0
> +    7 #599       599000000            0   100.00000           0            0           0            0
> +
> +SEE ALSO
> +========
> +
> +**rtla-osnoise**\(1)
> +
> +Osnoise tracer documentation: <https://www.kernel.org/doc/html/latest/trace/osnoise-tracer.html>
> +
> +AUTHOR
> +======
> +Written by Daniel Bristot de Oliveira <bristot@kernel.org>
> +
> +.. include:: common_appendix.rst
 
LGTM, thanks!

Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>

-- 
An old man doll... just what I always wanted! - Clara

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH V2 1/6] rtla/osnoise: Add helper functions to manipulate osnoise/options
  2023-01-31 16:30 ` [PATCH V2 1/6] rtla/osnoise: Add helper functions to manipulate osnoise/options Daniel Bristot de Oliveira
@ 2023-02-01 19:23   ` Steven Rostedt
  2023-02-07 20:04     ` Daniel Bristot de Oliveira
  2023-02-01 19:25   ` Steven Rostedt
  1 sibling, 1 reply; 11+ messages in thread
From: Steven Rostedt @ 2023-02-01 19:23 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira
  Cc: Jonathan Corbet, Juri Lelli, Clark Williams, Bagas Sanjaya,
	linux-trace-devel, linux-doc, linux-kernel

On Tue, 31 Jan 2023 17:30:02 +0100
Daniel Bristot de Oliveira <bristot@kernel.org> wrote:

> Add some helper functions to read and set the on/off osnoise/options.
> No usage in this patch.
> 
> In preparation for hwnoise tool.

Honestly, I don't see why patches 1-5 isn't a single patch. It's not that
big of a change, and everything in 1-5 is to do what 5 does. Breaking it up
this fine grain isn't helpful in reviewing, as I found that I had to apply
1-5 and then do a diff from where I started to make sense of any of it.

-- Steve


> 
> Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
> Cc: Daniel Bristot de Oliveira <bristot@kernel.org>
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Cc: Jonathan Corbet <corbet@lwn.net>
> ---
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH V2 1/6] rtla/osnoise: Add helper functions to manipulate osnoise/options
  2023-01-31 16:30 ` [PATCH V2 1/6] rtla/osnoise: Add helper functions to manipulate osnoise/options Daniel Bristot de Oliveira
  2023-02-01 19:23   ` Steven Rostedt
@ 2023-02-01 19:25   ` Steven Rostedt
  1 sibling, 0 replies; 11+ messages in thread
From: Steven Rostedt @ 2023-02-01 19:25 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira
  Cc: Jonathan Corbet, Juri Lelli, Clark Williams, Bagas Sanjaya,
	linux-trace-devel, linux-doc, linux-kernel

On Tue, 31 Jan 2023 17:30:02 +0100
Daniel Bristot de Oliveira <bristot@kernel.org> wrote:

> +#define	OSNOISE_OPTION(name, option_str)						\
> +static int osnoise_get_##name(struct osnoise_context *context)				\
> +{											\
> +	if (context->opt_##name != OSNOISE_OPTION_INIT_VAL)				\
> +		return context->opt_##name;						\
> +											\
> +	if (context->orig_opt_##name != OSNOISE_OPTION_INIT_VAL)			\
> +		return context->orig_opt_##name;					\
> +											\
> +	context->orig_opt_##name = osnoise_options_get_option(option_str);		\
> +											\
> +	return context->orig_opt_##name;						\
> +}											\
> +											\

What you could have done is not make this into a super macro (as there's
only one instance of it). And then add a patch that turns it into this
macro as the first patch of a series that adds another user.

Because I don't understand why this exists when it only has one user.

-- Steve

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH V2 1/6] rtla/osnoise: Add helper functions to manipulate osnoise/options
  2023-02-01 19:23   ` Steven Rostedt
@ 2023-02-07 20:04     ` Daniel Bristot de Oliveira
  0 siblings, 0 replies; 11+ messages in thread
From: Daniel Bristot de Oliveira @ 2023-02-07 20:04 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Jonathan Corbet, Juri Lelli, Clark Williams, Bagas Sanjaya,
	linux-trace-devel, linux-doc, linux-kernel

On 2/1/23 20:23, Steven Rostedt wrote:
> On Tue, 31 Jan 2023 17:30:02 +0100
> Daniel Bristot de Oliveira <bristot@kernel.org> wrote:
> 
>> Add some helper functions to read and set the on/off osnoise/options.
>> No usage in this patch.
>>
>> In preparation for hwnoise tool.
> 
> Honestly, I don't see why patches 1-5 isn't a single patch. It's not that
> big of a change, and everything in 1-5 is to do what 5 does. Breaking it up
> this fine grain isn't helpful in reviewing, as I found that I had to apply
> 1-5 and then do a diff from where I started to make sense of any of it.

Maybe what is missing is a clear:

In preparation for hwnoise tool.

IMHO, it is easier to understand by using small "logical" pieces in preparation
for the "conclusion." But I see your point, and it does not hurt :-).

I will reduce the number of patches.

-- Daniel
> 
> -- Steve
> 
> 
>>
>> Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
>> Cc: Daniel Bristot de Oliveira <bristot@kernel.org>
>> Cc: Steven Rostedt <rostedt@goodmis.org>
>> Cc: Jonathan Corbet <corbet@lwn.net>
>> ---
>>


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-02-07 20:04 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-31 16:30 [PATCH V2 0/6] rtla: Add hwnoise tool Daniel Bristot de Oliveira
2023-01-31 16:30 ` [PATCH V2 1/6] rtla/osnoise: Add helper functions to manipulate osnoise/options Daniel Bristot de Oliveira
2023-02-01 19:23   ` Steven Rostedt
2023-02-07 20:04     ` Daniel Bristot de Oliveira
2023-02-01 19:25   ` Steven Rostedt
2023-01-31 16:30 ` [PATCH V2 2/6] rtla/osnoise: Add OSNOISE_IRQ_DISABLE option Daniel Bristot de Oliveira
2023-01-31 16:30 ` [PATCH V2 3/6] rtla/osnoise: Add the mode abstraction Daniel Bristot de Oliveira
2023-01-31 16:30 ` [PATCH V2 4/6] rtla/osnoise_top: Pass the params to the usage function Daniel Bristot de Oliveira
2023-01-31 16:30 ` [PATCH V2 5/6] rtla: Add hwnoise tool Daniel Bristot de Oliveira
2023-01-31 16:30 ` [PATCH V2 6/6] Documentation/rtla: Add hwnoise man page Daniel Bristot de Oliveira
2023-02-01  9:10   ` Bagas Sanjaya

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).