[DTrace-devel] [PATCH] test: adjust sdt.tst.args.d for task_rename tracepoint differences

Kris Van Hees kris.van.hees at oracle.com
Tue Aug 12 18:03:28 UTC 2025


On Tue, Aug 12, 2025 at 01:54:22PM -0400, Eugene Loh wrote:
> On 8/12/25 08:41, Kris Van Hees via DTrace-devel wrote:
> 
> > As of kernel 6.14, the task_rename tracepoint provides only 3 arguments
> > rather than 4 (the pid got dropped).
> > 
> > Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
> > ---
> >   test/unittest/sdt/tst.args-3.d                | 42 +++++++++++++++++++
> >   .../unittest/sdt/{tst.args.r => tst.args-3.r} |  0
> >   test/unittest/sdt/tst.args-3.x                | 14 +++++++
> >   .../unittest/sdt/{tst.args.d => tst.args-4.d} |  0
> >   test/unittest/sdt/tst.args-4.r                |  2 +
> >   test/unittest/sdt/tst.args-4.x                | 13 ++++++
> >   6 files changed, 71 insertions(+)
> >   create mode 100644 test/unittest/sdt/tst.args-3.d
> >   rename test/unittest/sdt/{tst.args.r => tst.args-3.r} (100%)
> >   create mode 100755 test/unittest/sdt/tst.args-3.x
> >   rename test/unittest/sdt/{tst.args.d => tst.args-4.d} (100%)
> >   create mode 100644 test/unittest/sdt/tst.args-4.r
> >   create mode 100755 test/unittest/sdt/tst.args-4.x
> > 
> > diff --git a/test/unittest/sdt/tst.args-3.d b/test/unittest/sdt/tst.args-3.d
> > new file mode 100644
> > index 000000000..ae070cb72
> > --- /dev/null
> > +++ b/test/unittest/sdt/tst.args-3.d
> > @@ -0,0 +1,42 @@
> > +/*
> > + * Oracle Linux DTrace.
> > + * Copyright (c) 2021, 2025, Oracle and/or its affiliates. All rights reserved.
> > + * Licensed under the Universal Permissive License v 1.0 as shown at
> > + * http://oss.oracle.com/licenses/upl.
> > + */
> > +
> > +#pragma D option destructive
> > +#pragma D option quiet
> > +
> > +/*
> > + * Ensure that arguments to SDT probes can be retrieved correctly.
> > + */
> > +BEGIN
> > +{
> > +	/* Timeout after 5 seconds */
> > +	timeout = timestamp + 5000000000;
> > +	system("ls >/dev/null");
> > +}
> > +
> > +/*
> > + * The 'task_rename' tracepoint passes the following arguments:
> > + *
> > + *	char	oldcomm[16]
> > + *	char	newcomm[16]
> > + *	short	oom_score_adj
> > + */
> > +this char v;
> > +this bool done;
> > +
> > +sdt:task::task_rename
> > +{
> > +	printf("PID OK, oldcomm [%s], newcomm [%s], oom_score_adj %hd\n", stringof(args[0]), stringof(args[1]), args[2]);
> 
> It makes no sense to report that PID is okay.  What is pid?  It isn't in the
> test and it isn't in the probe.  It is only in other kernel versions and in
> some other test.  Emitting a PID OK label is not necessary for matching with
> the older test since different .r files are used.

I opted for keeping the output of the two tests the same because it essentially
is the same test, just on different versions of the kernel.  I do not want to
give the impression in any way that they are different tests.  I think that
having distinct output may make this less clear.  Since it is a constant string
in both cases, there is no downside to this.

> > +	exit(0);
> > +}
> > +
> > +profile:::tick-1
> > +/timestamp > timeout/
> > +{
> > +	trace("test timed out");
> > +	exit(1);
> > +}
> > diff --git a/test/unittest/sdt/tst.args.r b/test/unittest/sdt/tst.args-3.r
> > similarity index 100%
> > rename from test/unittest/sdt/tst.args.r
> > rename to test/unittest/sdt/tst.args-3.r
> 
> Again, PID OK makes no sense here.

See above.

> > diff --git a/test/unittest/sdt/tst.args-3.x b/test/unittest/sdt/tst.args-3.x
> > new file mode 100755
> > index 000000000..80c135543
> > --- /dev/null
> > +++ b/test/unittest/sdt/tst.args-3.x
> > @@ -0,0 +1,14 @@
> > +#!/bin/bash
> > +
> > +read MAJOR MINOR <<< `uname -r | grep -Eo '^[0-9]+\.[0-9]+' | tr '.' ' '`
> > +
> > +if [ $MAJOR -lt 6 ]; then
> > +	echo "tst.args-3.d disabled on kernels < 6.14"
> > +	exit 2
> > +fi
> > +if [ $MAJOR -eq 6 -a $MINOR -lt 14 ]; then
> > +	echo "tst.args-3.d disabled on kernels < 6.14"
> > +	exit 2
> > +fi
> > +
> > +exit 0
> > diff --git a/test/unittest/sdt/tst.args.d b/test/unittest/sdt/tst.args-4.d
> > similarity index 100%
> > rename from test/unittest/sdt/tst.args.d
> > rename to test/unittest/sdt/tst.args-4.d
> > diff --git a/test/unittest/sdt/tst.args-4.r b/test/unittest/sdt/tst.args-4.r
> > new file mode 100644
> > index 000000000..52854c0b3
> > --- /dev/null
> > +++ b/test/unittest/sdt/tst.args-4.r
> > @@ -0,0 +1,2 @@
> > +PID OK, oldcomm [dtrace], newcomm [sh], oom_score_adj 0
> > +
> > diff --git a/test/unittest/sdt/tst.args-4.x b/test/unittest/sdt/tst.args-4.x
> > new file mode 100755
> > index 000000000..74a0234bf
> > --- /dev/null
> > +++ b/test/unittest/sdt/tst.args-4.x
> > @@ -0,0 +1,13 @@
> > +#!/bin/bash
> > +
> > +read MAJOR MINOR <<< `uname -r | grep -Eo '^[0-9]+\.[0-9]+' | tr '.' ' '`
> > +
> > +if [ $MAJOR -lt 6 ]; then
> > +	exit 0
> > +fi
> > +if [ $MAJOR -eq 6 -a $MINOR -lt 14 ]; then
> > +	exit 0
> > +fi
> > +
> > +echo "tst.args-4.d disabled on kernels < 6.14"
> > +exit 2
> 
> The < should be >=.

Ah yes, thanks.  v2 on the way



More information about the DTrace-devel mailing list