Markers: remove channel name from trace_mark()
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sun, 10 Apr 2011 22:15:40 +0000 (15:15 -0700)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sun, 10 Apr 2011 22:30:11 +0000 (15:30 -0700)
*** This is an instrumentation API change ***

Given that UST will gradually move to a scheme where channels are
dynamically associated with markers on a per tracing session basis (and
thus associated dynamically rather than fixed statically), it does not
make sense to specify the "channel name" in addition to the marker name
in the trace_mark() arguments.

API touched:

GET_MARKER()
DEFINE_MARKER()
DEFINE_MARKER_TP()
trace_mark()
_trace_mark()

I'm introducing this API change without changing the underlying
implementation, trying to minimize the impact of API changes by doing
them sooner than later.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
20 files changed:
include/ust/marker.h
libust/marker.c
libust/tracectl.c
libustinstr-malloc/mallocwrap.c
tests/basic/basic.c
tests/basic_long/basic_long.c
tests/benchmark/bench.c
tests/dlopen/dlopen.c
tests/dlopen/libdummy.c
tests/fork/fork.c
tests/fork/fork2.c
tests/hello/hello.c
tests/hello2/hello2.c
tests/libustctl_function_tests/libustctl_function_tests.c
tests/make_shared_lib/basic_lib.c
tests/make_shared_lib/prog.c
tests/same_line_marker/same_line_marker.c
tests/test-nevents/prog.c
tests/tracepoint/benchmark/tracepoint_benchmark.c
tests/tracepoint/tracepoint_test.c

index 29e84cc8f8360eba701234fec62d95dc06a0779d..da738d1f3254f67b566df5c54d1800ef161216f1 100644 (file)
@@ -77,7 +77,7 @@ struct marker {
        void *location;         /* Address of marker in code */
 };
 
-#define GET_MARKER(channel, name)      (__mark_##channel##_##name)
+#define GET_MARKER(name)               (__mark_ust_##name)
 
 #define _DEFINE_MARKER(channel, name, tp_name_str, tp_cb, format, unique, m)                   \
                struct registers __marker_regs;                                                 \
