[DTrace-devel] RELEASE: DTrace for Linux 2.0.0-1.8
Jose E. Marchesi
jose.marchesi at oracle.com
Thu Oct 28 07:45:54 PDT 2021
> We are happy to announce the availability of the latest development
> version of DTrace for Linux (2.0.0-1.8).
Congrats! :)
>
> This new version is based on BPF and other Linux kernel tracing features
> and is implemented entirely as a userspace application.
>
> The functionality is still limited in comparison to the kernel module
> based version of DTrace for Linux (currently at version 1.2.1-1).Â
> Development continues in an incremental fashion to make the full feature
> set of DTrace available using existing kernel features.
>
> WHERE TO FIND IT?
>
> The new version of DTrace for Linux is available at:
> Â Â Â https://github.com/oracle/dtrace-utils/tree/2.0-branch-dev
>
> The most recent release tag is 2.0.0-1.8.
>
> FEATURES
>
> Â - BEGIN and END probe (with full support for the expected semantics).
> Â - ERROR probe support.
> Â - Function Boundary Tracing (FBT) probes.
> Â - System call entry and exit probes.
> Â - Timer-based profile-* and tick-* probes.
> Â - Statically Defined Tracing (SDT) probes for kernel tracepoints.
> Â - Arguments for SDT probes can be retrieved with arg0-arg9.
> Â - pid provider support for userspace function boundary tracing.
> Â - Aggregated data collection support.
> Â - Aggregation functions: avg, count, llquantize, lquantize, max, min,
> Â Â Â quantize, stddev, and sum.
> Â - Aggregation actions: normalize() and denormalize().
> Â - Pretty-printing for aggregations using the printa() action.
> Â - Support for local and global variables with storage sizes greater
>    than 8 bytes. This adds struct and union support for local and global
> Â Â Â variables.
> Â - Various features to support stack tracing.
> Â - Direct compilation of D source code into BPF programs.
> Â - Efficient use of pre-compiled BPF functions for library functions.
> Â - A bpflog option to request the BPF verifier log for loaded programs.
> Â - BPF program linking of dynamically generated code and pre-compiled code
> Â Â Â to facilitate code sharing and code re-use.
> Â - Improved integrated disassembler for generated BPF code at the
> Â Â Â clause and program level (-S in combination with the new -xdisasm=#\
> Â Â Â option).
> Â - Improved trace data buffer handling based on memory mapped perf event
> Â Â Â ring-buffers.
>  - Deferred creation of kernel level probes. Listing available probes
> does
> Â Â Â not require them to be created at the kernel level.
>
> - [NEW] Speculative tracing: speculation(), speculate(), commit(), and
> discard().
> Â - [NEW] Nearly complete support for strings: string constants in D clauses,
> assignment, built-in variables, comparison operators, trace(), strlen(),
> strchr(), strrchr(), index(), rindex(), strstr(), strjoin(), substr(),
> and lltostr().
> - [NEW] Host/network byte order conversion: htonl(), htonll(), htons(),
> ntohl(), ntohll(), and ntohs().
> - [NEW] Symbol resolving for compressed kernel modules.
> - [NEW] Support to run dtrace under valgrind.
>
> DEPENDENCIES
>
> DTrace for Linux depends on libctf (part of newer binutils) -or-
> libdtrace-ctf. While libctf is preferred, building against
> libdtrace-ctf is fully supported. It can be found at:
> Â Â Â https://github.com/oracle/libdtrace-ctf
>
> DTrace for Linux makes use of BPF library functions that are compiled at
> build time. It depends on BPF support in GCC and binutils to generate
> the pre-compiled BPF function library.
>
> DTrace for Linux makes use of 3 additional features that are not
> commonly available in the Linux kernel:
>
> Â - CTF data generation at compile time: this provides important datatype
> Â Â Â information for kernel and kernel module symbols.
>
> Â - waitfd() system call: this provides a mechanism to monitor for state
> Â Â Â changes of processes that are being traced.
>
> Â - /proc/kallsyms module grouping support: this adds annotation with module
> Â Â Â names to all symbols that are part of a kernel module even if the module
>    is configured to be compiled into the kernel proper. This allows for
> Â Â Â consistent ways to refer to probes by module and function (or probe) name.
>
> These additional support features for tracing are available at:
> Â Â Â https://github.com/oracle/dtrace-linux-kernel/tree/v2/5.14.9
>
> Please consider joining our development list: dtrace-devel at oss.oracle.com
>
> Â Â Â Enjoy!
More information about the DTrace-devel
mailing list