[DTrace-devel] [PATCH 2/7] Implement the sched provider

Nick Alcock nick.alcock at oracle.com
Tue May 16 16:28:48 UTC 2023


On 13 May 2023, Kris Van Hees spake thusly:
>> +	} else if (strcmp(prp->desc->prb, "preempt") == 0 ||
>> +		   strcmp(prp->desc->prb, "sleep") == 0) {
>> +		pd.id = DTRACE_IDNONE;
>> +		pd.prv = "sdt";
>> +		pd.mod = "sched";
>> +		pd.fun = "";
>> +		pd.prb = "sched_switch";
>> +
>> +		uprp = dt_probe_lookup(dtp, &pd);
>> +		assert(uprp != NULL);
>> +
>> +		dt_probe_add_dependent(dtp, uprp, prp);
>> +		dt_probe_enable(dtp, uprp);
>> 
>> So for on-cpu, the probedesc is the description of the underlying fbt
>> probe, but for preempt and sleep it's... what, something in sdt:sched,
>> which is what we're defining here, even though we do a
>> dt_probe_add_dependent() with it just like we do with on-cpu above?
>> 
>> I guess I don't understand what the underlying probe even is for preempt
>> and sleep.
>
> sdt:sched::<probe> is a kernel tracepoint.
> The probes that the sched provider is implementing are sched:::

Ahhh all is clear. It's amazingly easy to overlook that one little word :)

Reviewed-by: Nick Alcock <nick.alcock at oracle.com>

-- 
NULL && (void)



More information about the DTrace-devel mailing list