Page MenuHomeFreeBSD

lockstat: reimplement probes using SDT(9)
ClosedPublic

Authored by markj on Jul 5 2015, 2:53 AM.
Tags
Referenced Files
F107189455: D2993.diff
Sat, Jan 11, 10:01 AM
Unknown Object (File)
Sun, Dec 29, 4:32 AM
Unknown Object (File)
Sun, Dec 29, 4:29 AM
Unknown Object (File)
Dec 10 2024, 12:28 AM
Unknown Object (File)
Dec 7 2024, 10:51 AM
Unknown Object (File)
Nov 28 2024, 10:09 PM
Unknown Object (File)
Nov 4 2024, 10:29 AM
Unknown Object (File)
Nov 4 2024, 10:29 AM
Subscribers

Details

Summary

This has a number of advantages over the previous implementation:

  • lockstat.ko is no longer needed, and the corresponding code can be completely removed
  • lockstat probes now carry type info for their arguments
  • SDT probe hot-patching will apply to lockstat probes

lockstat is implemented as a separate provider in Solaris since its lock
code is partly written in assembly and makes use of custom hot-patching
tricks. This doesn't carry over easily to FreeBSD, so there's no need to
implement lockstat separately.

The change temporarily breaks the rw and sx acquire and release probes,
since the probe name is no longer used to determine whether a read lock
or write lock is involved. This will be fixed in a follow-up change;
I've separated the changes to make review easier.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

markj retitled this revision from to lockstat: reimplement probes using SDT(9).
markj edited the test plan for this revision. (Show Details)
markj updated this object.
  • Fix the !KDTRACE_HOOKS build.
gnn edited edge metadata.
This revision is now accepted and ready to land.Jul 7 2015, 11:12 AM
This revision was automatically updated to reflect the committed changes.