Currently, user can only specify cgroup to the tracer's thread the
following ways:

    `-C[cgroup]`
    `-C[=cgroup]`
    `--cgroup[=cgroup]`

If user tries to specify cgroup as `-C [cgroup]` or `--cgroup [cgroup]`,
the parser silently fails and rtla's cgroup is used for the tracer
threads.

To make interface more user-friendly, allow user to specify cgroup in
the aforementioned way, i.e. `-C [cgroup]` and `--cgroup [cgroup]`

Change documentation to reflect this user interface change.

Signed-off-by: Ivan Pravdin <[email protected]>
---
 Documentation/tools/rtla/common_options.rst |  2 +-
 tools/tracing/rtla/src/osnoise_hist.c       | 16 +++++++-----
 tools/tracing/rtla/src/osnoise_top.c        | 16 +++++++-----
 tools/tracing/rtla/src/timerlat_hist.c      | 16 +++++++-----
 tools/tracing/rtla/src/timerlat_top.c       | 28 ++++++++-------------
 5 files changed, 41 insertions(+), 37 deletions(-)

diff --git a/Documentation/tools/rtla/common_options.rst 
b/Documentation/tools/rtla/common_options.rst
index 2dc1575210aa..3f292a12b7af 100644
--- a/Documentation/tools/rtla/common_options.rst
+++ b/Documentation/tools/rtla/common_options.rst
@@ -42,7 +42,7 @@
         - *f:prio* - use SCHED_FIFO with *prio*;
         - *d:runtime[us|ms|s]:period[us|ms|s]* - use SCHED_DEADLINE with 
*runtime* and *period* in nanoseconds.
 
-**-C**, **--cgroup**\[*=cgroup*]
+**-C**, **--cgroup** \[*cgroup*]
 
         Set a *cgroup* to the tracer's threads. If the **-C** option is passed 
without arguments, the tracer's thread will inherit **rtla**'s *cgroup*. 
Otherwise, the threads will be placed on the *cgroup* passed to the option.
 
diff --git a/tools/tracing/rtla/src/osnoise_hist.c 
b/tools/tracing/rtla/src/osnoise_hist.c
index 8d579bcee709..92c379fbe030 100644
--- a/tools/tracing/rtla/src/osnoise_hist.c
+++ b/tools/tracing/rtla/src/osnoise_hist.c
@@ -435,7 +435,7 @@ static void osnoise_hist_usage(char *usage)
                "         -T/--threshold us: the minimum delta to be considered 
a noise",
                "         -c/--cpus cpu-list: list of cpus to run osnoise 
threads",
                "         -H/--house-keeping cpus: run rtla control threads 
only on the given cpus",
-               "         -C/--cgroup[=cgroup_name]: set cgroup, if no 
cgroup_name is passed, the rtla's cgroup will be inherited",
+               "         -C/--cgroup [cgroup_name]: set cgroup, if no 
cgroup_name is passed, the rtla's cgroup will be inherited",
                "         -d/--duration time[s|m|h|d]: duration of the session",
                "         -D/--debug: print debug info",
                "         -t/--trace[file]: save the stopped trace to 
[file|osnoise_trace.txt]",
@@ -559,12 +559,16 @@ static struct osnoise_params
                        break;
                case 'C':
                        params->cgroup = 1;
