~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/trace/events/huge_memory.h

Version: ~ [ linux-5.6-rc1 ] ~ [ linux-5.5.2 ] ~ [ linux-5.4.17 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.102 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.170 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.213 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.213 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.81 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #undef TRACE_SYSTEM
  3 #define TRACE_SYSTEM huge_memory
  4 
  5 #if !defined(__HUGE_MEMORY_H) || defined(TRACE_HEADER_MULTI_READ)
  6 #define __HUGE_MEMORY_H
  7 
  8 #include  <linux/tracepoint.h>
  9 
 10 #define SCAN_STATUS                                                     \
 11         EM( SCAN_FAIL,                  "failed")                       \
 12         EM( SCAN_SUCCEED,               "succeeded")                    \
 13         EM( SCAN_PMD_NULL,              "pmd_null")                     \
 14         EM( SCAN_EXCEED_NONE_PTE,       "exceed_none_pte")              \
 15         EM( SCAN_PTE_NON_PRESENT,       "pte_non_present")              \
 16         EM( SCAN_PAGE_RO,               "no_writable_page")             \
 17         EM( SCAN_LACK_REFERENCED_PAGE,  "lack_referenced_page")         \
 18         EM( SCAN_PAGE_NULL,             "page_null")                    \
 19         EM( SCAN_SCAN_ABORT,            "scan_aborted")                 \
 20         EM( SCAN_PAGE_COUNT,            "not_suitable_page_count")      \
 21         EM( SCAN_PAGE_LRU,              "page_not_in_lru")              \
 22         EM( SCAN_PAGE_LOCK,             "page_locked")                  \
 23         EM( SCAN_PAGE_ANON,             "page_not_anon")                \
 24         EM( SCAN_PAGE_COMPOUND,         "page_compound")                \
 25         EM( SCAN_ANY_PROCESS,           "no_process_for_page")          \
 26         EM( SCAN_VMA_NULL,              "vma_null")                     \
 27         EM( SCAN_VMA_CHECK,             "vma_check_failed")             \
 28         EM( SCAN_ADDRESS_RANGE,         "not_suitable_address_range")   \
 29         EM( SCAN_SWAP_CACHE_PAGE,       "page_swap_cache")              \
 30         EM( SCAN_DEL_PAGE_LRU,          "could_not_delete_page_from_lru")\
 31         EM( SCAN_ALLOC_HUGE_PAGE_FAIL,  "alloc_huge_page_failed")       \
 32         EM( SCAN_CGROUP_CHARGE_FAIL,    "ccgroup_charge_failed")        \
 33         EM( SCAN_EXCEED_SWAP_PTE,       "exceed_swap_pte")              \
 34         EMe(SCAN_TRUNCATED,             "truncated")                    \
 35 
 36 #undef EM
 37 #undef EMe
 38 #define EM(a, b)        TRACE_DEFINE_ENUM(a);
 39 #define EMe(a, b)       TRACE_DEFINE_ENUM(a);
 40 
 41 SCAN_STATUS
 42 
 43 #undef EM
 44 #undef EMe
 45 #define EM(a, b)        {a, b},
 46 #define EMe(a, b)       {a, b}
 47 
 48 TRACE_EVENT(mm_khugepaged_scan_pmd,
 49 
 50         TP_PROTO(struct mm_struct *mm, struct page *page, bool writable,
 51                  int referenced, int none_or_zero, int status, int unmapped),
 52 
 53         TP_ARGS(mm, page, writable, referenced, none_or_zero, status, unmapped),
 54 
 55         TP_STRUCT__entry(
 56                 __field(struct mm_struct *, mm)
 57                 __field(unsigned long, pfn)
 58                 __field(bool, writable)
 59                 __field(int, referenced)
 60                 __field(int, none_or_zero)
 61                 __field(int, status)
 62                 __field(int, unmapped)
 63         ),
 64 
 65         TP_fast_assign(
 66                 __entry->mm = mm;
 67                 __entry->pfn = page ? page_to_pfn(page) : -1;
 68                 __entry->writable = writable;
 69                 __entry->referenced = referenced;
 70                 __entry->none_or_zero = none_or_zero;
 71                 __entry->status = status;
 72                 __entry->unmapped = unmapped;
 73         ),
 74 
 75         TP_printk("mm=%p, scan_pfn=0x%lx, writable=%d, referenced=%d, none_or_zero=%d, status=%s, unmapped=%d",
 76                 __entry->mm,
 77                 __entry->pfn,
 78                 __entry->writable,
 79                 __entry->referenced,
 80                 __entry->none_or_zero,
 81                 __print_symbolic(__entry->status, SCAN_STATUS),
 82                 __entry->unmapped)
 83 );
 84 
 85 TRACE_EVENT(mm_collapse_huge_page,
 86 
 87         TP_PROTO(struct mm_struct *mm, int isolated, int status),
 88 
 89         TP_ARGS(mm, isolated, status),
 90 
 91         TP_STRUCT__entry(
 92                 __field(struct mm_struct *, mm)
 93                 __field(int, isolated)
 94                 __field(int, status)
 95         ),
 96 
 97         TP_fast_assign(
 98                 __entry->mm = mm;
 99                 __entry->isolated = isolated;
100                 __entry->status = status;
101         ),
102 
103         TP_printk("mm=%p, isolated=%d, status=%s",
104                 __entry->mm,
105                 __entry->isolated,
106                 __print_symbolic(__entry->status, SCAN_STATUS))
107 );
108 
109 TRACE_EVENT(mm_collapse_huge_page_isolate,
110 
111         TP_PROTO(struct page *page, int none_or_zero,
112                  int referenced, bool  writable, int status),
113 
114         TP_ARGS(page, none_or_zero, referenced, writable, status),
115 
116         TP_STRUCT__entry(
117                 __field(unsigned long, pfn)
118                 __field(int, none_or_zero)
119                 __field(int, referenced)
120                 __field(bool, writable)
121                 __field(int, status)
122         ),
123 
124         TP_fast_assign(
125                 __entry->pfn = page ? page_to_pfn(page) : -1;
126                 __entry->none_or_zero = none_or_zero;
127                 __entry->referenced = referenced;
128                 __entry->writable = writable;
129                 __entry->status = status;
130         ),
131 
132         TP_printk("scan_pfn=0x%lx, none_or_zero=%d, referenced=%d, writable=%d, status=%s",
133                 __entry->pfn,
134                 __entry->none_or_zero,
135                 __entry->referenced,
136                 __entry->writable,
137                 __print_symbolic(__entry->status, SCAN_STATUS))
138 );
139 
140 TRACE_EVENT(mm_collapse_huge_page_swapin,
141 
142         TP_PROTO(struct mm_struct *mm, int swapped_in, int referenced, int ret),
143 
144         TP_ARGS(mm, swapped_in, referenced, ret),
145 
146         TP_STRUCT__entry(
147                 __field(struct mm_struct *, mm)
148                 __field(int, swapped_in)
149                 __field(int, referenced)
150                 __field(int, ret)
151         ),
152 
153         TP_fast_assign(
154                 __entry->mm = mm;
155                 __entry->swapped_in = swapped_in;
156                 __entry->referenced = referenced;
157                 __entry->ret = ret;
158         ),
159 
160         TP_printk("mm=%p, swapped_in=%d, referenced=%d, ret=%d",
161                 __entry->mm,
162                 __entry->swapped_in,
163                 __entry->referenced,
164                 __entry->ret)
165 );
166 
167 #endif /* __HUGE_MEMORY_H */
168 #include <trace/define_trace.h>
169 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp