Fix: update writeback instrumentation for kernel 4.14
[lttng-modules.git] / lttng-events.h
index 9e05e2f9a56b044c8c690fbbc2ac75a3889d2c58..17dd8d3a3c312ef35da53f4cbbdd4aba75d4a2f7 100644 (file)
@@ -27,6 +27,7 @@
 #include <linux/list.h>
 #include <linux/kprobes.h>
 #include <linux/kref.h>
+#include <lttng-cpuhotplug.h>
 #include <wrapper/uuid.h>
 #include <lttng-tracer.h>
 #include <lttng-abi.h>
@@ -77,6 +78,9 @@ struct lttng_enum_value {
 struct lttng_enum_entry {
        struct lttng_enum_value start, end;     /* start and end are inclusive */
        const char *string;
+       struct {
+               unsigned int is_auto:1;
+       } options;
 };
 
 #define __type_integer(_type, _size, _alignment, _signedness,  \
@@ -181,8 +185,13 @@ union lttng_ctx_value {
  * lttng_ctx_field because cpu hotplug needs fixed-location addresses.
  */
 struct lttng_perf_counter_field {
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
+       struct lttng_cpuhp_node cpuhp_prepare;
+       struct lttng_cpuhp_node cpuhp_online;
+#else
        struct notifier_block nb;
        int hp_enable;
+#endif
        struct perf_event_attr *attr;
        struct perf_event **e;  /* per-cpu array */
 };
@@ -315,7 +324,7 @@ struct lttng_event {
 };
 
 enum lttng_enabler_type {
-       LTTNG_ENABLER_WILDCARD,
+       LTTNG_ENABLER_STAR_GLOB,
        LTTNG_ENABLER_NAME,
 };
 
@@ -698,6 +707,10 @@ int lttng_add_perf_counter_to_ctx(uint32_t type,
                                  uint64_t config,
                                  const char *name,
                                  struct lttng_ctx **ctx);
+int lttng_cpuhp_perf_counter_online(unsigned int cpu,
+               struct lttng_cpuhp_node *node);
+int lttng_cpuhp_perf_counter_dead(unsigned int cpu,
+               struct lttng_cpuhp_node *node);
 #else
 static inline
 int lttng_add_perf_counter_to_ctx(uint32_t type,
@@ -707,6 +720,18 @@ int lttng_add_perf_counter_to_ctx(uint32_t type,
 {
        return -ENOSYS;
 }
+static inline
+int lttng_cpuhp_perf_counter_online(unsigned int cpu,
+               struct lttng_cpuhp_node *node)
+{
+       return 0;
+}
+static inline
+int lttng_cpuhp_perf_counter_dead(unsigned int cpu,
+               struct lttng_cpuhp_node *node)
+{
+       return 0;
+}
 #endif
 
 int lttng_logger_init(void);
@@ -785,7 +810,7 @@ int lttng_kretprobes_event_enable_state(struct lttng_event *event,
 }
 #endif
 
-#ifdef CONFIG_DYNAMIC_FTRACE
+#if defined(CONFIG_DYNAMIC_FTRACE) && !defined(LTTNG_FTRACE_MISSING_HEADER)
 int lttng_ftrace_register(const char *name,
                          const char *symbol_name,
                          struct lttng_event *event);
This page took 0.023381 seconds and 4 git commands to generate.