-                       if (!optarg) {
-                               /* will inherit this cgroup */
+                       if (optarg) {
+                               if (optarg[0] == '=')
+                                       /* skip the = */
+                                       params->cgroup_name = &optarg[1];
+                               else
+                                       params->cgroup_name = optarg;
+                       } else if (optind < argc && argv[optind][0] != '-') {
+                               params->cgroup_name = argv[optind];
+                       } else {
                                params->cgroup_name = NULL;
-                       } else if (*optarg == '=') {
-                               /* skip the = */
-                               params->cgroup_name = ++optarg;
                        }
                        break;
                case 'D':
diff --git a/tools/tracing/rtla/src/osnoise_top.c 
b/tools/tracing/rtla/src/osnoise_top.c
index 2c12780c8aa9..d149c3c4ac11 100644
--- a/tools/tracing/rtla/src/osnoise_top.c
+++ b/tools/tracing/rtla/src/osnoise_top.c
@@ -269,7 +269,7 @@ static void osnoise_top_usage(struct osnoise_params 
*params, char *usage)
                "         -T/--threshold us: the minimum delta to be considered 
a noise",
                "         -c/--cpus cpu-list: list of cpus to run osnoise 
threads",
                "         -H/--house-keeping cpus: run rtla control threads 
only on the given cpus",
-               "         -C/--cgroup[=cgroup_name]: set cgroup, if no 
cgroup_name is passed, the rtla's cgroup will be inherited",
+               "         -C/--cgroup [cgroup_name]: set cgroup, if no 
cgroup_name is passed, the rtla's cgroup will be inherited",
                "         -d/--duration time[s|m|h|d]: duration of the session",
                "         -D/--debug: print debug info",
                "         -t/--trace[file]: save the stopped trace to 
[file|osnoise_trace.txt]",
@@ -394,12 +394,16 @@ struct osnoise_params *osnoise_top_parse_args(int argc, 
char **argv)
                        break;
                case 'C':
                        params->cgroup = 1;
-                       if (!optarg) {
-                               /* will inherit this cgroup */
+                       if (optarg) {
+                               if (optarg[0] == '=')
+                                       /* skip the = */
+                                       params->cgroup_name = &optarg[1];
+                               else
+                                       params->cgroup_name = optarg;
+                       } else if (optind < argc && argv[optind][0] != '-') {
+                               params->cgroup_name = argv[optind];
+                       } else {
                                params->cgroup_name = NULL;
-                       } else if (*optarg == '=') {
-                               /* skip the = */
-                               params->cgroup_name = ++optarg;
                        }
                        break;
                case 'D':
diff --git a/tools/tracing/rtla/src/timerlat_hist.c 
b/tools/tracing/rtla/src/timerlat_hist.c
index 9baea1b251ed..c397f6260054 100644
--- a/tools/tracing/rtla/src/timerlat_hist.c
+++ b/tools/tracing/rtla/src/timerlat_hist.c
@@ -726,7 +726,7 @@ static void timerlat_hist_usage(char *usage)
                "         -s/--stack us: save the stack trace at the IRQ if a 
thread latency is higher than the argument in us",
                "         -c/--cpus cpus: run the tracer only on the given 
cpus",
                "         -H/--house-keeping cpus: run rtla control threads 
only on the given cpus",
-               "         -C/--cgroup[=cgroup_name]: set cgroup, if no 
cgroup_name is passed, the rtla's cgroup will be inherited",
+               "         -C/--cgroup [cgroup_name]: set cgroup, if no 
cgroup_name is passed, the rtla's cgroup will be inherited",
                "         -d/--duration time[m|h|d]: duration of the session in 
seconds",
                "            --dump-tasks: prints the task running on all CPUs 
if stop conditions are met (depends on !--no-aa)",
                "         -D/--debug: print debug info",
@@ -885,12 +885,16 @@ static struct timerlat_params
                        break;
                case 'C':
                        params->cgroup = 1;
-                       if (!optarg) {
-                               /* will inherit this cgroup */
+                       if (optarg) {
+                               if (optarg[0] == '=')
+                                       /* skip the = */
+                                       params->cgroup_name = &optarg[1];
+                               else
+                                       params->cgroup_name = optarg;
+                       } else if (optind < argc && argv[optind][0] != '-') {
+                               params->cgroup_name = argv[optind];
+                       } else {
                                params->cgroup_name = NULL;
-                       } else if (*optarg == '=') {
-                               /* skip the = */
-                               params->cgroup_name = ++optarg;
                        }
                        break;
                case 'b':
diff --git a/tools/tracing/rtla/src/timerlat_top.c 
b/tools/tracing/rtla/src/timerlat_top.c
index c80b81c0b4da..73949d52cf41 100644
--- a/tools/tracing/rtla/src/timerlat_top.c
+++ b/tools/tracing/rtla/src/timerlat_top.c
@@ -423,15 +423,6 @@ timerlat_top_print_sum(struct osnoise_tool *top, struct 
timerlat_top_cpu *summar
        }
 }
 
-/*
- * clear_terminal - clears the output terminal
- */
-static void clear_terminal(struct trace_seq *seq)
-{
-       if (!config_debug)
-               trace_seq_printf(seq, "\033c");
-}
-
 /*
  * timerlat_print_stats - print data for all cpus
  */
@@ -449,9 +440,6 @@ timerlat_print_stats(struct timerlat_params *params, struct 
osnoise_tool *top)
        if (nr_cpus == -1)
                nr_cpus = sysconf(_SC_NPROCESSORS_CONF);
 
-       if (!params->quiet)
-               clear_terminal(trace->seq);
-
        timerlat_top_reset_sum(&summary);
 
        timerlat_top_header(params, top);
@@ -492,7 +480,7 @@ static void timerlat_top_usage(char *usage)
                "         -s/--stack us: save the stack trace at the IRQ if a 
thread latency is higher than the argument in us",
                "         -c/--cpus cpus: run the tracer only on the given 
cpus",
                "         -H/--house-keeping cpus: run rtla control threads 
only on the given cpus",
-               "         -C/--cgroup[=cgroup_name]: set cgroup, if no 
cgroup_name is passed, the rtla's cgroup will be inherited",
+               "         -C/--cgroup [cgroup_name]: set cgroup, if no 
cgroup_name is passed, the rtla's cgroup will be inherited",
                "         -d/--duration time[s|m|h|d]: duration of the session",
                "         -D/--debug: print debug info",
                "            --dump-tasks: prints the task running on all CPUs 
if stop conditions are met (depends on !--no-aa)",
@@ -650,12 +638,16 @@ static struct timerlat_params
                        break;
                case 'C':
                        params->cgroup = 1;
-                       if (!optarg) {
-                               /* will inherit this cgroup */
+                       if (optarg) {
+                               if (optarg[0] == '=')
+                                       /* skip the = */
+                                       params->cgroup_name = &optarg[1];
+                               else
+                                       params->cgroup_name = optarg;
+                       } else if (optind < argc && argv[optind][0] != '-') {
+                               params->cgroup_name = argv[optind];
+                       } else {
                                params->cgroup_name = NULL;
-                       } else if (*optarg == '=') {
-                               /* skip the = */
-                               params->cgroup_name = ++optarg;
                        }
                        break;
                case 'D':
-- 
2.48.1


Reply via email to