]> www.infradead.org Git - users/jedix/linux-maple.git/commit
dtrace: support multiple instances of the same probe in a function
authorKris Van Hees <kris.van.hees@oracle.com>
Thu, 28 Jan 2016 02:36:01 +0000 (21:36 -0500)
committerKris Van Hees <kris.van.hees@oracle.com>
Sat, 30 Jan 2016 09:55:12 +0000 (04:55 -0500)
commit161dad5cda797f8e01cf43923524df63809b3990
tree2970f64b639b92122349a8459f0e747c61f43d92
parent6eb5d1664232ea38f51d8ae706b784876b0a7089
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>
kernel/dtrace/dtrace_sdt_core.c
scripts/dtrace_sdt.sh