Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.18-rc7 208 lines 6.1 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#undef TRACE_SYSTEM 3#define TRACE_SYSTEM fs_dax 4 5#if !defined(_TRACE_FS_DAX_H) || defined(TRACE_HEADER_MULTI_READ) 6#define _TRACE_FS_DAX_H 7 8#include <linux/tracepoint.h> 9 10DECLARE_EVENT_CLASS(dax_pmd_fault_class, 11 TP_PROTO(struct inode *inode, struct vm_fault *vmf, 12 pgoff_t max_pgoff, int result), 13 TP_ARGS(inode, vmf, max_pgoff, result), 14 TP_STRUCT__entry( 15 __field(unsigned long, ino) 16 __field(unsigned long, vm_start) 17 __field(unsigned long, vm_end) 18 __field(vm_flags_t, vm_flags) 19 __field(unsigned long, address) 20 __field(pgoff_t, pgoff) 21 __field(pgoff_t, max_pgoff) 22 __field(dev_t, dev) 23 __field(unsigned int, flags) 24 __field(int, result) 25 ), 26 TP_fast_assign( 27 __entry->dev = inode->i_sb->s_dev; 28 __entry->ino = inode->i_ino; 29 __entry->vm_start = vmf->vma->vm_start; 30 __entry->vm_end = vmf->vma->vm_end; 31 __entry->vm_flags = vmf->vma->vm_flags; 32 __entry->address = vmf->address; 33 __entry->flags = vmf->flags; 34 __entry->pgoff = vmf->pgoff; 35 __entry->max_pgoff = max_pgoff; 36 __entry->result = result; 37 ), 38 TP_printk("dev %d:%d ino %#lx %s %s address %#lx vm_start " 39 "%#lx vm_end %#lx pgoff %#lx max_pgoff %#lx %s", 40 MAJOR(__entry->dev), 41 MINOR(__entry->dev), 42 __entry->ino, 43 __entry->vm_flags & VM_SHARED ? "shared" : "private", 44 __print_flags(__entry->flags, "|", FAULT_FLAG_TRACE), 45 __entry->address, 46 __entry->vm_start, 47 __entry->vm_end, 48 __entry->pgoff, 49 __entry->max_pgoff, 50 __print_flags(__entry->result, "|", VM_FAULT_RESULT_TRACE) 51 ) 52) 53 54#define DEFINE_PMD_FAULT_EVENT(name) \ 55DEFINE_EVENT(dax_pmd_fault_class, name, \ 56 TP_PROTO(struct inode *inode, struct vm_fault *vmf, \ 57 pgoff_t max_pgoff, int result), \ 58 TP_ARGS(inode, vmf, max_pgoff, result)) 59 60DEFINE_PMD_FAULT_EVENT(dax_pmd_fault); 61DEFINE_PMD_FAULT_EVENT(dax_pmd_fault_done); 62 63DECLARE_EVENT_CLASS(dax_pmd_load_hole_class, 64 TP_PROTO(struct inode *inode, struct vm_fault *vmf, 65 struct folio *zero_folio, 66 void *radix_entry), 67 TP_ARGS(inode, vmf, zero_folio, radix_entry), 68 TP_STRUCT__entry( 69 __field(unsigned long, ino) 70 __field(vm_flags_t, vm_flags) 71 __field(unsigned long, address) 72 __field(struct folio *, zero_folio) 73 __field(void *, radix_entry) 74 __field(dev_t, dev) 75 ), 76 TP_fast_assign( 77 __entry->dev = inode->i_sb->s_dev; 78 __entry->ino = inode->i_ino; 79 __entry->vm_flags = vmf->vma->vm_flags; 80 __entry->address = vmf->address; 81 __entry->zero_folio = zero_folio; 82 __entry->radix_entry = radix_entry; 83 ), 84 TP_printk("dev %d:%d ino %#lx %s address %#lx zero_folio %p " 85 "radix_entry %#lx", 86 MAJOR(__entry->dev), 87 MINOR(__entry->dev), 88 __entry->ino, 89 __entry->vm_flags & VM_SHARED ? "shared" : "private", 90 __entry->address, 91 __entry->zero_folio, 92 (unsigned long)__entry->radix_entry 93 ) 94) 95 96#define DEFINE_PMD_LOAD_HOLE_EVENT(name) \ 97DEFINE_EVENT(dax_pmd_load_hole_class, name, \ 98 TP_PROTO(struct inode *inode, struct vm_fault *vmf, \ 99 struct folio *zero_folio, void *radix_entry), \ 100 TP_ARGS(inode, vmf, zero_folio, radix_entry)) 101 102DEFINE_PMD_LOAD_HOLE_EVENT(dax_pmd_load_hole); 103DEFINE_PMD_LOAD_HOLE_EVENT(dax_pmd_load_hole_fallback); 104 105DECLARE_EVENT_CLASS(dax_pte_fault_class, 106 TP_PROTO(struct inode *inode, struct vm_fault *vmf, int result), 107 TP_ARGS(inode, vmf, result), 108 TP_STRUCT__entry( 109 __field(unsigned long, ino) 110 __field(vm_flags_t, vm_flags) 111 __field(unsigned long, address) 112 __field(pgoff_t, pgoff) 113 __field(dev_t, dev) 114 __field(unsigned int, flags) 115 __field(int, result) 116 ), 117 TP_fast_assign( 118 __entry->dev = inode->i_sb->s_dev; 119 __entry->ino = inode->i_ino; 120 __entry->vm_flags = vmf->vma->vm_flags; 121 __entry->address = vmf->address; 122 __entry->flags = vmf->flags; 123 __entry->pgoff = vmf->pgoff; 124 __entry->result = result; 125 ), 126 TP_printk("dev %d:%d ino %#lx %s %s address %#lx pgoff %#lx %s", 127 MAJOR(__entry->dev), 128 MINOR(__entry->dev), 129 __entry->ino, 130 __entry->vm_flags & VM_SHARED ? "shared" : "private", 131 __print_flags(__entry->flags, "|", FAULT_FLAG_TRACE), 132 __entry->address, 133 __entry->pgoff, 134 __print_flags(__entry->result, "|", VM_FAULT_RESULT_TRACE) 135 ) 136) 137 138#define DEFINE_PTE_FAULT_EVENT(name) \ 139DEFINE_EVENT(dax_pte_fault_class, name, \ 140 TP_PROTO(struct inode *inode, struct vm_fault *vmf, int result), \ 141 TP_ARGS(inode, vmf, result)) 142 143DEFINE_PTE_FAULT_EVENT(dax_pte_fault); 144DEFINE_PTE_FAULT_EVENT(dax_pte_fault_done); 145DEFINE_PTE_FAULT_EVENT(dax_load_hole); 146DEFINE_PTE_FAULT_EVENT(dax_insert_pfn_mkwrite_no_entry); 147DEFINE_PTE_FAULT_EVENT(dax_insert_pfn_mkwrite); 148 149DECLARE_EVENT_CLASS(dax_writeback_range_class, 150 TP_PROTO(struct inode *inode, pgoff_t start_index, pgoff_t end_index), 151 TP_ARGS(inode, start_index, end_index), 152 TP_STRUCT__entry( 153 __field(unsigned long, ino) 154 __field(pgoff_t, start_index) 155 __field(pgoff_t, end_index) 156 __field(dev_t, dev) 157 ), 158 TP_fast_assign( 159 __entry->dev = inode->i_sb->s_dev; 160 __entry->ino = inode->i_ino; 161 __entry->start_index = start_index; 162 __entry->end_index = end_index; 163 ), 164 TP_printk("dev %d:%d ino %#lx pgoff %#lx-%#lx", 165 MAJOR(__entry->dev), 166 MINOR(__entry->dev), 167 __entry->ino, 168 __entry->start_index, 169 __entry->end_index 170 ) 171) 172 173#define DEFINE_WRITEBACK_RANGE_EVENT(name) \ 174DEFINE_EVENT(dax_writeback_range_class, name, \ 175 TP_PROTO(struct inode *inode, pgoff_t start_index, pgoff_t end_index),\ 176 TP_ARGS(inode, start_index, end_index)) 177 178DEFINE_WRITEBACK_RANGE_EVENT(dax_writeback_range); 179DEFINE_WRITEBACK_RANGE_EVENT(dax_writeback_range_done); 180 181TRACE_EVENT(dax_writeback_one, 182 TP_PROTO(struct inode *inode, pgoff_t pgoff, pgoff_t pglen), 183 TP_ARGS(inode, pgoff, pglen), 184 TP_STRUCT__entry( 185 __field(unsigned long, ino) 186 __field(pgoff_t, pgoff) 187 __field(pgoff_t, pglen) 188 __field(dev_t, dev) 189 ), 190 TP_fast_assign( 191 __entry->dev = inode->i_sb->s_dev; 192 __entry->ino = inode->i_ino; 193 __entry->pgoff = pgoff; 194 __entry->pglen = pglen; 195 ), 196 TP_printk("dev %d:%d ino %#lx pgoff %#lx pglen %#lx", 197 MAJOR(__entry->dev), 198 MINOR(__entry->dev), 199 __entry->ino, 200 __entry->pgoff, 201 __entry->pglen 202 ) 203) 204 205#endif /* _TRACE_FS_DAX_H */ 206 207/* This part must be outside protection */ 208#include <trace/define_trace.h>