/* SPDX-License-Identifier: GPL-2.0 */ #undef TRACE_SYSTEM #define TRACE_SYSTEM fs_dax #if !defined(_TRACE_FS_DAX_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_FS_DAX_H #include <linux/tracepoint.h> DECLARE_EVENT_CLASS(dax_pmd_fault_class, TP_PROTO(struct inode *inode, struct vm_fault *vmf, pgoff_t max_pgoff, int result), TP_ARGS(inode, vmf, max_pgoff, result), TP_STRUCT__entry( __field(unsigned long, ino) __field(unsigned long, vm_start) __field(unsigned long, vm_end) __field(unsigned long, vm_flags) __field(unsigned long, address) __field(pgoff_t, pgoff) __field(pgoff_t, max_pgoff) __field(dev_t, dev) __field(unsigned int, flags) __field(int, result) ), TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; __entry->vm_start = vmf->vma->vm_start; __entry->vm_end = vmf->vma->vm_end; __entry->vm_flags = vmf->vma->vm_flags; __entry->address = vmf->address; __entry->flags = vmf->flags; __entry->pgoff = vmf->pgoff; __entry->max_pgoff = max_pgoff; __entry->result = result; ), TP_printk("dev %d:%d ino %#lx %s %s address %#lx vm_start " "%#lx vm_end %#lx pgoff %#lx max_pgoff %#lx %s", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->vm_flags & VM_SHARED ? "shared" : "private", __print_flags(__entry->flags, "|", FAULT_FLAG_TRACE), __entry->address, __entry->vm_start, __entry->vm_end, __entry->pgoff, __entry->max_pgoff, __print_flags(__entry->result, "|", VM_FAULT_RESULT_TRACE) ) ) #define DEFINE_PMD_FAULT_EVENT(name) \ DEFINE_EVENT(dax_pmd_fault_class, name, \ TP_PROTO(struct inode *inode, struct vm_fault *vmf, \ pgoff_t max_pgoff, int result), \ TP_ARGS(inode, vmf, max_pgoff, result)) DEFINE_PMD_FAULT_EVENT(dax_pmd_fault); DEFINE_PMD_FAULT_EVENT(dax_pmd_fault_done); DECLARE_EVENT_CLASS(dax_pmd_load_hole_class, TP_PROTO(struct inode *inode, struct vm_fault *vmf, struct page *zero_page, void *radix_entry), TP_ARGS(inode, vmf, zero_page, radix_entry), TP_STRUCT__entry( __field(unsigned long, ino) __field(unsigned long, vm_flags) __field(unsigned long, address) __field(struct page *, zero_page) __field(void *, radix_entry) __field(dev_t, dev) ), TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; __entry->vm_flags = vmf->vma->vm_flags; __entry->address = vmf->address; __entry->zero_page = zero_page; __entry->radix_entry = radix_entry; ), TP_printk("dev %d:%d ino %#lx %s address %#lx zero_page %p " "radix_entry %#lx", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->vm_flags & VM_SHARED ? "shared" : "private", __entry->address, __entry->zero_page, (unsigned long)__entry->radix_entry ) ) #define DEFINE_PMD_LOAD_HOLE_EVENT(name) \ DEFINE_EVENT(dax_pmd_load_hole_class, name, \ TP_PROTO(struct inode *inode, struct vm_fault *vmf, \ struct page *zero_page, void *radix_entry), \ TP_ARGS(inode, vmf, zero_page, radix_entry)) DEFINE_PMD_LOAD_HOLE_EVENT(dax_pmd_load_hole); DEFINE_PMD_LOAD_HOLE_EVENT(dax_pmd_load_hole_fallback); DECLARE_EVENT_CLASS(dax_pmd_insert_mapping_class, TP_PROTO(struct inode *inode, struct vm_fault *vmf, long length, pfn_t pfn, void *radix_entry), TP_ARGS(inode, vmf, length, pfn, radix_entry), TP_STRUCT__entry( __field(unsigned long, ino) __field(unsigned long, vm_flags) __field(unsigned long, address) __field(long, length) __field(u64, pfn_val) __field(void *, radix_entry) __field(dev_t, dev) __field(int, write) ), TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; __entry->vm_flags = vmf->vma->vm_flags; __entry->address = vmf->address; __entry->write = vmf->flags & FAULT_FLAG_WRITE; __entry->length = length; __entry->pfn_val = pfn.val; __entry->radix_entry = radix_entry; ), TP_printk("dev %d:%d ino %#lx %s %s address %#lx length %#lx " "pfn %#llx %s radix_entry %#lx", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->vm_flags & VM_SHARED ? "shared" : "private", __entry->write ? "write" : "read", __entry->address, __entry->length, __entry->pfn_val & ~PFN_FLAGS_MASK, __print_flags_u64(__entry->pfn_val & PFN_FLAGS_MASK, "|", PFN_FLAGS_TRACE), (unsigned long)__entry->radix_entry ) ) #define DEFINE_PMD_INSERT_MAPPING_EVENT(name) \ DEFINE_EVENT(dax_pmd_insert_mapping_class, name, \ TP_PROTO(struct inode *inode, struct vm_fault *vmf, \ long length, pfn_t pfn, void *radix_entry), \ TP_ARGS(inode, vmf, length, pfn, radix_entry)) DEFINE_PMD_INSERT_MAPPING_EVENT(dax_pmd_insert_mapping); DECLARE_EVENT_CLASS(dax_pte_fault_class, TP_PROTO(struct inode *inode, struct vm_fault *vmf, int result), TP_ARGS(inode, vmf, result), TP_STRUCT__entry( __field(unsigned long, ino) __field(unsigned long, vm_flags) __field(unsigned long, address) __field(pgoff_t, pgoff) __field(dev_t, dev) __field(unsigned int, flags) __field(int, result) ), TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; __entry->vm_flags = vmf->vma->vm_flags; __entry->address = vmf->address; __entry->flags = vmf->flags; __entry->pgoff = vmf->pgoff; __entry->result = result; ), TP_printk("dev %d:%d ino %#lx %s %s address %#lx pgoff %#lx %s", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->vm_flags & VM_SHARED ? "shared" : "private", __print_flags(__entry->flags, "|", FAULT_FLAG_TRACE), __entry->address, __entry->pgoff, __print_flags(__entry->result, "|", VM_FAULT_RESULT_TRACE) ) ) #define DEFINE_PTE_FAULT_EVENT(name) \ DEFINE_EVENT(dax_pte_fault_class, name, \ TP_PROTO(struct inode *inode, struct vm_fault *vmf, int result), \ TP_ARGS(inode, vmf, result)) DEFINE_PTE_FAULT_EVENT(dax_pte_fault); DEFINE_PTE_FAULT_EVENT(dax_pte_fault_done); DEFINE_PTE_FAULT_EVENT(dax_load_hole); DEFINE_PTE_FAULT_EVENT(dax_insert_pfn_mkwrite_no_entry); DEFINE_PTE_FAULT_EVENT(dax_insert_pfn_mkwrite); TRACE_EVENT(dax_insert_mapping, TP_PROTO(struct inode *inode, struct vm_fault *vmf, void *radix_entry), TP_ARGS(inode, vmf, radix_entry), TP_STRUCT__entry( __field(unsigned long, ino) __field(unsigned long, vm_flags) __field(unsigned long, address) __field(void *, radix_entry) __field(dev_t, dev) __field(int, write) ), TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; __entry->vm_flags = vmf->vma->vm_flags; __entry->address = vmf->address; __entry->write = vmf->flags & FAULT_FLAG_WRITE; __entry->radix_entry = radix_entry; ), TP_printk("dev %d:%d ino %#lx %s %s address %#lx radix_entry %#lx", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->vm_flags & VM_SHARED ? "shared" : "private", __entry->write ? "write" : "read", __entry->address, (unsigned long)__entry->radix_entry ) ) DECLARE_EVENT_CLASS(dax_writeback_range_class, TP_PROTO(struct inode *inode, pgoff_t start_index, pgoff_t end_index), TP_ARGS(inode, start_index, end_index), TP_STRUCT__entry( __field(unsigned long, ino) __field(pgoff_t, start_index) __field(pgoff_t, end_index) __field(dev_t, dev) ), TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; __entry->start_index = start_index; __entry->end_index = end_index; ), TP_printk("dev %d:%d ino %#lx pgoff %#lx-%#lx", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->start_index, __entry->end_index ) ) #define DEFINE_WRITEBACK_RANGE_EVENT(name) \ DEFINE_EVENT(dax_writeback_range_class, name, \ TP_PROTO(struct inode *inode, pgoff_t start_index, pgoff_t end_index),\ TP_ARGS(inode, start_index, end_index)) DEFINE_WRITEBACK_RANGE_EVENT(dax_writeback_range); DEFINE_WRITEBACK_RANGE_EVENT(dax_writeback_range_done); TRACE_EVENT(dax_writeback_one, TP_PROTO(struct inode *inode, pgoff_t pgoff, pgoff_t pglen), TP_ARGS(inode, pgoff, pglen), TP_STRUCT__entry( __field(unsigned long, ino) __field(pgoff_t, pgoff) __field(pgoff_t, pglen) __field(dev_t, dev) ), TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; __entry->pgoff = pgoff; __entry->pglen = pglen; ), TP_printk("dev %d:%d ino %#lx pgoff %#lx pglen %#lx", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->pgoff, __entry->pglen ) ) #endif /* _TRACE_FS_DAX_H */ /* This part must be outside protection */ #include <trace/define_trace.h>
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
9p.h | File | 5.1 KB | 0644 |
|
afs.h | File | 13.13 KB | 0644 |
|
alarmtimer.h | File | 2.04 KB | 0644 |
|
asoc.h | File | 5.17 KB | 0644 |
|
bcache.h | File | 10.9 KB | 0644 |
|
block.h | File | 17.18 KB | 0644 |
|
bpf.h | File | 8.23 KB | 0644 |
|
bridge.h | File | 3.45 KB | 0644 |
|
btrfs.h | File | 46.21 KB | 0644 |
|
cgroup.h | File | 3.21 KB | 0644 |
|
clk.h | File | 3.69 KB | 0644 |
|
cma.h | File | 1.31 KB | 0644 |
|
compaction.h | File | 7.76 KB | 0644 |
|
context_tracking.h | File | 1.15 KB | 0644 |
|
cpuhp.h | File | 1.83 KB | 0644 |
|
devlink.h | File | 1.76 KB | 0644 |
|
dma_fence.h | File | 1.66 KB | 0644 |
|
ext4.h | File | 64.44 KB | 0644 |
|
f2fs.h | File | 36.38 KB | 0644 |
|
fib.h | File | 2.45 KB | 0644 |
|
fib6.h | File | 1.82 KB | 0644 |
|
filelock.h | File | 6.27 KB | 0644 |
|
filemap.h | File | 2.74 KB | 0644 |
|
fs.h | File | 946 B | 0644 |
|
fs_dax.h | File | 8.26 KB | 0644 |
|
fsi.h | File | 2.81 KB | 0644 |
|
fsi_master_gpio.h | File | 1.54 KB | 0644 |
|
gpio.h | File | 1.13 KB | 0644 |
|
host1x.h | File | 5.77 KB | 0644 |
|
hswadsp.h | File | 8.37 KB | 0644 |
|
huge_memory.h | File | 4.33 KB | 0644 |
|
i2c.h | File | 4.15 KB | 0644 |
|
intel-sst.h | File | 2.51 KB | 0644 |
|
intel_ish.h | File | 556 B | 0644 |
|
iommu.h | File | 3.03 KB | 0644 |
|
ipi.h | File | 1.88 KB | 0644 |
|
irq.h | File | 3.8 KB | 0644 |
|
irq_matrix.h | File | 4.94 KB | 0644 |
|
jbd2.h | File | 9.79 KB | 0644 |
|
kmem.h | File | 7.39 KB | 0644 |
|
kvm.h | File | 9.03 KB | 0644 |
|
libata.h | File | 11.57 KB | 0644 |
|
lock.h | File | 1.7 KB | 0644 |
|
mce.h | File | 1.85 KB | 0644 |
|
mdio.h | File | 1.02 KB | 0644 |
|
migrate.h | File | 2.42 KB | 0644 |
|
mmc.h | File | 7.24 KB | 0644 |
|
mmflags.h | File | 8.29 KB | 0644 |
|
module.h | File | 2.78 KB | 0644 |
|
napi.h | File | 1013 B | 0644 |
|
net.h | File | 6.56 KB | 0644 |
|
nilfs2.h | File | 5.2 KB | 0644 |
|
nmi.h | File | 780 B | 0644 |
|
oom.h | File | 3.88 KB | 0644 |
|
page_isolation.h | File | 943 B | 0644 |
|
page_ref.h | File | 2.99 KB | 0644 |
|
pagemap.h | File | 2.14 KB | 0644 |
|
percpu.h | File | 2.61 KB | 0644 |
|
power.h | File | 11.35 KB | 0644 |
|
power_cpu_migrate.h | File | 1.59 KB | 0644 |
|
preemptirq.h | File | 1.95 KB | 0644 |
|
printk.h | File | 786 B | 0644 |
|
qdisc.h | File | 1.37 KB | 0644 |
|
rcu.h | File | 24.64 KB | 0644 |
|
regulator.h | File | 2.4 KB | 0644 |
|
rpm.h | File | 2.34 KB | 0644 |
|
rxrpc.h | File | 33.79 KB | 0644 |
|
sched.h | File | 14.12 KB | 0644 |
|
scsi.h | File | 12.32 KB | 0644 |
|
signal.h | File | 3.43 KB | 0644 |
|
skb.h | File | 1.38 KB | 0644 |
|
smbus.h | File | 7.51 KB | 0644 |
|
sock.h | File | 1.72 KB | 0644 |
|
spi.h | File | 3.31 KB | 0644 |
|
spmi.h | File | 3.24 KB | 0644 |
|
sunrpc.h | File | 18.31 KB | 0644 |
|
sunvnet.h | File | 3.06 KB | 0644 |
|
swiotlb.h | File | 1.22 KB | 0644 |
|
syscalls.h | File | 1.48 KB | 0644 |
|
target.h | File | 7.52 KB | 0644 |
|
task.h | File | 1.49 KB | 0644 |
|
tcp.h | File | 6.57 KB | 0644 |
|
thermal.h | File | 5.58 KB | 0644 |
|
thermal_power_allocator.h | File | 3.22 KB | 0644 |
|
thp.h | File | 2.09 KB | 0644 |
|
timer.h | File | 9.58 KB | 0644 |
|
tlb.h | File | 1.41 KB | 0644 |
|
udp.h | File | 632 B | 0644 |
|
ufs.h | File | 6.85 KB | 0644 |
|
v4l2.h | File | 8.81 KB | 0644 |
|
vb2.h | File | 1.73 KB | 0644 |
|
vmscan.h | File | 12.47 KB | 0644 |
|
vsock_virtio_transport_common.h | File | 3.49 KB | 0644 |
|
wbt.h | File | 3.83 KB | 0644 |
|
workqueue.h | File | 2.7 KB | 0644 |
|
writeback.h | File | 19.81 KB | 0644 |
|
xdp.h | File | 5.76 KB | 0644 |
|
xen.h | File | 14.66 KB | 0644 |
|