]> www.infradead.org Git - users/jedix/linux-maple.git/commit
Change the DTrace startup handling (at boot time) for SDT.
authorKris Van Hees <kris.van.hees@oracle.com>
Sun, 9 Sep 2012 21:18:42 +0000 (17:18 -0400)
committerKris Van Hees <kris.van.hees@oracle.com>
Sun, 9 Sep 2012 21:18:42 +0000 (17:18 -0400)
commit25a478153dec14e9b29e0db33ac95b5236f39402
tree54662538676e3763d18ac9e8e5a751b8a88ee61e
parent186f7872ea8e857a3f8f6d3b72643e2d5a515bea
Change the DTrace startup handling (at boot time) for SDT.

The DTrace OS level handling was initialized at DTrace module load, which
caused major indigestion on the side of the scheduler when SDT probe points at
crucial locations in the scheduler were being patched by one CPU while another
was trying to get some real work done.  Even a nice stop_machine() based
approach turned out not to be possible, because that *cough* depends on the
scheduler also.

Instead, the DTrace OS support is initialized from the Linux boot sequence,
before SMP is enabled, which removes the complications altogether (and it is a
lot cleaner and faster).  We also call CPU-specific initialization for DTrace
during the boot sequence, albeit *after* the CPUs have been identified for SMP,
to ensure that we get accurate information.

Renamed sdt_register.c to be dtrace_sdt.c (for consistency).  And implemented
a better patching of SDT probe points.

Added a 'nosdt' kernel command line option to allow system wide diabling of
SDT probe points (at the kernel level).  This can be used when the patching of
SDT probe points somehow causes a problem.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
dtrace/dtrace_dev.c