[DTrace-devel] [PATCH] test: use better condidate probe

Kris Van Hees kris.van.hees at oracle.com
Wed May 1 12:49:18 UTC 2024


Withdrawing this for now - there is something else fishy going on with stacks,
that is not resolved by this change.

On Wed, May 01, 2024 at 01:06:49AM -0400, Kris Van Hees wrote:
> Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
> ---
>  test/unittest/aggs/tst.stack.d    | 17 ++++++++---------
>  test/unittest/stack/tst.stack.d   |  2 +-
>  test/unittest/stack/tst.stack.r.p | 12 ++++++------
>  3 files changed, 15 insertions(+), 16 deletions(-)
> 
> diff --git a/test/unittest/aggs/tst.stack.d b/test/unittest/aggs/tst.stack.d
> index 6c3c530e..c270f5ac 100644
> --- a/test/unittest/aggs/tst.stack.d
> +++ b/test/unittest/aggs/tst.stack.d
> @@ -1,19 +1,18 @@
>  /*
>   * Oracle Linux DTrace.
> - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2023, 2024, 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.
>   */
>  
> -/* @@trigger: periodic_output */
>  /* @@nosort */
>  
>  #pragma D option quiet
>  
> -fbt:vmlinux:hrtimer_nanosleep:entry /pid == $target/ { func(caller); printf("\n"); }
> -fbt:vmlinux:hrtimer_nanosleep:entry /pid == $target/ {  mod(caller); printf("\n"); }
> -fbt:vmlinux:hrtimer_nanosleep:entry /pid == $target/ {  sym(caller); printf("\n"); }
> -fbt:vmlinux:hrtimer_nanosleep:entry /pid == $target/ { stack(5); }
> -fbt:vmlinux:hrtimer_nanosleep:entry /pid == $target/ { @['a', func(caller), mod(caller), sym(caller), stack(5), 4] = sum(  34); }
> -fbt:vmlinux:hrtimer_nanosleep:entry /pid == $target/ { @['a', func(caller), mod(caller), sym(caller), stack(5), 4] = sum(1200); }
> -fbt:vmlinux:hrtimer_nanosleep:entry /pid == $target/ { exit(0); }
> +fbt:vmlinux:schedule:entry { func(caller); printf("\n"); }
> +fbt:vmlinux:schedule:entry {  mod(caller); printf("\n"); }
> +fbt:vmlinux:schedule:entry {  sym(caller); printf("\n"); }
> +fbt:vmlinux:schedule:entry { stack(5); }
> +fbt:vmlinux:schedule:entry { @['a', func(caller), mod(caller), sym(caller), stack(5), 4] = sum(  34); }
> +fbt:vmlinux:schedule:entry { @['a', func(caller), mod(caller), sym(caller), stack(5), 4] = sum(1200); }
> +fbt:vmlinux:schedule:entry { exit(0); }
> diff --git a/test/unittest/stack/tst.stack.d b/test/unittest/stack/tst.stack.d
> index 05c2644b..10ee1270 100644
> --- a/test/unittest/stack/tst.stack.d
> +++ b/test/unittest/stack/tst.stack.d
> @@ -18,7 +18,7 @@ BEGIN
>  	system("echo write something > /dev/null");
>  }
>  
> -fbt::ksys_write:entry
> +fbt::schedule:entry
>  {
>  	stack(1);
>  	stack(2);
> diff --git a/test/unittest/stack/tst.stack.r.p b/test/unittest/stack/tst.stack.r.p
> index 895f96f5..5ce889ac 100755
> --- a/test/unittest/stack/tst.stack.r.p
> +++ b/test/unittest/stack/tst.stack.r.p
> @@ -1,17 +1,17 @@
>  #!/usr/bin/gawk -f
>  
> -/ksys_write/ {
> +/schedule/ {
>      # check probe
> -    if ( $1 != "ksys_write:entry" ) {
> -        print "ERROR: expected fun:prb = ksys_write:entry";
> +    if ( $1 != "schedule:entry" ) {
> +        print "ERROR: expected fun:prb = schedule:entry";
>          exit 1;
>      }
>  
>      # check stack(1)
>      getline;
> -    if (index($1, "`ksys_write+0x") == 0 &&
> -        match($1, "`ksys_write$") == 0) {
> -        print "ERROR: expected leaf frame to be ksys_write";
> +    if (index($1, "`schedule+0x") == 0 &&
> +        match($1, "`schedule$") == 0) {
> +        print "ERROR: expected leaf frame to be schedule";
>          exit 1;
>      }
>      FRAME1 = $1;
> -- 
> 2.39.3
> 



More information about the DTrace-devel mailing list