DTrace Improvements

A number of bug fixes and enhancements including module and utility updates are included for DTrace on UEK R4u6, bringing the current version to 0.6.1.

The following are other notable changes that are included:

  • Bug fixes

    Numerous bug fixes have been applied to provide greater stability and better performance.

  • DTrace lockstat provider added

    A patch that adds a definition for the lockstat DTrace provider has been added in this update. DTrace lockstat support enables the dynamic tracing of kernel locking events, for example, which locks are most frequently used, which locks exhibit the most contention, and which locks are held the longest.

  • Dynamically sized tracemem() action added

    An optional third argument form has been added to the tracemem() action to support variable-sized structures. This feature was previously added to Oracle Solaris DTrace.

  • FBT improvements

    Several patches and bug fixes were applied to improve performance and expand the capability of the Function Boundary Tracing (FBT) module.

  • I/O provider added for NFS

    In this update, DTrace I/O provider start and done probes have been added for NFS and DTrace I/O provider probes have been added for NFS read and write requests.

  • llquantize() aggregation added

    The linear-log quantize aggregating action, llquantize(), provides log/linear results and enables you to collect data in linear-step buckets. This feature was previously added to Oracle Solaris.

  • Lock-free algorithm implemented for IPI function calls

    The implementation of the lock-free algorithm reduces the amount of IPI (interprocessor interrupts) function calls that are observed on the system. Instead of relying on IPI traps that can cause a barrier, the lock-free algorithm is more lightweight,thereby reducing stress to the kernel and CPU, and improving system performance.

  • Structure member names can be the same as D keywords

    A bug fix has been applied to fix a problem where syntax errors occurred if structure member names clashed with D keywords, for example, struct and group.self. You can now refer to structure members by using the same names as D keywords.

  • USDT support for 32-bit applications on 64-bit hosts

    A bug fix has been applied to enable user-level, statically defined tracing (USDT) support for 32-bit applications on 64-bit hosts.