jbd.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. #undef TRACE_SYSTEM
  2. #define TRACE_SYSTEM jbd
  3. #if !defined(_TRACE_JBD_H) || defined(TRACE_HEADER_MULTI_READ)
  4. #define _TRACE_JBD_H
  5. #include <linux/jbd.h>
  6. #include <linux/tracepoint.h>
  7. TRACE_EVENT(jbd_checkpoint,
  8. TP_PROTO(journal_t *journal, int result),
  9. TP_ARGS(journal, result),
  10. TP_STRUCT__entry(
  11. __field( dev_t, dev )
  12. __field( int, result )
  13. ),
  14. TP_fast_assign(
  15. __entry->dev = journal->j_fs_dev->bd_dev;
  16. __entry->result = result;
  17. ),
  18. TP_printk("dev %d,%d result %d",
  19. MAJOR(__entry->dev), MINOR(__entry->dev),
  20. __entry->result)
  21. );
  22. DECLARE_EVENT_CLASS(jbd_commit,
  23. TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
  24. TP_ARGS(journal, commit_transaction),
  25. TP_STRUCT__entry(
  26. __field( dev_t, dev )
  27. __field( char, sync_commit )
  28. __field( int, transaction )
  29. ),
  30. TP_fast_assign(
  31. __entry->dev = journal->j_fs_dev->bd_dev;
  32. __entry->sync_commit = commit_transaction->t_synchronous_commit;
  33. __entry->transaction = commit_transaction->t_tid;
  34. ),
  35. TP_printk("dev %d,%d transaction %d sync %d",
  36. MAJOR(__entry->dev), MINOR(__entry->dev),
  37. __entry->transaction, __entry->sync_commit)
  38. );
  39. DEFINE_EVENT(jbd_commit, jbd_start_commit,
  40. TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
  41. TP_ARGS(journal, commit_transaction)
  42. );
  43. DEFINE_EVENT(jbd_commit, jbd_commit_locking,
  44. TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
  45. TP_ARGS(journal, commit_transaction)
  46. );
  47. DEFINE_EVENT(jbd_commit, jbd_commit_flushing,
  48. TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
  49. TP_ARGS(journal, commit_transaction)
  50. );
  51. DEFINE_EVENT(jbd_commit, jbd_commit_logging,
  52. TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
  53. TP_ARGS(journal, commit_transaction)
  54. );
  55. TRACE_EVENT(jbd_drop_transaction,
  56. TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
  57. TP_ARGS(journal, commit_transaction),
  58. TP_STRUCT__entry(
  59. __field( dev_t, dev )
  60. __field( char, sync_commit )
  61. __field( int, transaction )
  62. ),
  63. TP_fast_assign(
  64. __entry->dev = journal->j_fs_dev->bd_dev;
  65. __entry->sync_commit = commit_transaction->t_synchronous_commit;
  66. __entry->transaction = commit_transaction->t_tid;
  67. ),
  68. TP_printk("dev %d,%d transaction %d sync %d",
  69. MAJOR(__entry->dev), MINOR(__entry->dev),
  70. __entry->transaction, __entry->sync_commit)
  71. );
  72. TRACE_EVENT(jbd_end_commit,
  73. TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
  74. TP_ARGS(journal, commit_transaction),
  75. TP_STRUCT__entry(
  76. __field( dev_t, dev )
  77. __field( char, sync_commit )
  78. __field( int, transaction )
  79. __field( int, head )
  80. ),
  81. TP_fast_assign(
  82. __entry->dev = journal->j_fs_dev->bd_dev;
  83. __entry->sync_commit = commit_transaction->t_synchronous_commit;
  84. __entry->transaction = commit_transaction->t_tid;
  85. __entry->head = journal->j_tail_sequence;
  86. ),
  87. TP_printk("dev %d,%d transaction %d sync %d head %d",
  88. MAJOR(__entry->dev), MINOR(__entry->dev),
  89. __entry->transaction, __entry->sync_commit, __entry->head)
  90. );
  91. TRACE_EVENT(jbd_do_submit_data,
  92. TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
  93. TP_ARGS(journal, commit_transaction),
  94. TP_STRUCT__entry(
  95. __field( dev_t, dev )
  96. __field( char, sync_commit )
  97. __field( int, transaction )
  98. ),
  99. TP_fast_assign(
  100. __entry->dev = journal->j_fs_dev->bd_dev;
  101. __entry->sync_commit = commit_transaction->t_synchronous_commit;
  102. __entry->transaction = commit_transaction->t_tid;
  103. ),
  104. TP_printk("dev %d,%d transaction %d sync %d",
  105. MAJOR(__entry->dev), MINOR(__entry->dev),
  106. __entry->transaction, __entry->sync_commit)
  107. );
  108. TRACE_EVENT(jbd_cleanup_journal_tail,
  109. TP_PROTO(journal_t *journal, tid_t first_tid,
  110. unsigned long block_nr, unsigned long freed),
  111. TP_ARGS(journal, first_tid, block_nr, freed),
  112. TP_STRUCT__entry(
  113. __field( dev_t, dev )
  114. __field( tid_t, tail_sequence )
  115. __field( tid_t, first_tid )
  116. __field(unsigned long, block_nr )
  117. __field(unsigned long, freed )
  118. ),
  119. TP_fast_assign(
  120. __entry->dev = journal->j_fs_dev->bd_dev;
  121. __entry->tail_sequence = journal->j_tail_sequence;
  122. __entry->first_tid = first_tid;
  123. __entry->block_nr = block_nr;
  124. __entry->freed = freed;
  125. ),
  126. TP_printk("dev %d,%d from %u to %u offset %lu freed %lu",
  127. MAJOR(__entry->dev), MINOR(__entry->dev),
  128. __entry->tail_sequence, __entry->first_tid,
  129. __entry->block_nr, __entry->freed)
  130. );
  131. TRACE_EVENT(jbd_update_superblock_end,
  132. TP_PROTO(journal_t *journal, int wait),
  133. TP_ARGS(journal, wait),
  134. TP_STRUCT__entry(
  135. __field( dev_t, dev )
  136. __field( int, wait )
  137. ),
  138. TP_fast_assign(
  139. __entry->dev = journal->j_fs_dev->bd_dev;
  140. __entry->wait = wait;
  141. ),
  142. TP_printk("dev %d,%d wait %d",
  143. MAJOR(__entry->dev), MINOR(__entry->dev),
  144. __entry->wait)
  145. );
  146. #endif /* _TRACE_JBD_H */
  147. /* This part must be outside protection */
  148. #include <trace/define_trace.h>