[DTrace-devel] [oracle/dtrace-utils] c51554: Fix annotation for dt_get_tvar()

Kris Van Hees noreply at github.com
Tue Feb 8 21:38:27 UTC 2022


  Branch: refs/heads/dev
  Home:   https://github.com/oracle/dtrace-utils
  Commit: c51554270b4930189d3fa0e856f738969d60dceb
      https://github.com/oracle/dtrace-utils/commit/c51554270b4930189d3fa0e856f738969d60dceb
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2022-02-07 (Mon, 07 Feb 2022)

  Changed paths:
    M libdtrace/dt_dis.c
    A test/unittest/variables/tvar/tst.dis-ann.r
    A test/unittest/variables/tvar/tst.dis-ann.sh

  Log Message:
  -----------
  Fix annotation for dt_get_tvar()

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


  Commit: 5c25b725f6f6f25700e8d0fe82009751542d0d73
      https://github.com/oracle/dtrace-utils/commit/5c25b725f6f6f25700e8d0fe82009751542d0d73
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2022-02-08 (Tue, 08 Feb 2022)

  Changed paths:
    M libdtrace/dt_cg.c
    A test/unittest/actions/trace/tst.array.d
    A test/unittest/actions/trace/tst.array.r
    A test/unittest/actions/trace/tst.array.r.p
    A test/unittest/actions/trace/tst.struct-1-byte.d
    A test/unittest/actions/trace/tst.struct-1-byte.r
    A test/unittest/actions/trace/tst.struct.d
    A test/unittest/actions/trace/tst.struct.r
    A test/unittest/actions/trace/tst.union.d
    A test/unittest/actions/trace/tst.union.r

  Log Message:
  -----------
  Add support for array/struct/union to trace()

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


  Commit: 7f40cd2b649aa4a2fd1c4905eb62e2ee8da1db1e
      https://github.com/oracle/dtrace-utils/commit/7f40cd2b649aa4a2fd1c4905eb62e2ee8da1db1e
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2022-02-08 (Tue, 08 Feb 2022)

  Changed paths:
    M bpf/get_bvar.c
    M bpf/probe_error.c
    M bpf/probe_error.h
    M bpf/speculation.c

  Log Message:
  -----------
  Pass dctx as a const struct to BPF functions.

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


  Commit: e04248378e3a7183ae3cb1c18eb508857d3008ec
      https://github.com/oracle/dtrace-utils/commit/e04248378e3a7183ae3cb1c18eb508857d3008ec
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2022-02-08 (Tue, 08 Feb 2022)

  Changed paths:
    M bpf/strlen.c
    M bpf/substr.S
    M include/bpf-lib.h
    M libdtrace/dt_bpf.c
    M libdtrace/dt_cg.c
    A test/unittest/funcs/strlen/err.D_PROTO_ARG.non_string.d
    A test/unittest/funcs/strlen/err.D_PROTO_LEN.missing_arg.d
    A test/unittest/funcs/strlen/err.D_PROTO_LEN.too_many_args.d
    A test/unittest/funcs/strlen/tst.basic.d
    A test/unittest/funcs/strlen/tst.basic.r
    A test/unittest/funcs/strlen/tst.capped-sizw.d
    A test/unittest/funcs/strlen/tst.empty.d
    A test/unittest/funcs/strlen/tst.null.d
    A test/unittest/funcs/strlen/tst.null.r
    R test/unittest/strlen/tst.strlen1.d

  Log Message:
  -----------
  Implement strlen() based on bpf_probe_read_str()

The bpf_probe_read_str() BPF helper returns the number of characters
it copies (incl. the terminating NUL byte), up to the maximum number
passed as one of the arguments.  This can be used to determine the
length of a string.

This new strlen() implementation makes use of the unused space at the
end of the string constant table, which is sized so that it can
contain the largest string possible.

The implementation of substr() is adjusted to reflect this change as
well.  Rather than calling the strlen() function, it uses the BPF
helper directly.

