filemap.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #undef TRACE_SYSTEM
  2. #define TRACE_SYSTEM filemap
  3. #if !defined(_TRACE_FILEMAP_H) || defined(TRACE_HEADER_MULTI_READ)
  4. #define _TRACE_FILEMAP_H
  5. #include <linux/types.h>
  6. #include <linux/tracepoint.h>
  7. #include <linux/mm.h>
  8. #include <linux/memcontrol.h>
  9. #include <linux/device.h>
  10. #include <linux/kdev_t.h>
  11. DECLARE_EVENT_CLASS(mm_filemap_op_page_cache,
  12. TP_PROTO(struct page *page),
  13. TP_ARGS(page),
  14. TP_STRUCT__entry(
  15. __field(struct page *, page)
  16. __field(unsigned long, i_ino)
  17. __field(unsigned long, index)
  18. __field(dev_t, s_dev)
  19. ),
  20. TP_fast_assign(
  21. __entry->page = page;
  22. __entry->i_ino = page->mapping->host->i_ino;
  23. __entry->index = page->index;
  24. if (page->mapping->host->i_sb)
  25. __entry->s_dev = page->mapping->host->i_sb->s_dev;
  26. else
  27. __entry->s_dev = page->mapping->host->i_rdev;
  28. ),
  29. TP_printk("dev %d:%d ino %lx page=%p pfn=%lu ofs=%lu",
  30. MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
  31. __entry->i_ino,
  32. __entry->page,
  33. page_to_pfn(__entry->page),
  34. __entry->index << PAGE_SHIFT)
  35. );
  36. DEFINE_EVENT(mm_filemap_op_page_cache, mm_filemap_delete_from_page_cache,
  37. TP_PROTO(struct page *page),
  38. TP_ARGS(page)
  39. );
  40. DEFINE_EVENT(mm_filemap_op_page_cache, mm_filemap_add_to_page_cache,
  41. TP_PROTO(struct page *page),
  42. TP_ARGS(page)
  43. );
  44. DECLARE_EVENT_CLASS(mm_fmflt_op,
  45. TP_PROTO(int x),
  46. TP_ARGS(x),
  47. TP_STRUCT__entry(__array(char, x, 0)),
  48. TP_fast_assign((void)x),
  49. TP_printk("%s", "")
  50. );
  51. DEFINE_EVENT(mm_fmflt_op, mm_fmflt_op_read,
  52. TP_PROTO(int x),
  53. TP_ARGS(x)
  54. );
  55. DEFINE_EVENT(mm_fmflt_op, mm_fmflt_op_read_done,
  56. TP_PROTO(int x),
  57. TP_ARGS(x)
  58. );
  59. DEFINE_EVENT(mm_fmflt_op, mm_fmflt_op_wait,
  60. TP_PROTO(int x),
  61. TP_ARGS(x)
  62. );
  63. DEFINE_EVENT(mm_fmflt_op, mm_fmflt_op_wait_done,
  64. TP_PROTO(int x),
  65. TP_ARGS(x)
  66. );
  67. #endif /* _TRACE_FILEMAP_H */
  68. /* This part must be outside protection */
  69. #include <trace/define_trace.h>