dtrace: support multiple instances of the same probe in a function
Up until now, no function in the kernel (or modules) ever had more
than a single instance of the same probe in a single function. Due
to compiler optimizations, sparc64 caused duplication of a probe
call in kernel code. The existing code was not adequate to deal
wih that situation, causing the probe to not get enabled in more
than one location, thereby causing it to not fire when expected.
This commit adds support to dtrace_sdt.sh to handle multiple
instances of the same probe in a single function. It also adds
equialent support in the SDT boot-time processing to ensure that
probes with multiple locations in a function are linked together
so that all locations are enabled and disabled together.
(While this was found as an artifact of testing the 4.3 kernel
series, it also applies to 4.1 because it is not unlikely that
a compiler upgrade may cause the same problem there.)
Orabug:
22514493
Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
Acked-by: Nick Alcock <nick.alcock@oracle.com>