cma.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #undef TRACE_SYSTEM
  3. #define TRACE_SYSTEM cma
  4. #if !defined(_TRACE_CMA_H) || defined(TRACE_HEADER_MULTI_READ)
  5. #define _TRACE_CMA_H
  6. #include <linux/types.h>
  7. #include <linux/tracepoint.h>
  8. DECLARE_EVENT_CLASS(cma_alloc_class,
  9. TP_PROTO(const char *name, unsigned long pfn, const struct page *page,
  10. unsigned long count, unsigned int align),
  11. TP_ARGS(name, pfn, page, count, align),
  12. TP_STRUCT__entry(
  13. __string(name, name)
  14. __field(unsigned long, pfn)
  15. __field(const struct page *, page)
  16. __field(unsigned long, count)
  17. __field(unsigned int, align)
  18. ),
  19. TP_fast_assign(
  20. __assign_str(name, name);
  21. __entry->pfn = pfn;
  22. __entry->page = page;
  23. __entry->count = count;
  24. __entry->align = align;
  25. ),
  26. TP_printk("name=%s pfn=0x%lx page=%p count=%lu align=%u",
  27. __get_str(name),
  28. __entry->pfn,
  29. __entry->page,
  30. __entry->count,
  31. __entry->align)
  32. );
  33. TRACE_EVENT(cma_release,
  34. TP_PROTO(const char *name, unsigned long pfn, const struct page *page,
  35. unsigned long count),
  36. TP_ARGS(name, pfn, page, count),
  37. TP_STRUCT__entry(
  38. __string(name, name)
  39. __field(unsigned long, pfn)
  40. __field(const struct page *, page)
  41. __field(unsigned long, count)
  42. ),
  43. TP_fast_assign(
  44. __assign_str(name, name);
  45. __entry->pfn = pfn;
  46. __entry->page = page;
  47. __entry->count = count;
  48. ),
  49. TP_printk("name=%s pfn=0x%lx page=%p count=%lu",
  50. __get_str(name),
  51. __entry->pfn,
  52. __entry->page,
  53. __entry->count)
  54. );
  55. TRACE_EVENT(cma_alloc_start,
  56. TP_PROTO(const char *name, unsigned long count, unsigned int align),
  57. TP_ARGS(name, count, align),
  58. TP_STRUCT__entry(
  59. __string(name, name)
  60. __field(unsigned long, count)
  61. __field(unsigned int, align)
  62. ),
  63. TP_fast_assign(
  64. __assign_str(name, name);
  65. __entry->count = count;
  66. __entry->align = align;
  67. ),
  68. TP_printk("name=%s count=%lu align=%u",
  69. __get_str(name),
  70. __entry->count,
  71. __entry->align)
  72. );
  73. DEFINE_EVENT(cma_alloc_class, cma_alloc_finish,
  74. TP_PROTO(const char *name, unsigned long pfn, const struct page *page,
  75. unsigned long count, unsigned int align),
  76. TP_ARGS(name, pfn, page, count, align)
  77. );
  78. DEFINE_EVENT(cma_alloc_class, cma_alloc_busy_retry,
  79. TP_PROTO(const char *name, unsigned long pfn, const struct page *page,
  80. unsigned long count, unsigned int align),
  81. TP_ARGS(name, pfn, page, count, align)
  82. );
  83. #endif /* _TRACE_CMA_H */
  84. /* This part must be outside protection */
  85. #include <trace/define_trace.h>