Thread (9 messages) 9 messages, 3 authors, 2025-09-02

Re: [PATCH v2 2/3] rtla: fix -C/--cgroup interface

From: Ivan Pravdin <hidden>
Date: 2025-09-02 18:09:36
Also in: linux-doc, lkml

On Fri, Aug 29, 2025 at 02:12:28PM -0500, Crystal Wood wrote:
On Tue, 2025-08-12 at 13:21 -0400, Ivan Pravdin wrote:
quoted
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.
I know these are the semantics that --trace implements, but they're
rather atypical... especially -C=group.
The new semantics allow for -C [group] which is the same as -t
[filename] that has been fixed for -t/--trace.
quoted
@@ -559,12 +559,17 @@ 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;
If we're going to be consistently using these semantics, we should move
this logic into a utility function rather than open-coding it
everywhere.
Sure, I will move it into a utility function in the next version.
 
Also, theoretically, shouldn't we be advancing optind for the case where
that's consumed?  Not that it matters much if we don't have positional
arguments once the options begin, and if we did, then allowing
"--arg optional-thing" would be ambiguous...
It does seem that we should advance optind when optional argument is
provided. Good catch. I will fix it in the next version.
-Crystal
	Ivan Pravdin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help