Re: [PATCH v4 6/7] tracing/probes: Add this_cpu_read() and this_cpu_ptr() dereference method to fetcharg
From: Google
Date: Mon Jun 15 2026 - 21:15:34 EST
On Mon, 15 Jun 2026 10:14:54 +0900
"Masami Hiramatsu (Google)" <mhiramat@xxxxxxxxxx> wrote:
> + case FETCH_OP_DEREF_CPU:
> + val = (unsigned long)this_cpu_ptr((void __percpu *)val);
> + ret = probe_mem_read(&val, (void *)val, sizeof(val));
> + break;
> + case FETCH_OP_CPU_PTR:
> + val = (unsigned long)this_cpu_ptr((void __percpu *)val);
> + ret = 0;
> + break;
Hmm, maybe I can just convert the FETCH_OP_DEREF_CPU to
FETCH_OP_CPU_PTR + FETCH_OP_DEREF to simply the code.
> + default:
> + lval = llval;
> + goto out;
> + }
> if (ret)
> return ret;
> + llval = lval;
> code++;
> } while (1);
> +out:
>
> s3 = code;
> stage3:
> @@ -181,6 +195,10 @@ process_fetch_insn_bottom(struct fetch_insn *code, unsigned long val,
> case FETCH_OP_ST_UMEM:
> probe_mem_read_user(dest, (void *)val + code->offset, code->size);
> break;
> + case FETCH_OP_ST_CPUMEM:
> + val = (unsigned long)this_cpu_ptr((void __percpu *)val);
> + probe_mem_read(dest, (void *)val, code->size);
> + break;
Then, I can just drop this change.
Thanks,
--
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>