linux/include/trace/events/ipi.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#undef TRACE_SYSTEM
   3#define TRACE_SYSTEM ipi
   4
   5#if !defined(_TRACE_IPI_H) || defined(TRACE_HEADER_MULTI_READ)
   6#define _TRACE_IPI_H
   7
   8#include <linux/tracepoint.h>
   9
  10/**
  11 * ipi_raise - called when a smp cross call is made
  12 *
  13 * @mask: mask of recipient CPUs for the IPI
  14 * @reason: string identifying the IPI purpose
  15 *
  16 * It is necessary for @reason to be a static string declared with
  17 * __tracepoint_string.
  18 */
  19TRACE_EVENT(ipi_raise,
  20
  21        TP_PROTO(const struct cpumask *mask, const char *reason),
  22
  23        TP_ARGS(mask, reason),
  24
  25        TP_STRUCT__entry(
  26                __bitmask(target_cpus, nr_cpumask_bits)
  27                __field(const char *, reason)
  28        ),
  29
  30        TP_fast_assign(
  31                __assign_bitmask(target_cpus, cpumask_bits(mask), nr_cpumask_bits);
  32                __entry->reason = reason;
  33        ),
  34
  35        TP_printk("target_mask=%s (%s)", __get_bitmask(target_cpus), __entry->reason)
  36);
  37
  38DECLARE_EVENT_CLASS(ipi_handler,
  39
  40        TP_PROTO(const char *reason),
  41
  42        TP_ARGS(reason),
  43
  44        TP_STRUCT__entry(
  45                __field(const char *, reason)
  46        ),
  47
  48        TP_fast_assign(
  49                __entry->reason = reason;
  50        ),
  51
  52        TP_printk("(%s)", __entry->reason)
  53);
  54
  55/**
  56 * ipi_entry - called immediately before the IPI handler
  57 *
  58 * @reason: string identifying the IPI purpose
  59 *
  60 * It is necessary for @reason to be a static string declared with
  61 * __tracepoint_string, ideally the same as used with trace_ipi_raise
  62 * for that IPI.
  63 */
  64DEFINE_EVENT(ipi_handler, ipi_entry,
  65
  66        TP_PROTO(const char *reason),
  67
  68        TP_ARGS(reason)
  69);
  70
  71/**
  72 * ipi_exit - called immediately after the IPI handler returns
  73 *
  74 * @reason: string identifying the IPI purpose
  75 *
  76 * It is necessary for @reason to be a static string declared with
  77 * __tracepoint_string, ideally the same as used with trace_ipi_raise for
  78 * that IPI.
  79 */
  80DEFINE_EVENT(ipi_handler, ipi_exit,
  81
  82        TP_PROTO(const char *reason),
  83
  84        TP_ARGS(reason)
  85);
  86
  87#endif /* _TRACE_IPI_H */
  88
  89/* This part must be outside protection */
  90#include <trace/define_trace.h>
  91