csd.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #undef TRACE_SYSTEM
  3. #define TRACE_SYSTEM csd
  4. #if !defined(_TRACE_CSD_H) || defined(TRACE_HEADER_MULTI_READ)
  5. #define _TRACE_CSD_H
  6. #include <linux/tracepoint.h>
  7. TRACE_EVENT(csd_queue_cpu,
  8. TP_PROTO(const unsigned int cpu,
  9. unsigned long callsite,
  10. smp_call_func_t func,
  11. call_single_data_t *csd),
  12. TP_ARGS(cpu, callsite, func, csd),
  13. TP_STRUCT__entry(
  14. __field(unsigned int, cpu)
  15. __field(void *, callsite)
  16. __field(void *, func)
  17. __field(void *, csd)
  18. ),
  19. TP_fast_assign(
  20. __entry->cpu = cpu;
  21. __entry->callsite = (void *)callsite;
  22. __entry->func = func;
  23. __entry->csd = csd;
  24. ),
  25. TP_printk("cpu=%u callsite=%pS func=%ps csd=%p",
  26. __entry->cpu, __entry->callsite, __entry->func, __entry->csd)
  27. );
  28. /*
  29. * Tracepoints for a function which is called as an effect of smp_call_function.*
  30. */
  31. DECLARE_EVENT_CLASS(csd_function,
  32. TP_PROTO(smp_call_func_t func, call_single_data_t *csd),
  33. TP_ARGS(func, csd),
  34. TP_STRUCT__entry(
  35. __field(void *, func)
  36. __field(void *, csd)
  37. ),
  38. TP_fast_assign(
  39. __entry->func = func;
  40. __entry->csd = csd;
  41. ),
  42. TP_printk("func=%ps, csd=%p", __entry->func, __entry->csd)
  43. );
  44. DEFINE_EVENT(csd_function, csd_function_entry,
  45. TP_PROTO(smp_call_func_t func, call_single_data_t *csd),
  46. TP_ARGS(func, csd)
  47. );
  48. DEFINE_EVENT(csd_function, csd_function_exit,
  49. TP_PROTO(smp_call_func_t func, call_single_data_t *csd),
  50. TP_ARGS(func, csd)
  51. );
  52. #endif /* _TRACE_CSD_H */
  53. /* This part must be outside protection */
  54. #include <trace/define_trace.h>