Thread (76 messages) read the whole thread 76 messages, 12 authors, 2023-10-09

Re: [RFC PATCH v2 02/20] tracing/filters: Enable filtering a cpumask field by another cpumask

From: Valentin Schneider <vschneid@redhat.com>
Date: 2023-07-31 11:21:03
Also in: bpf, kvm, linux-doc, linux-kselftest, linux-mm, lkml, rcu

On 29/07/23 15:09, Steven Rostedt wrote:
On Wed, 26 Jul 2023 12:41:48 -0700
Josh Poimboeuf [off-list ref] wrote:
quoted
On Thu, Jul 20, 2023 at 05:30:38PM +0100, Valentin Schneider wrote:
quoted
 int filter_assign_type(const char *type)
 {
-	if (strstr(type, "__data_loc") && strstr(type, "char"))
-		return FILTER_DYN_STRING;
+	if (strstr(type, "__data_loc")) {
+		if (strstr(type, "char"))
+			return FILTER_DYN_STRING;
+		if (strstr(type, "cpumask_t"))
+			return FILTER_CPUMASK;
+		}
The closing bracket has the wrong indentation.
quoted
+		/* Copy the cpulist between { and } */
+		tmp = kmalloc((i - maskstart) + 1, GFP_KERNEL);
+		strscpy(tmp, str + maskstart, (i - maskstart) + 1);
Need to check kmalloc() failure?  And also free tmp?
I came to state the same thing.

Also, when you do an empty for loop:

      for (; str[i] && str[i] != '}'; i++);

Always put the semicolon on the next line, otherwise it is really easy
to think that the next line is part of the for loop. That is, instead
of the above, do:

      for (; str[i] && str[i] != '}'; i++)
              ;
Interestingly I don't think I've ever encountered that variant, usually
having an empty line (which this lacks) and the indentation level is enough
to identify these - regardless, I'll change it.
-- Steve

quoted
quoted
+
+		pred->mask = kzalloc(cpumask_size(), GFP_KERNEL);
+		if (!pred->mask)
+			goto err_mem;
+
+		/* Now parse it */
+		if (cpulist_parse(tmp, pred->mask)) {
+			parse_error(pe, FILT_ERR_INVALID_CPULIST, pos + i);
+			goto err_free;
+		}
+
+		/* Move along */
+		i++;
+		if (field->filter_type == FILTER_CPUMASK)
+			pred->fn_num = FILTER_PRED_FN_CPUMASK;
+
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help