sdt "sname" removal

Andriy Gapon avg at FreeBSD.org
Thu Oct 31 06:50:13 UTC 2013


on 31/10/2013 05:36 Mark Johnston said the following:
> On Tue, Oct 29, 2013 at 11:11:07PM +0200, Andriy Gapon wrote:
>>
>> I never understood why FreeBSD SDT as opposed to upstream SDT requires the same
>> or almost the same probe name to be specified twice.  This seems to be silly and
>> a little bit error-prone.
>> In other words, I do not see any reason not to re-use the original upstream
>> trick where double underscore in a providers name in the C code gets converted
>> to a single dash in a DTrace provider name. [*]
>>
>> So here is my take at that:
>> http://people.freebsd.org/~avg/sdt-sname-removal.diff
>>
>> An inline preview of the change:
>> -SDT_PROBE_DEFINE1(priv, kernel, priv_check, priv_ok, priv-ok, "int");
>> -SDT_PROBE_DEFINE1(priv, kernel, priv_check, priv_err, priv-err, "int");
>> +SDT_PROBE_DEFINE1(priv, kernel, priv_check, priv__ok, "int");
>> +SDT_PROBE_DEFINE1(priv, kernel, priv_check, priv__err, "int");
>>
>> It's possible that I missed some places where old style SDT_PROBE_DEFINE macros
>> are used or where an old probe name is used with SDT_PROBE_ARGTYPE or SDT_PROBE.
> 
> A good way to test this is to compare the output of 'dtrace -lv' with and
> without your change. If nothing changes, I'd be pretty confident that
> the diff is correct.

Provided that my kernel has all of the SDT probes :-)

>>
>> Please test, review, comment, etc.
> 
> I don't think this diff will apply cleanly to head - I've made some changes
> that will cause conflicts, and the diff doesn't touch netinet/in_kdtrace.c
> or kern/subr_devstat.c.

Oh, yes, my head is from ~ 2 month ago.  Need to update ASAP and will rebase the
change then.

> Could you also update the SDT(9) man page? Also
> the "strlcpy(name, ..." immediately before the loop you added to sdt.c
> becomes redundant.

Good points.  Will fix.

-- 
Andriy Gapon


More information about the freebsd-hackers mailing list