preemptirq_long.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2021 The Linux Foundation. All rights reserved.
  4. */
  5. #undef TRACE_SYSTEM
  6. #define TRACE_SYSTEM preemptirq_long
  7. #undef TRACE_INCLUDE_PATH
  8. #define TRACE_INCLUDE_PATH .
  9. #if !defined(_TRACE_PREEMPTIRQ_LONG_H) || defined(TRACE_HEADER_MULTI_READ)
  10. #define _TRACE_PREEMPTIRQ_LONG_H
  11. #include <linux/tracepoint.h>
  12. /* reference preemptirq_template */
  13. DECLARE_EVENT_CLASS(preemptirq_long_template,
  14. TP_PROTO(u64 delta, unsigned long ip, unsigned long parent_ip,
  15. unsigned long pparent_ip, unsigned long ppparent_ip),
  16. TP_ARGS(delta, ip, parent_ip, pparent_ip, ppparent_ip),
  17. TP_STRUCT__entry(
  18. __field(u64, delta)
  19. __field(unsigned long, caller_offs)
  20. __field(unsigned long, parent_offs)
  21. __field(unsigned long, pparent_offs)
  22. __field(unsigned long, ppparent_offs)
  23. ),
  24. TP_fast_assign(
  25. __entry->delta = delta;
  26. __entry->caller_offs = ip;
  27. __entry->parent_offs = parent_ip;
  28. __entry->pparent_offs = pparent_ip;
  29. __entry->ppparent_offs = ppparent_ip;
  30. ),
  31. TP_printk("delta=%llu(ns) caller=%ps <- %ps <- %ps <- %ps",
  32. __entry->delta, __entry->caller_offs,
  33. __entry->parent_offs, __entry->pparent_offs, __entry->ppparent_offs)
  34. );
  35. DEFINE_EVENT(preemptirq_long_template, irq_disable_long,
  36. TP_PROTO(u64 delta, unsigned long ip, unsigned long parent_ip,
  37. unsigned long pparent_ip, unsigned long ppparent_ip),
  38. TP_ARGS(delta, ip, parent_ip, pparent_ip, ppparent_ip));
  39. DEFINE_EVENT(preemptirq_long_template, preempt_disable_long,
  40. TP_PROTO(u64 delta, unsigned long ip, unsigned long parent_ip,
  41. unsigned long pparent_ip, unsigned long ppparent_ip),
  42. TP_ARGS(delta, ip, parent_ip, pparent_ip, ppparent_ip));
  43. #endif /* _TRACE_PREEMPTIRQ_LONG_H */
  44. /* This part must be outside protection */
  45. #include <trace/define_trace.h>