diff --git a/kmod/src/data.c b/kmod/src/data.c index ce3cafe8..907d4fdf 100644 --- a/kmod/src/data.c +++ b/kmod/src/data.c @@ -2059,6 +2059,8 @@ out: ret = vmf_error(err); } + trace_scoutfs_data_page_mkwrite(sb, scoutfs_ino(inode), pos, (__force u32)ret); + return ret; } @@ -2122,6 +2124,8 @@ out: ret = VM_FAULT_RETRY; } + trace_scoutfs_data_filemap_fault(sb, scoutfs_ino(inode), pos, (__force u32)ret); + return ret; } diff --git a/kmod/src/scoutfs_trace.h b/kmod/src/scoutfs_trace.h index e9c09750..930a275a 100644 --- a/kmod/src/scoutfs_trace.h +++ b/kmod/src/scoutfs_trace.h @@ -286,6 +286,52 @@ TRACE_EVENT(scoutfs_data_alloc_block_enter, STE_ENTRY_ARGS(ext)) ); +TRACE_EVENT(scoutfs_data_page_mkwrite, + TP_PROTO(struct super_block *sb, __u64 ino, __u64 pos, __u32 ret), + + TP_ARGS(sb, ino, pos, ret), + + TP_STRUCT__entry( + SCSB_TRACE_FIELDS + __field(__u64, ino) + __field(__u64, pos) + __field(__u32, ret) + ), + + TP_fast_assign( + SCSB_TRACE_ASSIGN(sb); + __entry->ino = ino; + __entry->pos = pos; + __entry->ret = ret; + ), + + TP_printk(SCSBF" ino %llu pos %llu ret %u ", + SCSB_TRACE_ARGS, __entry->ino, __entry->pos, __entry->ret) +); + +TRACE_EVENT(scoutfs_data_filemap_fault, + TP_PROTO(struct super_block *sb, __u64 ino, __u64 pos, __u32 ret), + + TP_ARGS(sb, ino, pos, ret), + + TP_STRUCT__entry( + SCSB_TRACE_FIELDS + __field(__u64, ino) + __field(__u64, pos) + __field(__u32, ret) + ), + + TP_fast_assign( + SCSB_TRACE_ASSIGN(sb); + __entry->ino = ino; + __entry->pos = pos; + __entry->ret = ret; + ), + + TP_printk(SCSBF" ino %llu pos %llu ret %u ", + SCSB_TRACE_ARGS, __entry->ino, __entry->pos, __entry->ret) +); + DECLARE_EVENT_CLASS(scoutfs_data_file_extent_class, TP_PROTO(struct super_block *sb, __u64 ino, struct scoutfs_extent *ext),