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.