From: Kris Van Hees <kris.van.hees@oracle.com>
To: eugene.loh@oracle.com
Cc: dtrace@lists.linux.dev, dtrace-devel@oss.oracle.com
Subject: Re: [DTrace-devel] [PATCH 2/2] test: Skip pid-0 tests on oversubscribed systems
Date: Tue, 15 Apr 2025 11:32:38 -0400 [thread overview]
Message-ID: <Z/58FonIo0WSzzUh@oracle.com> (raw)
In-Reply-To: <20250414201959.31327-2-eugene.loh@oracle.com>
On Mon, Apr 14, 2025 at 04:19:59PM -0400, eugene.loh--- via DTrace-devel wrote:
> From: Eugene Loh <eugene.loh@oracle.com>
>
> A number of tests check "tick-n /pid==0/" probes. The problem
> with this is that a tick-n probe runs on a specific CPU. If that
> CPU is fully subscribed, then pid 0 (swapper) will not run. Thus,
> the test will take a long time, only to time out.
>
> Change these tests to use profile-n instead of tick-n probes,
> improving chances that the test probe will fire on a less subscribed
> CPU.
>
> Therefore, also change the .r.p post-processing file so that it uses
> only one output line (in case two CPUs manage to write output).
>
> Finally, add skip files in case pid 0 does not fire on any CPU.
>
> Signed-off-by: Eugene Loh <eugene.loh@oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees@oracle.com>
... although I think it would be best to have a single .x file and then
create symbolic links for its copies under different names.
> ---
> test/unittest/ustack/tst.kthread.d | 4 ++--
> test/unittest/ustack/tst.kthread.x | 5 +++++
> test/unittest/ustack/tst.uaddr-pid0.d | 4 ++--
> test/unittest/ustack/tst.uaddr-pid0.r.p | 4 ++--
> test/unittest/ustack/tst.uaddr-pid0.x | 5 +++++
> test/unittest/ustack/tst.ufunc-pid0.d | 4 ++--
> test/unittest/ustack/tst.ufunc-pid0.r.p | 4 ++--
> test/unittest/ustack/tst.ufunc-pid0.x | 5 +++++
> test/unittest/ustack/tst.usym-pid0.d | 4 ++--
> test/unittest/ustack/tst.usym-pid0.r.p | 4 ++--
> test/unittest/ustack/tst.usym-pid0.x | 5 +++++
> 11 files changed, 34 insertions(+), 14 deletions(-)
> create mode 100755 test/unittest/ustack/tst.kthread.x
> create mode 100755 test/unittest/ustack/tst.uaddr-pid0.x
> create mode 100755 test/unittest/ustack/tst.ufunc-pid0.x
> create mode 100755 test/unittest/ustack/tst.usym-pid0.x
>
> diff --git a/test/unittest/ustack/tst.kthread.d b/test/unittest/ustack/tst.kthread.d
> index c6252b742..83ae6f7c6 100644
> --- a/test/unittest/ustack/tst.kthread.d
> +++ b/test/unittest/ustack/tst.kthread.d
> @@ -1,6 +1,6 @@
> /*
> * Oracle Linux DTrace.
> - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2013, 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.
> */
> @@ -16,4 +16,4 @@
>
> #pragma D option quiet
>
> -tick-100msec / pid == 0 / { ustack(); exit(0); }
> +profile-100msec / pid == 0 / { ustack(); exit(0); }
> diff --git a/test/unittest/ustack/tst.kthread.x b/test/unittest/ustack/tst.kthread.x
> new file mode 100755
> index 000000000..b5fe7177a
> --- /dev/null
> +++ b/test/unittest/ustack/tst.kthread.x
> @@ -0,0 +1,5 @@
> +#!/bin/sh
> +
> +$dtrace -qn 'profile-100ms /pid == 0/ { exit(0) }
> + tick-1s { trace("cannot profile pid 0; oversubscribed system?"); exit(2) }'
> +exit $?
> diff --git a/test/unittest/ustack/tst.uaddr-pid0.d b/test/unittest/ustack/tst.uaddr-pid0.d
> index 263a7ca94..ab54eea40 100644
> --- a/test/unittest/ustack/tst.uaddr-pid0.d
> +++ b/test/unittest/ustack/tst.uaddr-pid0.d
> @@ -1,6 +1,6 @@
> /*
> * Oracle Linux DTrace.
> - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2023, 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.
> */
> @@ -9,7 +9,7 @@
>
> #pragma D option quiet
>
> -tick-1
> +profile-1
> /pid == $target/
> {
> uaddr(ucaller);
> diff --git a/test/unittest/ustack/tst.uaddr-pid0.r.p b/test/unittest/ustack/tst.uaddr-pid0.r.p
> index 9203dc824..78ab8e59d 100755
> --- a/test/unittest/ustack/tst.uaddr-pid0.r.p
> +++ b/test/unittest/ustack/tst.uaddr-pid0.r.p
> @@ -1,4 +1,4 @@
> #!/usr/bin/gawk -f
>
> -# remove trailing blanks
> -{ sub(" *$", ""); print }
> +# remove trailing blanks, use only one line
> +{ sub(" *$", ""); print; exit }
> diff --git a/test/unittest/ustack/tst.uaddr-pid0.x b/test/unittest/ustack/tst.uaddr-pid0.x
> new file mode 100755
> index 000000000..b5fe7177a
> --- /dev/null
> +++ b/test/unittest/ustack/tst.uaddr-pid0.x
> @@ -0,0 +1,5 @@
> +#!/bin/sh
> +
> +$dtrace -qn 'profile-100ms /pid == 0/ { exit(0) }
> + tick-1s { trace("cannot profile pid 0; oversubscribed system?"); exit(2) }'
> +exit $?
> diff --git a/test/unittest/ustack/tst.ufunc-pid0.d b/test/unittest/ustack/tst.ufunc-pid0.d
> index f076782aa..cd34275f1 100644
> --- a/test/unittest/ustack/tst.ufunc-pid0.d
> +++ b/test/unittest/ustack/tst.ufunc-pid0.d
> @@ -1,6 +1,6 @@
> /*
> * Oracle Linux DTrace.
> - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2023, 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.
> */
> @@ -9,7 +9,7 @@
>
> #pragma D option quiet
>
> -tick-1
> +profile-1
> /pid == $target/
> {
> ufunc(ucaller);
> diff --git a/test/unittest/ustack/tst.ufunc-pid0.r.p b/test/unittest/ustack/tst.ufunc-pid0.r.p
> index 9203dc824..78ab8e59d 100755
> --- a/test/unittest/ustack/tst.ufunc-pid0.r.p
> +++ b/test/unittest/ustack/tst.ufunc-pid0.r.p
> @@ -1,4 +1,4 @@
> #!/usr/bin/gawk -f
>
> -# remove trailing blanks
> -{ sub(" *$", ""); print }
> +# remove trailing blanks, use only one line
> +{ sub(" *$", ""); print; exit }
> diff --git a/test/unittest/ustack/tst.ufunc-pid0.x b/test/unittest/ustack/tst.ufunc-pid0.x
> new file mode 100755
> index 000000000..b5fe7177a
> --- /dev/null
> +++ b/test/unittest/ustack/tst.ufunc-pid0.x
> @@ -0,0 +1,5 @@
> +#!/bin/sh
> +
> +$dtrace -qn 'profile-100ms /pid == 0/ { exit(0) }
> + tick-1s { trace("cannot profile pid 0; oversubscribed system?"); exit(2) }'
> +exit $?
> diff --git a/test/unittest/ustack/tst.usym-pid0.d b/test/unittest/ustack/tst.usym-pid0.d
> index d2f5ec5de..9aceab355 100644
> --- a/test/unittest/ustack/tst.usym-pid0.d
> +++ b/test/unittest/ustack/tst.usym-pid0.d
> @@ -1,6 +1,6 @@
> /*
> * Oracle Linux DTrace.
> - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2023, 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.
> */
> @@ -9,7 +9,7 @@
>
> #pragma D option quiet
>
> -tick-1
> +profile-1
> /pid == $target/
> {
> usym(ucaller);
> diff --git a/test/unittest/ustack/tst.usym-pid0.r.p b/test/unittest/ustack/tst.usym-pid0.r.p
> index 9203dc824..78ab8e59d 100755
> --- a/test/unittest/ustack/tst.usym-pid0.r.p
> +++ b/test/unittest/ustack/tst.usym-pid0.r.p
> @@ -1,4 +1,4 @@
> #!/usr/bin/gawk -f
>
> -# remove trailing blanks
> -{ sub(" *$", ""); print }
> +# remove trailing blanks, use only one line
> +{ sub(" *$", ""); print; exit }
> diff --git a/test/unittest/ustack/tst.usym-pid0.x b/test/unittest/ustack/tst.usym-pid0.x
> new file mode 100755
> index 000000000..b5fe7177a
> --- /dev/null
> +++ b/test/unittest/ustack/tst.usym-pid0.x
> @@ -0,0 +1,5 @@
> +#!/bin/sh
> +
> +$dtrace -qn 'profile-100ms /pid == 0/ { exit(0) }
> + tick-1s { trace("cannot profile pid 0; oversubscribed system?"); exit(2) }'
> +exit $?
> --
> 2.43.5
>
>
> _______________________________________________
> DTrace-devel mailing list
> DTrace-devel@oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/dtrace-devel
next prev parent reply other threads:[~2025-04-15 15:32 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-14 20:19 [PATCH 1/2] test: Remove orphaned tst.lockstat.r eugene.loh
2025-04-14 20:19 ` [PATCH 2/2] test: Skip pid-0 tests on oversubscribed systems eugene.loh
2025-04-15 15:32 ` Kris Van Hees [this message]
2025-04-15 15:10 ` [DTrace-devel] [PATCH 1/2] test: Remove orphaned tst.lockstat.r Kris Van Hees
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z/58FonIo0WSzzUh@oracle.com \
--to=kris.van.hees@oracle.com \
--cc=dtrace-devel@oss.oracle.com \
--cc=dtrace@lists.linux.dev \
--cc=eugene.loh@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.