const char *tp_name; /* Optional tracepoint name */
void *tp_cb; /* Optional tracepoint callback */
void *location; /* Address of marker in code */
-} __attribute__((aligned(8)));
-
-#define CONFIG_MARKERS
-#ifdef CONFIG_MARKERS
+} __attribute__((aligned(128)));/*
+ * Aligned on 128 bytes because it is
+ * globally visible and gcc happily
+ * align these on the structure size.
+ */
#define GET_MARKER(channel, name) (__mark_##channel##_##name)
asm volatile ( \
/*".section __markers\n\t"*/ \
".section __markers,\"aw\",@progbits\n\t" \
- ".balign 8\n\t" \
+ ".balign 128\n\t" \
"2:\n\t" \
_ASM_PTR "(__mstrtab_" __stringify(channel) "_" __stringify(name) "_channel_" __stringify(unique) ")\n\t" /* channel string */ \
_ASM_PTR "(__mstrtab_" __stringify(channel) "_" __stringify(name) "_name_" __stringify(unique) ")\n\t" /* name string */ \
__attribute__((section("__markers_strings"))) \
= #channel "\0" #name "\0" format; \
static struct marker GET_MARKER(channel, name) \
- __attribute__((section("__markers"), aligned(8))) = \
+ __attribute__((section("__markers"), aligned(128))) = \
{ __mstrtab_##channel##_##name, \
&__mstrtab_##channel##_##name[sizeof(#channel)], \
&__mstrtab_##channel##_##name[sizeof(#channel) + sizeof(#name)], \
extern void marker_update_probe_range(struct marker *begin,
struct marker *end);
-#else /* !CONFIG_MARKERS */
-#define DEFINE_MARKER(channel, name, tp_name, tp_cb, format, m)
-#define __trace_mark(generic, channel, name, call_private, format, args...) \
- __mark_check_format(format, ## args)
-#define __trace_mark_tp(channel, name, call_private, tp_name, tp_cb, \
- format, args...) \
- do { \
- void __check_tp_type(void) \
- { \
- register_trace_##tp_name(tp_cb, call_private); \
- } \
- __mark_check_format(format, ## args); \
- } while (0)
-static inline void marker_update_probe_range(struct marker *begin,
- struct marker *end)
-{ }
-#define GET_MARKER(channel, name)
-#endif /* CONFIG_MARKERS */
-
/**
* trace_mark - Marker using code patching
* @channel: marker channel (where to send the data), not quoted.
struct marker_addr *markers_addr_start;
#endif
int markers_count;
- struct list_head list;
+ struct cds_list_head list;
};
extern int marker_register_lib(struct marker *markers_start, int markers_count);