2009-07-13 10:33:21 +08:00
# undef TRACE_SYSTEM
# define TRACE_SYSTEM jbd2
2009-06-17 11:47:48 -04:00
# if !defined(_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ)
# define _TRACE_JBD2_H
# include <linux/jbd2.h>
# include <linux/tracepoint.h>
2009-09-30 00:32:06 -04:00
struct transaction_chp_stats_s ;
struct transaction_run_stats_s ;
2009-06-17 11:47:48 -04:00
TRACE_EVENT ( jbd2_checkpoint ,
TP_PROTO ( journal_t * journal , int result ) ,
TP_ARGS ( journal , result ) ,
TP_STRUCT__entry (
2011-03-21 21:38:05 -04:00
__field ( dev_t , dev )
2009-06-17 11:47:48 -04:00
__field ( int , result )
) ,
TP_fast_assign (
2011-03-21 21:38:05 -04:00
__entry - > dev = journal - > j_fs_dev - > bd_dev ;
2009-06-17 11:47:48 -04:00
__entry - > result = result ;
) ,
2011-07-10 22:05:08 -04:00
TP_printk ( " dev %d,%d result %d " ,
MAJOR ( __entry - > dev ) , MINOR ( __entry - > dev ) , __entry - > result )
2009-06-17 11:47:48 -04:00
) ;
2009-11-26 15:06:55 +08:00
DECLARE_EVENT_CLASS ( jbd2_commit ,
2009-06-17 11:47:48 -04:00
TP_PROTO ( journal_t * journal , transaction_t * commit_transaction ) ,
TP_ARGS ( journal , commit_transaction ) ,
TP_STRUCT__entry (
2011-03-21 21:38:05 -04:00
__field ( dev_t , dev )
2009-06-17 11:47:48 -04:00
__field ( char , sync_commit )
__field ( int , transaction )
) ,
TP_fast_assign (
2011-03-21 21:38:05 -04:00
__entry - > dev = journal - > j_fs_dev - > bd_dev ;
2009-06-17 11:47:48 -04:00
__entry - > sync_commit = commit_transaction - > t_synchronous_commit ;
__entry - > transaction = commit_transaction - > t_tid ;
) ,
2011-07-10 22:05:08 -04:00
TP_printk ( " dev %d,%d transaction %d sync %d " ,
MAJOR ( __entry - > dev ) , MINOR ( __entry - > dev ) ,
__entry - > transaction , __entry - > sync_commit )
2009-06-17 11:47:48 -04:00
) ;
2009-11-26 15:06:55 +08:00
DEFINE_EVENT ( jbd2_commit , jbd2_start_commit ,
2009-06-17 11:47:48 -04:00
TP_PROTO ( journal_t * journal , transaction_t * commit_transaction ) ,
2009-11-26 15:06:55 +08:00
TP_ARGS ( journal , commit_transaction )
2009-06-17 11:47:48 -04:00
) ;
2009-11-26 15:06:55 +08:00
DEFINE_EVENT ( jbd2_commit , jbd2_commit_locking ,
2009-06-17 11:47:48 -04:00
TP_PROTO ( journal_t * journal , transaction_t * commit_transaction ) ,
2009-11-26 15:06:55 +08:00
TP_ARGS ( journal , commit_transaction )
2009-06-17 11:47:48 -04:00
) ;
2009-11-26 15:06:55 +08:00
DEFINE_EVENT ( jbd2_commit , jbd2_commit_flushing ,
2009-06-17 11:47:48 -04:00
TP_PROTO ( journal_t * journal , transaction_t * commit_transaction ) ,
2009-11-26 15:06:55 +08:00
TP_ARGS ( journal , commit_transaction )
) ;
2009-06-17 11:47:48 -04:00
2009-11-26 15:06:55 +08:00
DEFINE_EVENT ( jbd2_commit , jbd2_commit_logging ,
2009-06-17 11:47:48 -04:00
2009-11-26 15:06:55 +08:00
TP_PROTO ( journal_t * journal , transaction_t * commit_transaction ) ,
2009-06-17 11:47:48 -04:00
2009-11-26 15:06:55 +08:00
TP_ARGS ( journal , commit_transaction )
2009-06-17 11:47:48 -04:00
) ;
2012-02-20 17:53:01 -05:00
DEFINE_EVENT ( jbd2_commit , jbd2_drop_transaction ,
TP_PROTO ( journal_t * journal , transaction_t * commit_transaction ) ,
TP_ARGS ( journal , commit_transaction )
) ;
2009-06-17 11:47:48 -04:00
TRACE_EVENT ( jbd2_end_commit ,
TP_PROTO ( journal_t * journal , transaction_t * commit_transaction ) ,
TP_ARGS ( journal , commit_transaction ) ,
TP_STRUCT__entry (
2011-03-21 21:38:05 -04:00
__field ( dev_t , dev )
2009-06-17 11:47:48 -04:00
__field ( char , sync_commit )
__field ( int , transaction )
__field ( int , head )
) ,
TP_fast_assign (
2011-03-21 21:38:05 -04:00
__entry - > dev = journal - > j_fs_dev - > bd_dev ;
2009-06-17 11:47:48 -04:00
__entry - > sync_commit = commit_transaction - > t_synchronous_commit ;
__entry - > transaction = commit_transaction - > t_tid ;
__entry - > head = journal - > j_tail_sequence ;
) ,
2011-07-10 22:05:08 -04:00
TP_printk ( " dev %d,%d transaction %d sync %d head %d " ,
MAJOR ( __entry - > dev ) , MINOR ( __entry - > dev ) ,
__entry - > transaction , __entry - > sync_commit , __entry - > head )
2009-06-17 11:47:48 -04:00
) ;
TRACE_EVENT ( jbd2_submit_inode_data ,
TP_PROTO ( struct inode * inode ) ,
TP_ARGS ( inode ) ,
TP_STRUCT__entry (
2011-03-21 21:38:05 -04:00
__field ( dev_t , dev )
2009-06-17 11:47:48 -04:00
__field ( ino_t , ino )
) ,
TP_fast_assign (
2011-03-21 21:38:05 -04:00
__entry - > dev = inode - > i_sb - > s_dev ;
2009-06-17 11:47:48 -04:00
__entry - > ino = inode - > i_ino ;
) ,
2011-07-10 22:05:08 -04:00
TP_printk ( " dev %d,%d ino %lu " ,
MAJOR ( __entry - > dev ) , MINOR ( __entry - > dev ) ,
( unsigned long ) __entry - > ino )
2009-06-17 11:47:48 -04:00
) ;
2013-02-08 13:00:22 -05:00
TRACE_EVENT ( jbd2_handle_start ,
TP_PROTO ( dev_t dev , unsigned long tid , unsigned int type ,
unsigned int line_no , int requested_blocks ) ,
TP_ARGS ( dev , tid , type , line_no , requested_blocks ) ,
TP_STRUCT__entry (
__field ( dev_t , dev )
__field ( unsigned long , tid )
__field ( unsigned int , type )
__field ( unsigned int , line_no )
__field ( int , requested_blocks )
) ,
TP_fast_assign (
__entry - > dev = dev ;
__entry - > tid = tid ;
__entry - > type = type ;
__entry - > line_no = line_no ;
__entry - > requested_blocks = requested_blocks ;
) ,
TP_printk ( " dev %d,%d tid %lu type %u line_no %u "
" requested_blocks %d " ,
MAJOR ( __entry - > dev ) , MINOR ( __entry - > dev ) , __entry - > tid ,
__entry - > type , __entry - > line_no , __entry - > requested_blocks )
) ;
TRACE_EVENT ( jbd2_handle_extend ,
TP_PROTO ( dev_t dev , unsigned long tid , unsigned int type ,
unsigned int line_no , int buffer_credits ,
int requested_blocks ) ,
TP_ARGS ( dev , tid , type , line_no , buffer_credits , requested_blocks ) ,
TP_STRUCT__entry (
__field ( dev_t , dev )
__field ( unsigned long , tid )
__field ( unsigned int , type )
__field ( unsigned int , line_no )
__field ( int , buffer_credits )
__field ( int , requested_blocks )
) ,
TP_fast_assign (
__entry - > dev = dev ;
__entry - > tid = tid ;
__entry - > type = type ;
__entry - > line_no = line_no ;
__entry - > buffer_credits = buffer_credits ;
__entry - > requested_blocks = requested_blocks ;
) ,
TP_printk ( " dev %d,%d tid %lu type %u line_no %u "
" buffer_credits %d requested_blocks %d " ,
MAJOR ( __entry - > dev ) , MINOR ( __entry - > dev ) , __entry - > tid ,
__entry - > type , __entry - > line_no , __entry - > buffer_credits ,
__entry - > requested_blocks )
) ;
TRACE_EVENT ( jbd2_handle_stats ,
TP_PROTO ( dev_t dev , unsigned long tid , unsigned int type ,
unsigned int line_no , int interval , int sync ,
int requested_blocks , int dirtied_blocks ) ,
TP_ARGS ( dev , tid , type , line_no , interval , sync ,
requested_blocks , dirtied_blocks ) ,
TP_STRUCT__entry (
__field ( dev_t , dev )
__field ( unsigned long , tid )
__field ( unsigned int , type )
__field ( unsigned int , line_no )
__field ( int , interval )
__field ( int , sync )
__field ( int , requested_blocks )
__field ( int , dirtied_blocks )
) ,
TP_fast_assign (
__entry - > dev = dev ;
__entry - > tid = tid ;
__entry - > type = type ;
__entry - > line_no = line_no ;
__entry - > interval = interval ;
__entry - > sync = sync ;
__entry - > requested_blocks = requested_blocks ;
__entry - > dirtied_blocks = dirtied_blocks ;
) ,
TP_printk ( " dev %d,%d tid %lu type %u line_no %u interval %d "
" sync %d requested_blocks %d dirtied_blocks %d " ,
MAJOR ( __entry - > dev ) , MINOR ( __entry - > dev ) , __entry - > tid ,
__entry - > type , __entry - > line_no , __entry - > interval ,
__entry - > sync , __entry - > requested_blocks ,
__entry - > dirtied_blocks )
) ;
2009-09-30 00:32:06 -04:00
TRACE_EVENT ( jbd2_run_stats ,
TP_PROTO ( dev_t dev , unsigned long tid ,
struct transaction_run_stats_s * stats ) ,
TP_ARGS ( dev , tid , stats ) ,
TP_STRUCT__entry (
2011-03-21 21:38:05 -04:00
__field ( dev_t , dev )
2009-09-30 00:32:06 -04:00
__field ( unsigned long , tid )
__field ( unsigned long , wait )
2013-02-06 22:30:23 -05:00
__field ( unsigned long , request_delay )
2009-09-30 00:32:06 -04:00
__field ( unsigned long , running )
__field ( unsigned long , locked )
__field ( unsigned long , flushing )
__field ( unsigned long , logging )
__field ( __u32 , handle_count )
__field ( __u32 , blocks )
__field ( __u32 , blocks_logged )
) ,
TP_fast_assign (
2011-03-21 21:38:05 -04:00
__entry - > dev = dev ;
2009-09-30 00:32:06 -04:00
__entry - > tid = tid ;
__entry - > wait = stats - > rs_wait ;
2013-02-06 22:30:23 -05:00
__entry - > request_delay = stats - > rs_request_delay ;
2009-09-30 00:32:06 -04:00
__entry - > running = stats - > rs_running ;
__entry - > locked = stats - > rs_locked ;
__entry - > flushing = stats - > rs_flushing ;
__entry - > logging = stats - > rs_logging ;
__entry - > handle_count = stats - > rs_handle_count ;
__entry - > blocks = stats - > rs_blocks ;
__entry - > blocks_logged = stats - > rs_blocks_logged ;
) ,
2013-02-06 22:30:23 -05:00
TP_printk ( " dev %d,%d tid %lu wait %u request_delay %u running %u "
" locked %u flushing %u logging %u handle_count %u "
" blocks %u blocks_logged %u " ,
2011-07-10 22:05:08 -04:00
MAJOR ( __entry - > dev ) , MINOR ( __entry - > dev ) , __entry - > tid ,
2009-09-30 00:32:06 -04:00
jiffies_to_msecs ( __entry - > wait ) ,
2013-02-06 22:30:23 -05:00
jiffies_to_msecs ( __entry - > request_delay ) ,
2009-09-30 00:32:06 -04:00
jiffies_to_msecs ( __entry - > running ) ,
jiffies_to_msecs ( __entry - > locked ) ,
jiffies_to_msecs ( __entry - > flushing ) ,
jiffies_to_msecs ( __entry - > logging ) ,
__entry - > handle_count , __entry - > blocks ,
__entry - > blocks_logged )
) ;
TRACE_EVENT ( jbd2_checkpoint_stats ,
TP_PROTO ( dev_t dev , unsigned long tid ,
struct transaction_chp_stats_s * stats ) ,
TP_ARGS ( dev , tid , stats ) ,
TP_STRUCT__entry (
2011-03-21 21:38:05 -04:00
__field ( dev_t , dev )
2009-09-30 00:32:06 -04:00
__field ( unsigned long , tid )
__field ( unsigned long , chp_time )
__field ( __u32 , forced_to_close )
__field ( __u32 , written )
__field ( __u32 , dropped )
) ,
TP_fast_assign (
2011-03-21 21:38:05 -04:00
__entry - > dev = dev ;
2009-09-30 00:32:06 -04:00
__entry - > tid = tid ;
__entry - > chp_time = stats - > cs_chp_time ;
__entry - > forced_to_close = stats - > cs_forced_to_close ;
__entry - > written = stats - > cs_written ;
__entry - > dropped = stats - > cs_dropped ;
) ,
2011-07-10 22:05:08 -04:00
TP_printk ( " dev %d,%d tid %lu chp_time %u forced_to_close %u "
2009-09-30 00:32:06 -04:00
" written %u dropped %u " ,
2011-07-10 22:05:08 -04:00
MAJOR ( __entry - > dev ) , MINOR ( __entry - > dev ) , __entry - > tid ,
2009-09-30 00:32:06 -04:00
jiffies_to_msecs ( __entry - > chp_time ) ,
__entry - > forced_to_close , __entry - > written , __entry - > dropped )
) ;
2012-03-13 22:22:54 -04:00
TRACE_EVENT ( jbd2_update_log_tail ,
2009-12-23 07:45:44 -05:00
TP_PROTO ( journal_t * journal , tid_t first_tid ,
unsigned long block_nr , unsigned long freed ) ,
TP_ARGS ( journal , first_tid , block_nr , freed ) ,
TP_STRUCT__entry (
2011-03-21 21:38:05 -04:00
__field ( dev_t , dev )
2009-12-23 07:45:44 -05:00
__field ( tid_t , tail_sequence )
__field ( tid_t , first_tid )
__field ( unsigned long , block_nr )
__field ( unsigned long , freed )
) ,
TP_fast_assign (
2011-03-21 21:38:05 -04:00
__entry - > dev = journal - > j_fs_dev - > bd_dev ;
2009-12-23 07:45:44 -05:00
__entry - > tail_sequence = journal - > j_tail_sequence ;
__entry - > first_tid = first_tid ;
__entry - > block_nr = block_nr ;
__entry - > freed = freed ;
) ,
2011-07-10 22:05:08 -04:00
TP_printk ( " dev %d,%d from %u to %u offset %lu freed %lu " ,
MAJOR ( __entry - > dev ) , MINOR ( __entry - > dev ) ,
__entry - > tail_sequence , __entry - > first_tid ,
__entry - > block_nr , __entry - > freed )
2009-12-23 07:45:44 -05:00
) ;
2012-03-13 15:41:04 -04:00
TRACE_EVENT ( jbd2_write_superblock ,
2012-02-20 17:53:01 -05:00
2012-03-13 22:22:54 -04:00
TP_PROTO ( journal_t * journal , int write_op ) ,
2012-02-20 17:53:01 -05:00
2012-03-13 22:22:54 -04:00
TP_ARGS ( journal , write_op ) ,
2012-02-20 17:53:01 -05:00
TP_STRUCT__entry (
__field ( dev_t , dev )
2012-03-13 22:22:54 -04:00
__field ( int , write_op )
2012-02-20 17:53:01 -05:00
) ,
TP_fast_assign (
__entry - > dev = journal - > j_fs_dev - > bd_dev ;
2012-03-13 22:22:54 -04:00
__entry - > write_op = write_op ;
2012-02-20 17:53:01 -05:00
) ,
2012-03-13 22:22:54 -04:00
TP_printk ( " dev %d,%d write_op %x " , MAJOR ( __entry - > dev ) ,
MINOR ( __entry - > dev ) , __entry - > write_op )
2012-02-20 17:53:01 -05:00
) ;
2013-04-21 16:47:54 -04:00
TRACE_EVENT ( jbd2_lock_buffer_stall ,
TP_PROTO ( dev_t dev , unsigned long stall_ms ) ,
TP_ARGS ( dev , stall_ms ) ,
TP_STRUCT__entry (
__field ( dev_t , dev )
__field ( unsigned long , stall_ms )
) ,
TP_fast_assign (
__entry - > dev = dev ;
__entry - > stall_ms = stall_ms ;
) ,
TP_printk ( " dev %d,%d stall_ms %lu " ,
MAJOR ( __entry - > dev ) , MINOR ( __entry - > dev ) ,
__entry - > stall_ms )
) ;
2009-06-17 11:47:48 -04:00
# endif /* _TRACE_JBD2_H */
/* This part must be outside protection */
# include <trace/define_trace.h>