This patch also introduces tests for the strlen() function.

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


  Commit: f0b8973a16f7fe5a2b882ce8ab1de60799cc2655
      https://github.com/oracle/dtrace-utils/commit/f0b8973a16f7fe5a2b882ce8ab1de60799cc2655
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2022-02-08 (Tue, 08 Feb 2022)

  Changed paths:
    M libdtrace/dt_cg.c
    M libdtrace/dt_consume.c
    M libdtrace/dt_printf.c
    M test/unittest/codegen/tst.str_const_length.r
    M test/unittest/codegen/tst.str_data_size.r
    M test/unittest/codegen/tst.str_store_var.r
    M test/unittest/funcs/strjoin/tst.strjoin-bordercases.r
    M test/unittest/funcs/strjoin/tst.strjoin-capped-size-2.r
    M test/unittest/funcs/strjoin/tst.strjoin-capped-size-3.r
    M test/unittest/funcs/strjoin/tst.strjoin-capped-size.r
    M test/unittest/funcs/substr/tst.substr-stored-len.r
    M test/unittest/funcs/substr/tst.substr-strsize.r

  Log Message:
  -----------
  Store strings in the trace output buffer without length prefixes

There is no need to store string length prefixes in the output buffer.

This change affects various tests that explicitly compare the raw bytes
in the output buffer for strings.

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


  Commit: ddf1f4991c4b92892a4344b07439309f78bd1faf
      https://github.com/oracle/dtrace-utils/commit/ddf1f4991c4b92892a4344b07439309f78bd1faf
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2022-02-08 (Tue, 08 Feb 2022)

  Changed paths:
    M libdtrace/dt_bpf.c

  Log Message:
  -----------
  Perform string constant truncation without using string length prefix

The string constant truncation processing was reading the string length
from the 2-byte prefix.  The new approach uses strlen() on the string
data.

This patch prepares for the removal of the string length prefix support.

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


  Commit: 29e3f4222a3bd2b4f675d8df345353d52ff8dc2e
      https://github.com/oracle/dtrace-utils/commit/29e3f4222a3bd2b4f675d8df345353d52ff8dc2e
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2022-02-08 (Tue, 08 Feb 2022)

  Changed paths:
    M bpf/basename.S
    M bpf/dirname.S
    M bpf/index.S
    M bpf/lltostr.S
    M bpf/rindex.S
    M bpf/strchr.S
    M bpf/strcmp.S
    M bpf/strjoin.S
    M bpf/strlen.c
    M bpf/strrchr.S
    M bpf/strtok.S
    M bpf/substr.S
    M libdtrace/dt_bpf.c
    M libdtrace/dt_cg.c
    M libdtrace/dt_dctx.h
    M libdtrace/dt_ident.c
    M libdtrace/dt_string.c
    M libdtrace/dt_string.h
    M libdtrace/dt_strtab.c
    M libdtrace/dt_subr.c
    M test/unittest/variables/gvar/tst.undecl-offset.r

  Log Message:
  -----------
  Remove the string length prefix

This is the final stage of discontinuing the string length prefix code.
It removes the actual storage allocation for the 2-byte string length
prefix, and updates all code that adjusted pointers because of the
prefix.  The dt_strlen_store() function is gone.

This change affects the offset calculation for variab;e storage when a
string is involved.  Test results for gvar/tst.undecl-offset.r are
updated to reflect this.

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


  Commit: c165d73e7d12e04fcdf65a093de4ba98aa7f17b5
      https://github.com/oracle/dtrace-utils/commit/c165d73e7d12e04fcdf65a093de4ba98aa7f17b5
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2022-02-08 (Tue, 08 Feb 2022)

  Changed paths:
    M bpf/get_bvar.c
    M libdtrace/dt_bpf.c
    M libdtrace/dt_state.h
    M test/demo/builtin/execname.d
    M test/unittest/variables/bvar/tst.execname.d
    A test/unittest/variables/bvar/tst.execname.r

  Log Message:
  -----------
  Add support for built-in variable execname

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>


Compare: https://github.com/oracle/dtrace-utils/compare/e85272726650...c165d73e7d12



More information about the DTrace-devel mailing list