thp.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #undef TRACE_SYSTEM
  3. #define TRACE_SYSTEM thp
  4. #if !defined(_TRACE_THP_H) || defined(TRACE_HEADER_MULTI_READ)
  5. #define _TRACE_THP_H
  6. #include <linux/types.h>
  7. #include <linux/tracepoint.h>
  8. #ifdef CONFIG_PPC_BOOK3S_64
  9. DECLARE_EVENT_CLASS(hugepage_set,
  10. TP_PROTO(unsigned long addr, unsigned long pte),
  11. TP_ARGS(addr, pte),
  12. TP_STRUCT__entry(
  13. __field(unsigned long, addr)
  14. __field(unsigned long, pte)
  15. ),
  16. TP_fast_assign(
  17. __entry->addr = addr;
  18. __entry->pte = pte;
  19. ),
  20. TP_printk("Set page table entry with 0x%lx with 0x%lx", __entry->addr, __entry->pte)
  21. );
  22. DEFINE_EVENT(hugepage_set, hugepage_set_pmd,
  23. TP_PROTO(unsigned long addr, unsigned long pmd),
  24. TP_ARGS(addr, pmd)
  25. );
  26. DEFINE_EVENT(hugepage_set, hugepage_set_pud,
  27. TP_PROTO(unsigned long addr, unsigned long pud),
  28. TP_ARGS(addr, pud)
  29. );
  30. DECLARE_EVENT_CLASS(hugepage_update,
  31. TP_PROTO(unsigned long addr, unsigned long pte, unsigned long clr, unsigned long set),
  32. TP_ARGS(addr, pte, clr, set),
  33. TP_STRUCT__entry(
  34. __field(unsigned long, addr)
  35. __field(unsigned long, pte)
  36. __field(unsigned long, clr)
  37. __field(unsigned long, set)
  38. ),
  39. TP_fast_assign(
  40. __entry->addr = addr;
  41. __entry->pte = pte;
  42. __entry->clr = clr;
  43. __entry->set = set;
  44. ),
  45. TP_printk("hugepage update at addr 0x%lx and pte = 0x%lx clr = 0x%lx, set = 0x%lx", __entry->addr, __entry->pte, __entry->clr, __entry->set)
  46. );
  47. DEFINE_EVENT(hugepage_update, hugepage_update_pmd,
  48. TP_PROTO(unsigned long addr, unsigned long pmd, unsigned long clr, unsigned long set),
  49. TP_ARGS(addr, pmd, clr, set)
  50. );
  51. DEFINE_EVENT(hugepage_update, hugepage_update_pud,
  52. TP_PROTO(unsigned long addr, unsigned long pud, unsigned long clr, unsigned long set),
  53. TP_ARGS(addr, pud, clr, set)
  54. );
  55. #endif /* CONFIG_PPC_BOOK3S_64 */
  56. DECLARE_EVENT_CLASS(migration_pmd,
  57. TP_PROTO(unsigned long addr, unsigned long pmd),
  58. TP_ARGS(addr, pmd),
  59. TP_STRUCT__entry(
  60. __field(unsigned long, addr)
  61. __field(unsigned long, pmd)
  62. ),
  63. TP_fast_assign(
  64. __entry->addr = addr;
  65. __entry->pmd = pmd;
  66. ),
  67. TP_printk("addr=%lx, pmd=%lx", __entry->addr, __entry->pmd)
  68. );
  69. DEFINE_EVENT(migration_pmd, set_migration_pmd,
  70. TP_PROTO(unsigned long addr, unsigned long pmd),
  71. TP_ARGS(addr, pmd)
  72. );
  73. DEFINE_EVENT(migration_pmd, remove_migration_pmd,
  74. TP_PROTO(unsigned long addr, unsigned long pmd),
  75. TP_ARGS(addr, pmd)
  76. );
  77. #endif /* _TRACE_THP_H */
  78. /* This part must be outside protection */
  79. #include <trace/define_trace.h>