[DTrace-devel] [oracle/dtrace-utils] 9019e9: bpf: ensure speculations drops are reported when n...

euloh noreply at github.com
Wed May 31 19:18:31 UTC 2023


  Branch: refs/heads/dev
  Home:   https://github.com/oracle/dtrace-utils
  Commit: 9019e9271533c15b59ffda154ae45f9dde0695d7
      https://github.com/oracle/dtrace-utils/commit/9019e9271533c15b59ffda154ae45f9dde0695d7
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
    M bpf/speculation.c

  Log Message:
  -----------
  bpf: ensure speculations drops are reported when needed

The unrolled loop in dt_speculation() would return without recording
a speculation drop if an iteration was attempted beyond the configured
NSPEC value.  Depending on how the compiler optimized the code, that
could lead to an early return from the function without ever calling
dt_no_spec().

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: f8a705c49b606fa1f2f7098ea054771d8c4af70d
      https://github.com/oracle/dtrace-utils/commit/f8a705c49b606fa1f2f7098ea054771d8c4af70d
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
    M dtprobed/dtprobed.c

  Log Message:
  -----------
  dtprobed: delete redundant conditional

We've just tested this condition: it cannot be false.

This was pointed out in an earlier review, but I forgot to commit it.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 8dedee6fc6ef58c3818a32d84d2acc4bf87b1dce
      https://github.com/oracle/dtrace-utils/commit/8dedee6fc6ef58c3818a32d84d2acc4bf87b1dce
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
    M test/unittest/usdt/tst.manyprobes.sh

  Log Message:
  -----------
  test: Have manyprobes clean up uprobes

Once dtprobed cleans uprobes up automatically, this hack will no longer
be needed.  Meanwhile, we have to clean up lest a few runs of this test
lead to denial of service.

Note that the test did try to clean up uprobes but it referred to
uprobe_events with an incorrect pathname (leading to ineffectual cleanup
and, on some systems, test failures) and it cleaned up all uprobes, even
ones not created by this test.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 5ad4703d88db08b741b994ae1c960a907ca7e465
      https://github.com/oracle/dtrace-utils/commit/5ad4703d88db08b741b994ae1c960a907ca7e465
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
    M test/unittest/aggs/tst.allquant.d

  Log Message:
  -----------
  test: Convert tick-* probes to ioctl:entry for tst.allquant.d

Historically, many tests have used tick-* probes to get multiple
probe firings, but those probes can be unreliable, depending on
how a kernel is configured.  Tests that required very many probe
firings have been converted to ioctl:entry.  Tests that required
very few have been left alone.

Convert this "in-between" test as well.  It normally passes, but
with variable execution time and has even been observed to time out.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: e0d1c7cc0d2126be51a4bda16ac08ffb431acd4d
      https://github.com/oracle/dtrace-utils/commit/e0d1c7cc0d2126be51a4bda16ac08ffb431acd4d
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
    M test/unittest/options/tst.switchrate.sh

  Log Message:
  -----------
  test: Loosen tolerance for switchrate test

The timing expected for the switchrate test is rather approximate.
We want a "short" switchrate to run in a "short" amount of time and
a "long" one to run "long."  That's about it.

The actual times observed tend to be a little higher than the expected
times.  On some systems (ARM OL9?), the discrepancy is slightly higher.
This test, however, is simply concerned with whether the switchrate
option is working.

Loosen the tolerance for the test.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: c34edd22ecd3f4c02f2f5f5a0e9e84538ac43a80
      https://github.com/oracle/dtrace-utils/commit/c34edd22ecd3f4c02f2f5f5a0e9e84538ac43a80
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
    M test/unittest/scalars/tst.misc.x

  Log Message:
  -----------
  test: Allow for ext4 and isofs to be built-in modules

The test uses symbols from modules ext4 and isofs.  So skip the test
if those modules are not present.  The modules, however, might be
built into the kernel.

So, check /proc/kallmodsyms rather than /proc/modules for the modules.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: ded09d05a7386c18c5a89b4abd95169428718a51
      https://github.com/oracle/dtrace-utils/commit/ded09d05a7386c18c5a89b4abd95169428718a51
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
    A test/unittest/lockstat/tst.lockstat-summary.aarch64.r
    A test/unittest/lockstat/tst.lockstat-summary.d
    A test/unittest/lockstat/tst.lockstat-summary.t
    A test/unittest/lockstat/tst.lockstat-summary.x86_64.r
    R test/unittest/lockstat/tst.lockstat.sh

  Log Message:
  -----------
  test: rework main lockstat test

The main lockstat test (tst.lockstat.sh) didn't need to be implemented
using a shell script.  It has been reworked to be a regular .d script
with a .t trigger executable script.  Because of varying kernel options
between aarch64 and x86_64, each arch gets its own expected output.

Test failures may be reported if kernel configurations differ from those
used for UEK6 and UEK7.  More specific tests (configured based on the
kernel configuration of the runtime kernel) will need to be developed to
make this type of testing more effective.

The test has been renamed as tst.lockstat-summary.d to reflect that it is
a test the summarizes the overall implementation of lockstat probes.

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: ae9f2a137438b2e3798ff532bd986fe3abfd9c8a
      https://github.com/oracle/dtrace-utils/commit/ae9f2a137438b2e3798ff532bd986fe3abfd9c8a
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
    M test/unittest/options/err.pspec-default.r
    A test/unittest/options/err.pspec-default.r.p

  Log Message:
  -----------
  test, options: work around a subtle lexer bug

The err.pspec-default test hits a horrible eleven-year-old bug in the
lexer (related to the move to flex from AT&T lex) which is triggering
the printing of garbage instead of a nice syntax error when in state 0
(possible probe name) and a type name is encountered, and its
second-to-last character is a *, and we are otherwise at EOF.

Let's fix this obscure monster in the next release and just evade it for
now.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 0cc5268289d3eda39ef161fc17c69c8f8e1b4d13
      https://github.com/oracle/dtrace-utils/commit/0cc5268289d3eda39ef161fc17c69c8f8e1b4d13
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
    M libdtrace/dt_prov_cpc.c

  Log Message:
  -----------
  cpc: Add a destroy function

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


Compare: https://github.com/oracle/dtrace-utils/compare/67a6679fc82a...0cc5268289d3



More information about the DTrace-devel mailing list