Commit c3ff68d7 authored by Ross Zwisler's avatar Ross Zwisler Committed by Linus Torvalds

dax: add tracepoints to dax_pfn_mkwrite()

Add tracepoints to dax_pfn_mkwrite(), following the same logging
conventions as the rest of DAX.

Here is an example PTE fault followed by a pfn_mkwrite:

  small_aligned-1094  [002] ....
   374.084998: dax_pte_fault: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10400000 pgoff 0x200

  small_aligned-1094  [002] ....
   374.085145: dax_pte_fault_done: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10400000 pgoff 0x200 MAJOR|NOPAGE

  small_aligned-1094  [002] ....
   374.085165: dax_pfn_mkwrite: dev 259:0 ino 0x1003 shared WRITE|MKWRITE|ALLOW_RETRY|KILLABLE|USER address 0x10400000 pgoff 0x200 NOPAGE

Link: http://lkml.kernel.org/r/20170221195116.13278-3-ross.zwisler@linux.intel.comSigned-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Matthew Wilcox <mawilcox@microsoft.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent a9c42b33
...@@ -927,6 +927,7 @@ int dax_pfn_mkwrite(struct vm_fault *vmf) ...@@ -927,6 +927,7 @@ int dax_pfn_mkwrite(struct vm_fault *vmf)
{ {
struct file *file = vmf->vma->vm_file; struct file *file = vmf->vma->vm_file;
struct address_space *mapping = file->f_mapping; struct address_space *mapping = file->f_mapping;
struct inode *inode = mapping->host;
void *entry, **slot; void *entry, **slot;
pgoff_t index = vmf->pgoff; pgoff_t index = vmf->pgoff;
...@@ -936,6 +937,7 @@ int dax_pfn_mkwrite(struct vm_fault *vmf) ...@@ -936,6 +937,7 @@ int dax_pfn_mkwrite(struct vm_fault *vmf)
if (entry) if (entry)
put_unlocked_mapping_entry(mapping, index, entry); put_unlocked_mapping_entry(mapping, index, entry);
spin_unlock_irq(&mapping->tree_lock); spin_unlock_irq(&mapping->tree_lock);
trace_dax_pfn_mkwrite_no_entry(inode, vmf, VM_FAULT_NOPAGE);
return VM_FAULT_NOPAGE; return VM_FAULT_NOPAGE;
} }
radix_tree_tag_set(&mapping->page_tree, index, PAGECACHE_TAG_DIRTY); radix_tree_tag_set(&mapping->page_tree, index, PAGECACHE_TAG_DIRTY);
...@@ -948,6 +950,7 @@ int dax_pfn_mkwrite(struct vm_fault *vmf) ...@@ -948,6 +950,7 @@ int dax_pfn_mkwrite(struct vm_fault *vmf)
*/ */
finish_mkwrite_fault(vmf); finish_mkwrite_fault(vmf);
put_locked_mapping_entry(mapping, index, entry); put_locked_mapping_entry(mapping, index, entry);
trace_dax_pfn_mkwrite(inode, vmf, VM_FAULT_NOPAGE);
return VM_FAULT_NOPAGE; return VM_FAULT_NOPAGE;
} }
EXPORT_SYMBOL_GPL(dax_pfn_mkwrite); EXPORT_SYMBOL_GPL(dax_pfn_mkwrite);
......
...@@ -190,6 +190,8 @@ DEFINE_EVENT(dax_pte_fault_class, name, \ ...@@ -190,6 +190,8 @@ DEFINE_EVENT(dax_pte_fault_class, name, \
DEFINE_PTE_FAULT_EVENT(dax_pte_fault); DEFINE_PTE_FAULT_EVENT(dax_pte_fault);
DEFINE_PTE_FAULT_EVENT(dax_pte_fault_done); DEFINE_PTE_FAULT_EVENT(dax_pte_fault_done);
DEFINE_PTE_FAULT_EVENT(dax_pfn_mkwrite_no_entry);
DEFINE_PTE_FAULT_EVENT(dax_pfn_mkwrite);
#endif /* _TRACE_FS_DAX_H */ #endif /* _TRACE_FS_DAX_H */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment