ftrace_irq.h 823 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef _LINUX_FTRACE_IRQ_H
  3. #define _LINUX_FTRACE_IRQ_H
  4. #ifdef CONFIG_FTRACE_NMI_ENTER
  5. extern void arch_ftrace_nmi_enter(void);
  6. extern void arch_ftrace_nmi_exit(void);
  7. #else
  8. static inline void arch_ftrace_nmi_enter(void) { }
  9. static inline void arch_ftrace_nmi_exit(void) { }
  10. #endif
  11. #ifdef CONFIG_HWLAT_TRACER
  12. extern bool trace_hwlat_callback_enabled;
  13. extern void trace_hwlat_callback(bool enter);
  14. #endif
  15. static inline void ftrace_nmi_enter(void)
  16. {
  17. #ifdef CONFIG_HWLAT_TRACER
  18. if (trace_hwlat_callback_enabled)
  19. trace_hwlat_callback(true);
  20. #endif
  21. arch_ftrace_nmi_enter();
  22. }
  23. static inline void ftrace_nmi_exit(void)
  24. {
  25. arch_ftrace_nmi_exit();
  26. #ifdef CONFIG_HWLAT_TRACER
  27. if (trace_hwlat_callback_enabled)
  28. trace_hwlat_callback(false);
  29. #endif
  30. }
  31. #endif /* _LINUX_FTRACE_IRQ_H */