]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
dtrace: add support for sparc64 2of3
authorKris Van Hees <kris.van.hees@oracle.com>
Mon, 22 Dec 2014 21:56:13 +0000 (16:56 -0500)
committerNick Alcock <nick.alcock@oracle.com>
Tue, 21 Jul 2015 14:29:49 +0000 (15:29 +0100)
This commit is the 2nd of 3 commits to add DTrace support to the sparc64
kernel.  This particular commit covers the generic kernel code changes.

The sparc64 implementation for SDT probe points utilizes a call to a
trampoline function that in turn calls dtrace_probe() rather than using
a trap-based mechanism.  This requires an additional data item to be
associated with each module.  In order to facilitate this in a manner that
is arch-dependent, DTrace specific data other than the list of SDT probes
has been moved to a structure that is maintained by the DTrace module code
and the module struct merely has a generic void *pdata member that can be
populated with a pointer to the actual data.

This commit also renames the num_dtrace_probes member of the module struct
to be sdt_probec, since that is more consistent.

Orabug: 19005031

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
Reviewed-by: Nick Alcock <nick.alcock@oracle.com>
include/linux/module.h
scripts/mod/modpost.c

index 6b0a8f6af8d16f142b97fe32b79a82f15830653f..d9d5d76bf4253db60b3463be3b6c59b2db7ada4d 100644 (file)
@@ -352,13 +352,10 @@ struct module {
        bool klp_alive;
 #endif
 
-#if defined(CONFIG_DTRACE) || defined(CONFIG_DTRACE_MODULE)
-       size_t fbt_nprobes;
-
+#ifdef CONFIG_DTRACE
        sdt_probedesc_t *sdt_probes;
-       unsigned int num_dtrace_probes; /* from kernel build */
-       size_t sdt_nprobes;             /* managed at probe load time */
-       int mod_nenabled;       /* # of enabled dtrace probes in module */
+       unsigned int sdt_probec;
+       void *pdata;
 #endif
 
 #ifdef CONFIG_MODULE_UNLOAD
index b5bd379634ded26553a31cdc563b3fa6bd2c2281..148af0d92eae63ac5ecfce0339b92f55b720142b 100644 (file)
@@ -2128,7 +2128,7 @@ static void add_header(struct buffer *b, struct module *mod)
        buf_printf(b, "\t.arch = MODULE_ARCH_INIT,\n");
        buf_printf(b, "#ifdef CONFIG_DTRACE\n");
        buf_printf(b, "\t.sdt_probes = _sdt_probes,\n");
-       buf_printf(b, "\t.num_dtrace_probes = _sdt_probec,\n");
+       buf_printf(b, "\t.sdt_probec = _sdt_probec,\n");
        buf_printf(b, "#endif\n");
        buf_printf(b, "};\n");
 }