Merge tag 'nfs-for-6.2-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[platform/kernel/linux-rpi.git] / samples / trace_events / trace-events-sample.h
index 1a92226..1c6b843 100644 (file)
  *
  *         __assign_bitmask(target_cpus, cpumask_bits(bar), nr_cpumask_bits);
  *
+ *   __cpumask: This is pretty much the same as __bitmask but is specific for
+ *         CPU masks. The type displayed to the user via the format files will
+ *         be "cpumaks_t" such that user space may deal with them differently
+ *         if they choose to do so, and the bits is always set to nr_cpumask_bits.
+ *
+ *         __cpumask(target_cpu)
+ *
+ *         To assign a cpumask, use the __assign_cpumask() helper macro.
+ *
+ *         __assign_cpumask(target_cpus, cpumask_bits(bar));
  *
  * fast_assign: This is a C like function that is used to store the items
  *    into the ring buffer. A special variable called "__entry" will be the
  *    This is also used to print out the data from the trace files.
  *    Again, the __entry macro is used to access the data from the ring buffer.
  *
- *    Note, __dynamic_array, __string, and __bitmask require special helpers
- *       to access the data.
+ *    Note, __dynamic_array, __string, __bitmask and __cpumask require special
+ *       helpers to access the data.
  *
  *      For __dynamic_array(int, foo, bar) use __get_dynamic_array(foo)
  *            Use __get_dynamic_array_len(foo) to get the length of the array
  *
  *      For __bitmask(target_cpus, nr_cpumask_bits) use __get_bitmask(target_cpus)
  *
+ *      For __cpumask(target_cpus) use __get_cpumask(target_cpus)
+ *
  *
  * Note, that for both the assign and the printk, __entry is the handler
  * to the data structure in the ring buffer, and is defined by the
@@ -288,6 +300,7 @@ TRACE_EVENT(foo_bar,
                __dynamic_array(int,    list,   __length_of(lst))
                __string(       str,    string                  )
                __bitmask(      cpus,   num_possible_cpus()     )
+               __cpumask(      cpum                            )
                __vstring(      vstr,   fmt,    va              )
        ),
 
@@ -299,9 +312,10 @@ TRACE_EVENT(foo_bar,
                __assign_str(str, string);
                __assign_vstr(vstr, fmt, va);
                __assign_bitmask(cpus, cpumask_bits(mask), num_possible_cpus());
+               __assign_cpumask(cpum, cpumask_bits(mask));
        ),
 
-       TP_printk("foo %s %d %s %s %s %s (%s) %s", __entry->foo, __entry->bar,
+       TP_printk("foo %s %d %s %s %s %s (%s) (%s) %s", __entry->foo, __entry->bar,
 
 /*
  * Notice here the use of some helper functions. This includes:
@@ -345,7 +359,8 @@ TRACE_EVENT(foo_bar,
                  __print_array(__get_dynamic_array(list),
                                __get_dynamic_array_len(list) / sizeof(int),
                                sizeof(int)),
-                 __get_str(str), __get_bitmask(cpus), __get_str(vstr))
+                 __get_str(str), __get_bitmask(cpus), __get_cpumask(cpum),
+                 __get_str(vstr))
 );
 
 /*
@@ -542,15 +557,16 @@ DEFINE_EVENT_PRINT(foo_template, foo_with_template_print,
 
 TRACE_EVENT(foo_rel_loc,
 
-       TP_PROTO(const char *foo, int bar, unsigned long *mask),
+       TP_PROTO(const char *foo, int bar, unsigned long *mask, const cpumask_t *cpus),
 
-       TP_ARGS(foo, bar, mask),
+       TP_ARGS(foo, bar, mask, cpus),
 
        TP_STRUCT__entry(
                __rel_string(   foo,    foo     )
                __field(        int,    bar     )
                __rel_bitmask(  bitmask,
                        BITS_PER_BYTE * sizeof(unsigned long)   )
+               __rel_cpumask(  cpumask )
        ),
 
        TP_fast_assign(
@@ -558,10 +574,12 @@ TRACE_EVENT(foo_rel_loc,
                __entry->bar = bar;
                __assign_rel_bitmask(bitmask, mask,
                        BITS_PER_BYTE * sizeof(unsigned long));
+               __assign_rel_cpumask(cpumask, cpus);
        ),
 
-       TP_printk("foo_rel_loc %s, %d, %s", __get_rel_str(foo), __entry->bar,
-                 __get_rel_bitmask(bitmask))
+       TP_printk("foo_rel_loc %s, %d, %s, %s", __get_rel_str(foo), __entry->bar,
+                 __get_rel_bitmask(bitmask),
+                 __get_rel_cpumask(cpumask))
 );
 #endif