@@ -135,17 +135,17 @@ struct marker {
                save_registers(&__marker_regs)
 
 
-#define DEFINE_MARKER(channel, name, format, unique, m)                                \
-               _DEFINE_MARKER(channel, name, NULL, NULL, format, unique, m)
+#define DEFINE_MARKER(name, format, unique, m)                                 \
+               _DEFINE_MARKER(ust, name, NULL, NULL, format, unique, m)
 
-#define DEFINE_MARKER_TP(channel, name, tp_name, tp_cb, format)                \
-               _DEFINE_MARKER_TP(channel, name, #tp_name, tp_cb, format)
+#define DEFINE_MARKER_TP(name, tp_name, tp_cb, format)                         \
+               _DEFINE_MARKER_TP(ust, name, #tp_name, tp_cb, format)
 
 #define _DEFINE_MARKER_TP(channel, name, tp_name_str, tp_cb, format) \
                static const char __mstrtab_##channel##_##name[]        \
                __attribute__((section("__markers_strings")))           \
                = #channel "\0" #name "\0" format;                      \
-               static struct marker GET_MARKER(channel, name)          \
+               static struct marker __mark_##channel##_##name          \
                __attribute__((section("__markers"))) =                 \
                { __mstrtab_##channel##_##name,                         \
                        &__mstrtab_##channel##_##name[sizeof(#channel)],        \
@@ -155,7 +155,7 @@ struct marker {
                        NULL, tp_name_str, tp_cb };                     \
                static struct marker * const __mark_ptr_##channel##_##name      \
                        __attribute__((used, section("__markers_ptrs"))) =      \
-                       &GET_MARKER(channel, name);
+                       &__mark_##channel##_##name;
 
 /*
  * Make sure the alignment of the structure in the __markers section will
@@ -173,7 +173,7 @@ struct marker {
 #define __trace_mark_counter(generic, channel, name, unique, call_private, format, args...) \
        do {                                                            \
                struct marker *__marker_counter_ptr;                    \
-               DEFINE_MARKER(channel, name, format, unique, __marker_counter_ptr);     \
+               _DEFINE_MARKER(channel, name, NULL, NULL, format, unique, __marker_counter_ptr);        \
                __mark_check_format(format, ## args);                   \
                if (!generic) {                                         \
                        if (unlikely(imv_read(__marker_counter_ptr->state))) \
@@ -194,9 +194,9 @@ struct marker {
                {                                                       \
                        register_trace_##tp_name(tp_cb, call_private);          \
                }                                                       \
-               DEFINE_MARKER_TP(channel, name, tp_name, tp_cb, format);\
+               _DEFINE_MARKER_TP(channel, name, #tp_name, tp_cb, format);      \
                __mark_check_format(format, ## args);                   \
-               (*GET_MARKER(channel, name).call)(&GET_MARKER(channel, name), \
+               (*__mark_##channel##_##name.call)(&__mark_##channel##_##name,   \
                        call_private, &__marker_regs, ## args);                         \
        } while (0)
 
@@ -205,7 +205,6 @@ extern void marker_update_probe_range(struct marker * const *begin,
 
 /**
  * trace_mark - Marker using code patching
- * @channel: marker channel (where to send the data), not quoted.
  * @name: marker name, not quoted.
  * @format: format string
  * @args...: variable argument list
@@ -213,12 +212,11 @@ extern void marker_update_probe_range(struct marker * const *begin,
  * Places a marker using optimized code patching technique (imv_read())
  * to be enabled when immediate values are present.
  */
-#define trace_mark(channel, name, format, args...) \
-       __trace_mark(0, channel, name, NULL, format, ## args)
+#define trace_mark(name, format, args...) \
+       __trace_mark(0, ust, name, NULL, format, ## args)
 
 /**
  * _trace_mark - Marker using variable read
- * @channel: marker channel (where to send the data), not quoted.
  * @name: marker name, not quoted.
  * @format: format string
  * @args...: variable argument list
@@ -227,12 +225,11 @@ extern void marker_update_probe_range(struct marker * const *begin,
  * enabled. Should be used for markers in code paths where instruction
  * modification based enabling is not welcome.
  */
-#define _trace_mark(channel, name, format, args...) \
-       __trace_mark(1, channel, name, NULL, format, ## args)
+#define _trace_mark(name, format, args...) \
+       __trace_mark(1, ust, name, NULL, format, ## args)
 
 /**
  * trace_mark_tp - Marker in a tracepoint callback
- * @channel: marker channel (where to send the data), not quoted.
  * @name: marker name, not quoted.
  * @tp_name: tracepoint name, not quoted.
  * @tp_cb: tracepoint callback. Should have an associated global symbol so it
@@ -242,8 +239,8 @@ extern void marker_update_probe_range(struct marker * const *begin,
  *
  * Places a marker in a tracepoint callback.
  */
-#define trace_mark_tp(channel, name, tp_name, tp_cb, format, args...)  \
-       __trace_mark_tp(channel, name, NULL, tp_name, tp_cb, format, ## args)
+#define trace_mark_tp(name, tp_name, tp_cb, format, args...)   \
+       __trace_mark_tp(ust, name, NULL, tp_name, tp_cb, format, ## args)
 
 /**
  * MARK_NOARGS - Format string for a marker with no argument.
index a64b46fc688f42bbaaa132a0b9984f6e4df2bfa3..4b23e53d51363357e06f79fee32b5840aa77dd08 100644 (file)
@@ -447,7 +447,7 @@ static struct marker_entry *add_marker(const char *channel, const char *name,
                        e->call = marker_probe_cb_noarg;
                else
                        e->call = marker_probe_cb;
-               trace_mark(metadata, core_marker_format,
+               __trace_mark(0, metadata, core_marker_format, NULL,
                           "channel %s name %s format %s",
                           e->channel, e->name, e->format);
        } else {
@@ -514,7 +514,7 @@ static int marker_set_format(struct marker_entry *entry, const char *format)
                return -ENOMEM;
        entry->format_allocated = 1;
 
-       trace_mark(metadata, core_marker_format,
+       __trace_mark(0, metadata, core_marker_format, NULL,
                   "channel %s name %s format %s",
                   entry->channel, entry->name, entry->format);
        return 0;
@@ -781,7 +781,7 @@ int marker_probe_register(const char *channel, const char *name,
                        goto error_unregister_channel;
                entry->event_id = ret;
                ret = 0;
-               trace_mark(metadata, core_marker_id,
+               __trace_mark(0, metadata, core_marker_id, NULL,
                           "channel %s name %s event_id %hu "
                           "int #1u%zu long #1u%zu pointer #1u%zu "
                           "size_t #1u%zu alignment #1u%u",
index 96053b7b523773000560b70a86a2b717056005a5..e84a35aecf4e3f979d4cb85163b89e3204ccf45c 100644 (file)
@@ -1576,7 +1576,7 @@ static void __attribute__((destructor)) keepalive()
 
 void ust_potential_exec(void)
 {
-       trace_mark(ust, potential_exec, MARK_NOARGS);
+       trace_mark(potential_exec, MARK_NOARGS);
 
        DBG("test");
 
index f5d5ce38b669f7184d7a24e18201fb0fb440e93d..c473567da1f46a5a9b35b6fd6f29976b19225921 100644 (file)
@@ -75,7 +75,7 @@ void *malloc(size_t size)
 
        retval = plibc_malloc(size);
 
-       trace_mark(ust, malloc, "size %d ptr %p", (int)size, retval);
+       trace_mark(malloc, "size %d ptr %p", (int)size, retval);
 
        return retval;
 }
@@ -92,7 +92,7 @@ void free(void *ptr)
                }
        }
 
-       trace_mark(ust, free, "ptr %p", ptr);
+       trace_mark(free, "ptr %p", ptr);
 
        plibc_free(ptr);
 }
index a81087784062fedc8e5e2984e924a80b1753f270..293febaca2246655d3fb37de4cec90682fe7f8ea 100644 (file)
@@ -29,8 +29,8 @@ int main()
        printf("Basic test program\n");
 
        for(i=0; i<50; i++) {
-               trace_mark(ust, bar, "str %s", "FOOBAZ");
-               trace_mark(ust, bar2, "number1 %d number2 %d", 53, 9800);
+               trace_mark(bar, "str %s", "FOOBAZ");
+               trace_mark(bar2, "number1 %d number2 %d", 53, 9800);
                usleep(100000);
        }
 
index 6cf44b6216b8c115190633e6f05e98456fcdb900..06ee2f58fb2469af8e28917b30e5ec7edddc652e 100644 (file)
@@ -25,8 +25,8 @@ int main()
        printf("Basic test program\n");
 
        for(;;) {
-               trace_mark(ust, bar, "str %s", "FOOBAZ");
-               trace_mark(ust, bar2, "number1 %d number2 %d", 53, 9800);
+               trace_mark(bar, "str %s", "FOOBAZ");
+               trace_mark(bar2, "number1 %d number2 %d", 53, 9800);
                usleep(1000000);
        }
 
index bc6a389742de0bf89cf376c2b67419565fa04230..4e9c355126cb07eab69b62003d64f03afbd29c91 100644 (file)
@@ -29,7 +29,7 @@ void do_stuff(void)
        time(NULL);
 
 #ifdef MARKER
-       trace_mark(ust, event, "event %d", v);
+       trace_mark(event, "event %d", v);
 #endif
 
 }
index 28d0ee6f01a9a9da8fc9cc443f45724c5946a474..d367580c3698cf86641cb2e7399def4d542837f6 100644 (file)
@@ -28,7 +28,7 @@ int main()
 {
        int (*fptr)();
 
-       trace_mark(ust, from_main_before_lib, "%s", "Event occured in the main program before"
+       trace_mark(from_main_before_lib, "%s", "Event occured in the main program before"
                                                " the opening of the library\n");
        void *lib_handle = dlopen("libdummy.so", RTLD_LAZY);
 
@@ -47,7 +47,7 @@ int main()
        (*fptr)();
        dlclose(lib_handle);
 
-       trace_mark(ust, from_main_after_lib,"%s", "Event occured in the main program after "
+       trace_mark(from_main_after_lib,"%s", "Event occured in the main program after "
                                                "the library has been closed\n");
 
        return 0;
index 45507c0e9b305e76cb0183e22d13da70fc638fc7..16f7b4dc7f1152cef73fb7c0d906193312fd19f6 100644 (file)
@@ -19,5 +19,5 @@
 
 void exported_function()
 {
-  trace_mark(ust, from_library, "%s", "Event occured in library function");
+  trace_mark(from_library, "%s", "Event occured in library function");
 }
index a80518d8154a6de37e59d72bce6494b4b50a5eea..3b84644325948310ed29a6f22f8ca7751185c5d1 100644 (file)
@@ -32,7 +32,7 @@ int main(int argc, char **argv, char *env[])
        }
 
        printf("Fork test program, parent pid is %d\n", getpid());
-       trace_mark(ust, before_fork, MARK_NOARGS);
+       trace_mark(before_fork, MARK_NOARGS);
 
        /* Sleep here to make sure the consumer is initialized before we fork */
        sleep(1);
@@ -47,9 +47,9 @@ int main(int argc, char **argv, char *env[])
 
                printf("Child pid is %d\n", getpid());
 
-               trace_mark(ust, after_fork_child, MARK_NOARGS);
+               trace_mark(after_fork_child, MARK_NOARGS);
 
-               trace_mark(ust, before_exec, "pid %d", getpid());
+               trace_mark(before_exec, "pid %d", getpid());
 
                result = execve(argv[1], args, env);
                if(result == -1) {
@@ -57,10 +57,10 @@ int main(int argc, char **argv, char *env[])
                        return 1;
                }
 
-               trace_mark(ust, after_exec, "pid %d", getpid());
+               trace_mark(after_exec, "pid %d", getpid());
        }
        else {
-               trace_mark(ust, after_fork_parent, MARK_NOARGS);
+               trace_mark(after_fork_parent, MARK_NOARGS);
        }
 
        return 0;
index a290044439c105b350b9eaebdd4d875582bdb5cf..8a14e1a20c22c04a1ffa203f6dc407e7fa468951 100644 (file)
@@ -24,7 +24,7 @@ int main()
 {
        printf("IN FORK2\n");
 
-       trace_mark(ust, after_exec, MARK_NOARGS);
+       trace_mark(after_exec, MARK_NOARGS);
 
        return 0;
 }
index c0b541fd33d23b6c5dbecdac1933b4c0d480b40f..6ba2e61e06963f2ea1478147569725263e2f3cc9 100644 (file)
@@ -71,8 +71,8 @@ int main()
 
        sleep(1);
        for(i=0; i<50; i++) {
-               trace_mark(ust, bar, "str %s", "FOOBAZ");
-               trace_mark(ust, bar2, "number1 %d number2 %d", 53, 9800);
+               trace_mark(bar, "str %s", "FOOBAZ");
+               trace_mark(bar2, "number1 %d number2 %d", 53, 9800);
                trace_hello_tptest(i);
                usleep(100000);
        }
index 7dc1b974e0fa7d8d1276a9fd9a8bfc1135db9759..175a14006a8258e1d1910cea7fbce2c8bd541483 100644 (file)
@@ -37,8 +37,8 @@ int main()
        printf("Hello, World!\n");
 
        for(i=0; i<500; i++) {
-               trace_mark(ust, bar, "str %d", i);
-               trace_mark(ust, bar2, "number1 %d number2 %d", (int)53, (int)9800);
+               trace_mark(bar, "str %d", i);
+               trace_mark(bar2, "number1 %d number2 %d", (int)53, (int)9800);
        }
 
 //     ltt_trace_stop("auto");
index 740624397e315394246b4a00ef625995dc502f9c..cf184e6272be7c4c3885f074362fb01dafcb02a2 100644 (file)
@@ -179,8 +179,8 @@ int main(int argc, char **argv)
        child_pid = fork();
        if (child_pid) {
                for(i=0; i<10; i++) {
-                       trace_mark(ust, bar, "str %s", "FOOBAZ");
-                       trace_mark(ust, bar2, "number1 %d number2 %d", 53, 9800);
+                       trace_mark(bar, "str %s", "FOOBAZ");
+                       trace_mark(bar2, "number1 %d number2 %d", 53, 9800);
                        usleep(100000);
                }
 
index 2c1366e908b3aedc6f24aafe1be46fa9fc6c442d..97874f32a2435f4198f5f1781a8ccd6b362f17da 100644 (file)
@@ -3,7 +3,7 @@
 
 void myfunc(void)
 {
-       trace_mark(ust, in_lib, MARK_NOARGS);
+       trace_mark(in_lib, MARK_NOARGS);
        printf("testfunc\n");
 }
 
index c1f5ac817315dbf9e250c82429f395e97c8da869..777f4c6420cf486a2b748d049a6c56a79f0249fc 100644 (file)
@@ -5,6 +5,6 @@ extern myfunc(void);
 int main(void)
 {
        myfunc();
-       trace_mark(ust, in_prog, MARK_NOARGS);
+       trace_mark(in_prog, MARK_NOARGS);
        return 0;
 }
index d9c0f226496a7e97d904806a017dc1fe529d4c38..51cf5c39041b07b9bb8301e0574daf1ef540819b 100644 (file)
@@ -19,6 +19,6 @@
 
 int main()
 {
-  trace_mark(ust, same_line_event, "%s","An event occured in the same line"); trace_mark(ust, same_line_event, "%s","An event occured in the same line");
+  trace_mark(same_line_event, "%s","An event occured in the same line"); trace_mark(same_line_event, "%s","An event occured in the same line");
        return 0;
 }
index b2350cc1274e7c27e4cc53e0de6ec2509b986964..4e709156491112c543972ca857ad2ebbcda27634 100644 (file)
@@ -30,8 +30,8 @@ int main()
        int i;
 
        for(i=0; i<N_ITER; i++) {
-               trace_mark(ust, an_event, "%d", i);
-               trace_mark(ust, another_event, "%s", "Hello, World!");
+               trace_mark(an_event, "%d", i);
+               trace_mark(another_event, "%s", "Hello, World!");
        }
 
        return 0;
index 8af4b84afc67d6d13afc2eec326fc2c85b3d4359..c8ba8c15ac0d1c8762c536e8fe98efad1776eaf9 100644 (file)
@@ -34,7 +34,7 @@ DEFINE_TRACE(ust_event);
 
 void tp_probe(void *data, unsigned int p1);
 
-DEFINE_MARKER_TP(ust, event, ust_event, tp_probe, "p1 %u");
+DEFINE_MARKER_TP(event, ust_event, tp_probe, "p1 %u");
 
 /*
  * Probe 1 --> ust_event
@@ -43,7 +43,7 @@ void tp_probe(void *data, unsigned int p1)
 {
        struct marker *marker;
 
-       marker = &GET_MARKER(ust, event);
+       marker = &GET_MARKER(event);
        ltt_specialized_trace(marker, data, &p1, sizeof(p1), sizeof(p1));
 }
 
index cd3939c7b2625b72728a1c4669cc6f1b6aa6fb87..6a5f691498a0be344c31a52bde1eb9bae5f787db 100644 (file)
@@ -47,7 +47,7 @@ void tp_probe4(void *data, unsigned int p4)
 {
        int i;
        for (i = 0; i < 100; i++) {
-               trace_mark_tp(ust, event2, ust_event2, tp_probe4, "probe4 %u", p4);
+               trace_mark_tp(event2, ust_event2, tp_probe4, "probe4 %u", p4);
        }
 }
 
@@ -60,7 +60,7 @@ void tp_probe3(void *data, unsigned int p3)
 {
        struct message *msg;
        msg = (struct message*) data;
-       trace_mark_tp(ust, event_msg, ust_event_msg,
+       trace_mark_tp(event_msg, ust_event_msg,
                        tp_probe3, "probe %s", msg->payload);
 }
 
@@ -72,7 +72,7 @@ void tp_probe2(void *data, unsigned int p2)
 {
        int i;
        for (i = 0; i < 5; i++) {
-               trace_mark_tp(ust, event, ust_event, tp_probe2, "probe %u", 13);
+               trace_mark_tp(event, ust_event, tp_probe2, "probe %u", 13);
        }
 }
 
@@ -84,7 +84,7 @@ void tp_probe(void *data, unsigned int p1)
 {
        int i;
        for (i = 0; i < 5; i++) {
-               trace_mark_tp(ust, event, ust_event, tp_probe, "probe %u", p1);
+               trace_mark_tp(event, ust_event, tp_probe, "probe %u", p1);
        }
 }
 
This page took 0.035502 seconds and 4 git commands to generate.