^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define TRACE_SYSTEM cma
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #if !defined(_TRACE_CMA_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #define _TRACE_CMA_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) DECLARE_EVENT_CLASS(cma_alloc_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) TP_PROTO(const char *name, unsigned long pfn, const struct page *page,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) unsigned int count, unsigned int align),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) TP_ARGS(name, pfn, page, count, align),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) __string(name, name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) __field(unsigned long, pfn)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) __field(const struct page *, page)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) __field(unsigned int, count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) __field(unsigned int, align)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) __assign_str(name, name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) __entry->pfn = pfn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) __entry->page = page;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) __entry->count = count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) __entry->align = align;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) TP_printk("name=%s pfn=%lx page=%p count=%u align=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) __get_str(name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) __entry->pfn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) __entry->page,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) __entry->count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) __entry->align)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) TRACE_EVENT(cma_release,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) TP_PROTO(const char *name, unsigned long pfn, const struct page *page,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) unsigned int count),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) TP_ARGS(name, pfn, page, count),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) __string(name, name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) __field(unsigned long, pfn)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) __field(const struct page *, page)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) __field(unsigned int, count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) __assign_str(name, name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) __entry->pfn = pfn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) __entry->page = page;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) __entry->count = count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) TP_printk("name=%s pfn=%lx page=%p count=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) __get_str(name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) __entry->pfn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) __entry->page,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) __entry->count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) TRACE_EVENT(cma_alloc_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) TP_PROTO(const char *name, unsigned int count, unsigned int align),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) TP_ARGS(name, count, align),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) __string(name, name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) __field(unsigned int, count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) __field(unsigned int, align)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) __assign_str(name, name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) __entry->count = count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) __entry->align = align;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) TP_printk("name=%s count=%u align=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) __get_str(name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) __entry->count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) __entry->align)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) TRACE_EVENT(cma_alloc_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) TP_PROTO(const char *name, const struct page *page, unsigned int count, unsigned int align, struct cma_alloc_info *info),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) TP_ARGS(name, page, count, align, info),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) __string(name, name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) __field(unsigned long, pfn)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) __field(unsigned int, count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) __field(unsigned int, align)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) __field(unsigned long, nr_migrated)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) __field(unsigned long, nr_reclaimed)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) __field(unsigned long, nr_mapped)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) __field(unsigned int, err_iso)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) __field(unsigned int, err_mig)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) __field(unsigned int, err_test)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) __assign_str(name, name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) __entry->pfn = page ? page_to_pfn(page) : -1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) __entry->count = count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) __entry->align = align;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) __entry->nr_migrated = info->nr_migrated;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) __entry->nr_reclaimed = info->nr_reclaimed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) __entry->nr_mapped = info->nr_mapped;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) __entry->err_iso = info->nr_isolate_fail;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) __entry->err_mig = info->nr_migrate_fail;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) __entry->err_test = info->nr_test_fail;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) TP_printk("name=%s pfn=0x%lx count=%u align=%u nr_migrated=%lu nr_reclaimed=%lu nr_mapped=%lu err_iso=%u err_mig=%u err_test=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) __get_str(name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) __entry->pfn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) __entry->count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) __entry->align,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) __entry->nr_migrated,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) __entry->nr_reclaimed,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) __entry->nr_mapped,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) __entry->err_iso,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) __entry->err_mig,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) __entry->err_test)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) DEFINE_EVENT(cma_alloc_class, cma_alloc_finish,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) TP_PROTO(const char *name, unsigned long pfn, const struct page *page,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) unsigned int count, unsigned int align),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) TP_ARGS(name, pfn, page, count, align)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) DEFINE_EVENT(cma_alloc_class, cma_alloc_busy_retry,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) TP_PROTO(const char *name, unsigned long pfn, const struct page *page,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) unsigned int count, unsigned int align),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) TP_ARGS(name, pfn, page, count, align)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) #endif /* _TRACE_CMA_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) #include <trace/define_trace.h>