Instead of passing in multiple parameters in the pmd_fault() handler, a vmf can be passed in just like a fault() handler. This will simplify code and remove the need for the actual pmd fault handlers to allocate a vmf. Related functions are also modified to do the same. [dave.jiang@intel.com: fix issue with xfs_tests stall when DAX option is off] Link: http://lkml.kernel.org/r/148469861071.195597.3619476895250028518.stgit@djiang5-desk3.ch.intel.com Link: http://lkml.kernel.org/r/1484085142-2297-7-git-send-email-ross.zwisler@linux.intel.com Signed-off-by: Dave Jiang <dave.jiang@intel.com> Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com> Reviewed-by: Jan Kara <jack@suse.cz> Cc: Dave Chinner <david@fromorbit.com> Cc: Matthew Wilcox <mawilcox@microsoft.com> Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing the changes to include/trace (1 of 8 files). Show all
Unified · Split
| @@ -8,9 +8,8 @@ · 7 unmodified lines | |||
| 8 | 8 | ||
| 9 | DECLARE_EVENT_CLASS(dax_pmd_fault_class, | 9 | DECLARE_EVENT_CLASS(dax_pmd_fault_class, |
| 10 | TP_PROTO(struct inode *inode, struct vm_area_struct *vma, | 10 | TP_PROTO(struct inode *inode, struct vm_area_struct *vma, |
| 11 | unsigned long address, unsigned int flags, pgoff_t pgoff, | 11 | struct vm_fault *vmf, pgoff_t max_pgoff, int result), |
| 12 | pgoff_t max_pgoff, int result), | 12 | TP_ARGS(inode, vma, vmf, max_pgoff, result), |
| 13 | TP_ARGS(inode, vma, address, flags, pgoff, max_pgoff, result), | ||
| 14 | TP_STRUCT__entry( | 13 | TP_STRUCT__entry( |
| 15 | __field(unsigned long, ino) | 14 | __field(unsigned long, ino) |
| 16 | __field(unsigned long, vm_start) | 15 | __field(unsigned long, vm_start) |
| @@ -29,9 +28,9 @@ DECLARE_EVENT_CLASS(dax_pmd_fault_class, · 12 unmodified lines | |||
| 29 | __entry->vm_start = vma->vm_start; | 28 | __entry->vm_start = vma->vm_start; |
| 30 | __entry->vm_end = vma->vm_end; | 29 | __entry->vm_end = vma->vm_end; |
| 31 | __entry->vm_flags = vma->vm_flags; | 30 | __entry->vm_flags = vma->vm_flags; |
| 32 | __entry->address = address; | 31 | __entry->address = vmf->address; |
| 33 | __entry->flags = flags; | 32 | __entry->flags = vmf->flags; |
| 34 | __entry->pgoff = pgoff; | 33 | __entry->pgoff = vmf->pgoff; |
| 35 | __entry->max_pgoff = max_pgoff; | 34 | __entry->max_pgoff = max_pgoff; |
| 36 | __entry->result = result; | 35 | __entry->result = result; |
| 37 | ), | 36 | ), |
| @@ -54,9 +53,9 @@ DECLARE_EVENT_CLASS(dax_pmd_fault_class, · 16 unmodified lines | |||
| 54 | #define DEFINE_PMD_FAULT_EVENT(name) \ | 53 | #define DEFINE_PMD_FAULT_EVENT(name) \ |
| 55 | DEFINE_EVENT(dax_pmd_fault_class, name, \ | 54 | DEFINE_EVENT(dax_pmd_fault_class, name, \ |
| 56 | TP_PROTO(struct inode *inode, struct vm_area_struct *vma, \ | 55 | TP_PROTO(struct inode *inode, struct vm_area_struct *vma, \ |
| 57 | unsigned long address, unsigned int flags, pgoff_t pgoff, \ | 56 | struct vm_fault *vmf, \ |
| 58 | pgoff_t max_pgoff, int result), \ | 57 | pgoff_t max_pgoff, int result), \ |
| 59 | TP_ARGS(inode, vma, address, flags, pgoff, max_pgoff, result)) | 58 | TP_ARGS(inode, vma, vmf, max_pgoff, result)) |
| 60 | 59 | ||
| 61 | DEFINE_PMD_FAULT_EVENT(dax_pmd_fault); | 60 | DEFINE_PMD_FAULT_EVENT(dax_pmd_fault); |
| 62 | DEFINE_PMD_FAULT_EVENT(dax_pmd_fault_done); | 61 | DEFINE_PMD_FAULT_EVENT(dax_pmd_fault_done); |