tracepoint.c 724 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Code for supporting irq vector tracepoints.
  4. *
  5. * Copyright (C) 2013 Seiji Aguchi <seiji.aguchi@hds.com>
  6. *
  7. */
  8. #include <linux/jump_label.h>
  9. #include <linux/atomic.h>
  10. #include <asm/hw_irq.h>
  11. #include <asm/desc.h>
  12. DEFINE_STATIC_KEY_FALSE(trace_pagefault_key);
  13. int trace_pagefault_reg(void)
  14. {
  15. static_branch_inc(&trace_pagefault_key);
  16. return 0;
  17. }
  18. void trace_pagefault_unreg(void)
  19. {
  20. static_branch_dec(&trace_pagefault_key);
  21. }
  22. #ifdef CONFIG_SMP
  23. DEFINE_STATIC_KEY_FALSE(trace_resched_ipi_key);
  24. int trace_resched_ipi_reg(void)
  25. {
  26. static_branch_inc(&trace_resched_ipi_key);
  27. return 0;
  28. }
  29. void trace_resched_ipi_unreg(void)
  30. {
  31. static_branch_dec(&trace_resched_ipi_key);
  32. }
  33. #endif