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: [PATCH 15/22] test: Clean up the specsize tests
Date: Sat, 14 Sep 2024 13:57:15 -0400 [thread overview]
Message-ID: <ZuXOeyBUMH/igYBW@oracle.com> (raw)
In-Reply-To: <20240829052219.3234-15-eugene.loh@oracle.com>
On Thu, Aug 29, 2024 at 01:22:12AM -0400, eugene.loh@oracle.com wrote:
> From: Eugene Loh <eugene.loh@oracle.com>
>
> The tests had actions like
> printf("%lld: Lots of data\n", x);
> printf("%lld: Has to be crammed into this buffer\n", x);
> printf("%lld: Until it overflows\n", x);
> printf("%lld: And causes flops\n", x);
> suggesting that these strings were crowding the buffer, but these
> strings are not passed from producer to consumer at all.
>
> The tests also only tested one clause per speculation. It would be
> nice also to test multiple clauses per speculation.
>
> There is much replicated code from one of the tests to the other, a
> shortcoming that is amplified if we want to test more specsize values,
> which is the case when we test multiple clauses per speculation.
>
> Therefore, replace the multiple tests with a single test that checks
> multiple clauses per speculation and more values of specsize.
>
> Signed-off-by: Eugene Loh <eugene.loh@oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees@oracle.com>
> ---
> .../speculation/tst.SpecSizeVariations.r | 68 +++++++++++++++++
> .../speculation/tst.SpecSizeVariations.sh | 74 +++++++++++++++++++
> .../speculation/tst.SpecSizeVariations4.d | 66 -----------------
> .../speculation/tst.SpecSizeVariations4.r | 5 --
> .../speculation/tst.SpecSizeVariations5.d | 61 ---------------
> .../speculation/tst.SpecSizeVariations5.r | 7 --
> 6 files changed, 142 insertions(+), 139 deletions(-)
> create mode 100644 test/unittest/speculation/tst.SpecSizeVariations.r
> create mode 100755 test/unittest/speculation/tst.SpecSizeVariations.sh
> delete mode 100644 test/unittest/speculation/tst.SpecSizeVariations4.d
> delete mode 100644 test/unittest/speculation/tst.SpecSizeVariations4.r
> delete mode 100644 test/unittest/speculation/tst.SpecSizeVariations5.d
> delete mode 100644 test/unittest/speculation/tst.SpecSizeVariations5.r
>
> diff --git a/test/unittest/speculation/tst.SpecSizeVariations.r b/test/unittest/speculation/tst.SpecSizeVariations.r
> new file mode 100644
> index 00000000..51f0596c
> --- /dev/null
> +++ b/test/unittest/speculation/tst.SpecSizeVariations.r
> @@ -0,0 +1,68 @@
> +Speculative buffer ID: 1
> +counts: 0 1
> +
> +Speculative buffer ID: 1
> +123456700
> +123456701
> +123456702
> +123456703
> +123456704
> +123456705
> +123456706
> +counts: 1 1
> +
> +Speculative buffer ID: 1
> +123456700
> +123456701
> +123456702
> +123456703
> +123456704
> +123456705
> +123456706
> +counts: 1 1
> +
> +Speculative buffer ID: 1
> +123456700
> +123456701
> +123456702
> +123456703
> +123456704
> +123456705
> +123456706
> +counts: 2 1
> +
> +Speculative buffer ID: 1
> +123456700
> +123456701
> +123456702
> +123456703
> +123456704
> +123456705
> +123456706
> +counts: 2 1
> +
> +Speculative buffer ID: 1
> +123456700
> +123456701
> +123456702
> +123456703
> +123456704
> +123456705
> +123456706
> +123456800
> +123456801
> +123456802
> +123456803
> +123456804
> +123456805
> +123456806
> +123456807
> +123456808
> +counts: 2 1
> +
> +-- @@stderr --
> +dtrace: 2 speculative drops
> +dtrace: 1 speculative drop
> +dtrace: 1 speculative drop
> +dtrace: 1 speculative drop
> +dtrace: 1 speculative drop
> diff --git a/test/unittest/speculation/tst.SpecSizeVariations.sh b/test/unittest/speculation/tst.SpecSizeVariations.sh
> new file mode 100755
> index 00000000..75e527d9
> --- /dev/null
> +++ b/test/unittest/speculation/tst.SpecSizeVariations.sh
> @@ -0,0 +1,74 @@
> +#!/bin/bash
> +
> +#
> +# Oracle Linux DTrace.
> +# Copyright (c) 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.
> +#
> +
> +dtrace=$1
> +
> +for x in 63 64 79 80 143 144; do
> + $dtrace $dt_flags -xspecsize=$x -qn '
> + BEGIN
> + {
> + x = 123456700ll;
> + self->nspeculate = 0;
> + self->ncommit = 0;
> + self->spec = speculation();
> + printf("Speculative buffer ID: %d\n", self->spec);
> + }
> +
> + /* 16 + 7 * 8 = 72 bytes */
> + BEGIN
> + {
> + speculate(self->spec);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + self->nspeculate++;
> + }
> +
> + BEGIN
> + {
> + x = 123456800ll;
> + }
> +
> + /* 16 + 9 * 8 = 88 bytes */
> + BEGIN
> + {
> + speculate(self->spec);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + printf("%lld\n", x++);
> + self->nspeculate++;
> + }
> +
> + BEGIN
> + {
> + commit(self->spec);
> + self->ncommit++;
> + }
> +
> + BEGIN
> + {
> + printf("counts: %d %d\n", self->nspeculate, self->ncommit);
> + exit(0);
> + }
> +
> + ERROR
> + {
> + exit(1);
> + }'
> +done
> diff --git a/test/unittest/speculation/tst.SpecSizeVariations4.d b/test/unittest/speculation/tst.SpecSizeVariations4.d
> deleted file mode 100644
> index 4221c89e..00000000
> --- a/test/unittest/speculation/tst.SpecSizeVariations4.d
> +++ /dev/null
> @@ -1,66 +0,0 @@
> -/*
> - * Oracle Linux DTrace.
> - * Copyright (c) 2006, 2023, 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.
> - */
> -
> -/*
> - * ASSERTION:
> - * Verify the behavior of speculations with changes in specsize.
> - *
> - * SECTION: Speculative Tracing/Options and Tuning;
> - * Options and Tunables/specsize
> - *
> - */
> -
> -#pragma D option quiet
> -#pragma D option specsize=39
> -
> -long long x;
> -
> -BEGIN
> -{
> - x = 123456789;
> - self->speculateFlag = 0;
> - self->commitFlag = 0;
> - self->spec = speculation();
> - printf("Speculative buffer ID: %d\n", self->spec);
> -}
> -
> -BEGIN
> -{
> - speculate(self->spec);
> - printf("%lld: Lots of data\n", x);
> - printf("%lld: Has to be crammed into this buffer\n", x);
> - printf("%lld: Until it overflows\n", x);
> - printf("%lld: And causes flops\n", x);
> - self->speculateFlag++;
> -
> -}
> -
> -BEGIN
> -/1 <= self->speculateFlag/
> -{
> - commit(self->spec);
> - self->commitFlag++;
> -}
> -
> -BEGIN
> -/1 <= self->commitFlag/
> -{
> - printf("Statement was executed\n");
> - exit(1);
> -}
> -
> -BEGIN
> -/1 > self->commitFlag/
> -{
> - printf("Statement wasn't executed\n");
> - exit(0);
> -}
> -
> -ERROR
> -{
> - exit(1);
> -}
> diff --git a/test/unittest/speculation/tst.SpecSizeVariations4.r b/test/unittest/speculation/tst.SpecSizeVariations4.r
> deleted file mode 100644
> index 7c4bb3b7..00000000
> --- a/test/unittest/speculation/tst.SpecSizeVariations4.r
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -Speculative buffer ID: 1
> -Statement wasn't executed
> -
> --- @@stderr --
> -dtrace: 1 speculative drop
> diff --git a/test/unittest/speculation/tst.SpecSizeVariations5.d b/test/unittest/speculation/tst.SpecSizeVariations5.d
> deleted file mode 100644
> index fb71dfed..00000000
> --- a/test/unittest/speculation/tst.SpecSizeVariations5.d
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -/*
> - * Oracle Linux DTrace.
> - * Copyright (c) 2006, 2021, 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.
> - */
> -
> -/*
> - * ASSERTION:
> - * Verify the behavior of speculations with changes in specsize.
> - *
> - * SECTION: Speculative Tracing/Options and Tuning;
> - * Options and Tunables/specsize
> - *
> - */
> -
> -#pragma D option quiet
> -#pragma D option specsize=40
> -
> -long long x;
> -
> -BEGIN
> -{
> - x = 123456789;
> - self->speculateFlag = 0;
> - self->commitFlag = 0;
> - self->spec = speculation();
> - printf("Speculative buffer ID: %d\n", self->spec);
> -}
> -
> -BEGIN
> -{
> - speculate(self->spec);
> - printf("%lld: Lots of data\n", x);
> - printf("%lld: Has to be crammed into this buffer\n", x);
> - printf("%lld: Until it overflows\n", x);
> - printf("%lld: And causes flops\n", x);
> - self->speculateFlag++;
> -
> -}
> -
> -BEGIN
> -/1 <= self->speculateFlag/
> -{
> - commit(self->spec);
> - self->commitFlag++;
> -}
> -
> -BEGIN
> -/1 <= self->commitFlag/
> -{
> - printf("Statement was executed\n");
> - exit(0);
> -}
> -
> -BEGIN
> -/1 > self->commitFlag/
> -{
> - printf("Statement wasn't executed\n");
> - exit(1);
> -}
> diff --git a/test/unittest/speculation/tst.SpecSizeVariations5.r b/test/unittest/speculation/tst.SpecSizeVariations5.r
> deleted file mode 100644
> index d09013a2..00000000
> --- a/test/unittest/speculation/tst.SpecSizeVariations5.r
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -Speculative buffer ID: 1
> -123456789: Lots of data
> -123456789: Has to be crammed into this buffer
> -123456789: Until it overflows
> -123456789: And causes flops
> -Statement was executed
> -
> --
> 2.43.5
>
next prev parent reply other threads:[~2024-09-14 17:57 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-29 5:21 [PATCH 01/22] test: Handle dtrace:::ERROR arg3 specially eugene.loh
2024-08-29 5:21 ` [PATCH 02/22] test: Clean up tests still expecting obsolete "at DIF offset NN" eugene.loh
2024-08-29 5:22 ` [PATCH 03/22] Action clear() should clear only one aggregation eugene.loh
2024-09-06 21:43 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 04/22] Remove unused "next" arg from dt_flowindent() eugene.loh
2024-09-06 22:01 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 05/22] Set the ERROR PRID in BPF code eugene.loh
2024-09-07 0:20 ` Kris Van Hees
2024-09-07 1:25 ` Eugene Loh
2024-09-07 2:03 ` Kris Van Hees
2024-09-12 20:33 ` Kris Van Hees
2024-09-13 17:21 ` Eugene Loh
2024-08-29 5:22 ` [PATCH 06/22] Fix provider lookup to use prv not prb eugene.loh
2024-09-13 20:01 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 07/22] Supply a default probe_info() eugene.loh
2024-09-14 0:31 ` Kris Van Hees
2024-09-14 1:59 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 08/22] dtprobed: Fix comment typo eugene.loh
2024-09-14 15:41 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 09/22] Clean up dtsd_* members eugene.loh
2024-09-14 15:40 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 10/22] Simplify dtrace_stmt_create() attr init eugene.loh
2024-09-14 16:25 ` Kris Van Hees
2024-09-14 16:32 ` [DTrace-devel] " Kris Van Hees
2024-09-19 17:38 ` Eugene Loh
2024-09-19 17:42 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 11/22] DTPPT_POST_OFFSETS is unused eugene.loh
2024-09-14 16:35 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 12/22] Remove apparently redundant assignment eugene.loh
2024-09-14 16:37 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 13/22] Eliminate unused args to dt_spec_buf_add_data() eugene.loh
2024-09-14 17:06 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 14/22] Both dted_uarg and dofe_uarg are unused eugene.loh
2024-09-14 17:08 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 15/22] test: Clean up the specsize tests eugene.loh
2024-09-14 17:57 ` Kris Van Hees [this message]
2024-08-29 5:22 ` [PATCH 16/22] test: Fix the speculative tests that checked bufsize eugene.loh
2024-09-14 18:00 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 17/22] test: Tweak spec sizes to bracket size jumps more narrowly eugene.loh
2024-09-14 18:07 ` Kris Van Hees
2024-09-17 18:05 ` Eugene Loh
2024-08-29 5:22 ` [PATCH 18/22] test: Remove tst.DTRACEFLT_BADADDR2.d dependency on specific PC eugene.loh
2024-09-14 18:10 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 19/22] test: Fix tst.probestar.d trigger eugene.loh
2024-09-14 18:13 ` Kris Van Hees
2024-10-17 22:53 ` Eugene Loh
2024-08-29 5:22 ` [PATCH 20/22] test: Annotate some XFAILs eugene.loh
2024-09-14 18:29 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 21/22] test: Fix DIRNAME eugene.loh
2024-08-29 20:25 ` [DTrace-devel] " Sam James
2024-09-14 18:43 ` Kris Van Hees
2024-08-29 5:22 ` [PATCH 22/22] test: Update tst.newprobes.sh xfail message eugene.loh
2024-09-14 18:45 ` Kris Van Hees
2024-08-29 15:57 ` [PATCH 01/22] test: Handle dtrace:::ERROR arg3 specially 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=ZuXOeyBUMH/igYBW@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox