LCOV - code coverage report
Current view: top level - include/trace/events - jbd2.h (source / functions) Hit Total Coverage
Test: gcov_data_raspi2_real_modules_combined.info Lines: 17 17 100.0 %
Date: 2020-09-30 20:25:40 Functions: 24 76 31.6 %
Branches: 56 288 19.4 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: GPL-2.0 */
       2                 :            : #undef TRACE_SYSTEM
       3                 :            : #define TRACE_SYSTEM jbd2
       4                 :            : 
       5                 :            : #if !defined(_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ)
       6                 :            : #define _TRACE_JBD2_H
       7                 :            : 
       8                 :            : #include <linux/jbd2.h>
       9                 :            : #include <linux/tracepoint.h>
      10                 :            : 
      11                 :            : struct transaction_chp_stats_s;
      12                 :            : struct transaction_run_stats_s;
      13                 :            : 
      14   [ #  #  #  #  :        207 : TRACE_EVENT(jbd2_checkpoint,
          #  #  #  #  #  
             #  +  -  #  
                      # ]
      15                 :            : 
      16                 :            :         TP_PROTO(journal_t *journal, int result),
      17                 :            : 
      18                 :            :         TP_ARGS(journal, result),
      19                 :            : 
      20                 :            :         TP_STRUCT__entry(
      21                 :            :                 __field(        dev_t,  dev                     )
      22                 :            :                 __field(        int,    result                  )
      23                 :            :         ),
      24                 :            : 
      25                 :            :         TP_fast_assign(
      26                 :            :                 __entry->dev         = journal->j_fs_dev->bd_dev;
      27                 :            :                 __entry->result              = result;
      28                 :            :         ),
      29                 :            : 
      30                 :            :         TP_printk("dev %d,%d result %d",
      31                 :            :                   MAJOR(__entry->dev), MINOR(__entry->dev), __entry->result)
      32                 :            : );
      33                 :            : 
      34   [ #  #  #  #  :        207 : DECLARE_EVENT_CLASS(jbd2_commit,
          #  #  #  #  #  
          #  +  -  +  -  
                   #  # ]
      35                 :            : 
      36                 :            :         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
      37                 :            : 
      38                 :            :         TP_ARGS(journal, commit_transaction),
      39                 :            : 
      40                 :            :         TP_STRUCT__entry(
      41                 :            :                 __field(        dev_t,  dev                     )
      42                 :            :                 __field(        char,   sync_commit               )
      43                 :            :                 __field(        int,    transaction               )
      44                 :            :         ),
      45                 :            : 
      46                 :            :         TP_fast_assign(
      47                 :            :                 __entry->dev         = journal->j_fs_dev->bd_dev;
      48                 :            :                 __entry->sync_commit = commit_transaction->t_synchronous_commit;
      49                 :            :                 __entry->transaction = commit_transaction->t_tid;
      50                 :            :         ),
      51                 :            : 
      52                 :            :         TP_printk("dev %d,%d transaction %d sync %d",
      53                 :            :                   MAJOR(__entry->dev), MINOR(__entry->dev),
      54                 :            :                   __entry->transaction, __entry->sync_commit)
      55                 :            : );
      56                 :            : 
      57   [ -  +  #  #  :       5048 : DEFINE_EVENT(jbd2_commit, jbd2_start_commit,
             #  #  #  # ]
      58                 :            : 
      59                 :            :         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
      60                 :            : 
      61                 :            :         TP_ARGS(journal, commit_transaction)
      62                 :            : );
      63                 :            : 
      64   [ -  +  #  #  :       5048 : DEFINE_EVENT(jbd2_commit, jbd2_commit_locking,
             #  #  #  # ]
      65                 :            : 
      66                 :            :         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
      67                 :            : 
      68                 :            :         TP_ARGS(journal, commit_transaction)
      69                 :            : );
      70                 :            : 
      71   [ -  +  #  #  :       5048 : DEFINE_EVENT(jbd2_commit, jbd2_commit_flushing,
             #  #  #  # ]
      72                 :            : 
      73                 :            :         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
      74                 :            : 
      75                 :            :         TP_ARGS(journal, commit_transaction)
      76                 :            : );
      77                 :            : 
      78   [ -  +  #  #  :       5048 : DEFINE_EVENT(jbd2_commit, jbd2_commit_logging,
             #  #  #  # ]
      79                 :            : 
      80                 :            :         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
      81                 :            : 
      82                 :            :         TP_ARGS(journal, commit_transaction)
      83                 :            : );
      84                 :            : 
      85   [ -  +  #  #  :       3740 : DEFINE_EVENT(jbd2_commit, jbd2_drop_transaction,
             #  #  #  # ]
      86                 :            : 
      87                 :            :         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
      88                 :            : 
      89                 :            :         TP_ARGS(journal, commit_transaction)
      90                 :            : );
      91                 :            : 
      92   [ -  +  #  #  :       5255 : TRACE_EVENT(jbd2_end_commit,
          #  #  #  #  #  
          #  +  -  +  -  
             +  -  #  # ]
      93                 :            :         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
      94                 :            : 
      95                 :            :         TP_ARGS(journal, commit_transaction),
      96                 :            : 
      97                 :            :         TP_STRUCT__entry(
      98                 :            :                 __field(        dev_t,  dev                     )
      99                 :            :                 __field(        char,   sync_commit               )
     100                 :            :                 __field(        int,    transaction               )
     101                 :            :                 __field(        int,    head                      )
     102                 :            :         ),
     103                 :            : 
     104                 :            :         TP_fast_assign(
     105                 :            :                 __entry->dev         = journal->j_fs_dev->bd_dev;
     106                 :            :                 __entry->sync_commit = commit_transaction->t_synchronous_commit;
     107                 :            :                 __entry->transaction = commit_transaction->t_tid;
     108                 :            :                 __entry->head                = journal->j_tail_sequence;
     109                 :            :         ),
     110                 :            : 
     111                 :            :         TP_printk("dev %d,%d transaction %d sync %d head %d",
     112                 :            :                   MAJOR(__entry->dev), MINOR(__entry->dev),
     113                 :            :                   __entry->transaction, __entry->sync_commit, __entry->head)
     114                 :            : );
     115                 :            : 
     116   [ #  #  #  #  :        207 : TRACE_EVENT(jbd2_submit_inode_data,
          #  #  #  #  #  
             #  +  -  #  
                      # ]
     117                 :            :         TP_PROTO(struct inode *inode),
     118                 :            : 
     119                 :            :         TP_ARGS(inode),
     120                 :            : 
     121                 :            :         TP_STRUCT__entry(
     122                 :            :                 __field(        dev_t,  dev                     )
     123                 :            :                 __field(        ino_t,  ino                     )
     124                 :            :         ),
     125                 :            : 
     126                 :            :         TP_fast_assign(
     127                 :            :                 __entry->dev = inode->i_sb->s_dev;
     128                 :            :                 __entry->ino = inode->i_ino;
     129                 :            :         ),
     130                 :            : 
     131                 :            :         TP_printk("dev %d,%d ino %lu",
     132                 :            :                   MAJOR(__entry->dev), MINOR(__entry->dev),
     133                 :            :                   (unsigned long) __entry->ino)
     134                 :            : );
     135                 :            : 
     136   [ -  +  #  #  :    1582712 : TRACE_EVENT(jbd2_handle_start,
          #  #  #  #  #  
          #  +  -  +  -  
          +  -  +  -  #  
                      # ]
     137                 :            :         TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
     138                 :            :                  unsigned int line_no, int requested_blocks),
     139                 :            : 
     140                 :            :         TP_ARGS(dev, tid, type, line_no, requested_blocks),
     141                 :            : 
     142                 :            :         TP_STRUCT__entry(
     143                 :            :                 __field(                dev_t,  dev             )
     144                 :            :                 __field(        unsigned long,  tid             )
     145                 :            :                 __field(         unsigned int,  type            )
     146                 :            :                 __field(         unsigned int,  line_no         )
     147                 :            :                 __field(                  int,  requested_blocks)
     148                 :            :         ),
     149                 :            : 
     150                 :            :         TP_fast_assign(
     151                 :            :                 __entry->dev           = dev;
     152                 :            :                 __entry->tid           = tid;
     153                 :            :                 __entry->type                  = type;
     154                 :            :                 __entry->line_no       = line_no;
     155                 :            :                 __entry->requested_blocks = requested_blocks;
     156                 :            :         ),
     157                 :            : 
     158                 :            :         TP_printk("dev %d,%d tid %lu type %u line_no %u "
     159                 :            :                   "requested_blocks %d",
     160                 :            :                   MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
     161                 :            :                   __entry->type, __entry->line_no, __entry->requested_blocks)
     162                 :            : );
     163                 :            : 
     164   [ #  #  #  #  :        207 : TRACE_EVENT(jbd2_handle_extend,
          #  #  #  #  #  
          #  +  -  +  -  
          +  -  +  -  +  
                -  #  # ]
     165                 :            :         TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
     166                 :            :                  unsigned int line_no, int buffer_credits,
     167                 :            :                  int requested_blocks),
     168                 :            : 
     169                 :            :         TP_ARGS(dev, tid, type, line_no, buffer_credits, requested_blocks),
     170                 :            : 
     171                 :            :         TP_STRUCT__entry(
     172                 :            :                 __field(                dev_t,  dev             )
     173                 :            :                 __field(        unsigned long,  tid             )
     174                 :            :                 __field(         unsigned int,  type            )
     175                 :            :                 __field(         unsigned int,  line_no         )
     176                 :            :                 __field(                  int,  buffer_credits  )
     177                 :            :                 __field(                  int,  requested_blocks)
     178                 :            :         ),
     179                 :            : 
     180                 :            :         TP_fast_assign(
     181                 :            :                 __entry->dev           = dev;
     182                 :            :                 __entry->tid           = tid;
     183                 :            :                 __entry->type                  = type;
     184                 :            :                 __entry->line_no       = line_no;
     185                 :            :                 __entry->buffer_credits   = buffer_credits;
     186                 :            :                 __entry->requested_blocks = requested_blocks;
     187                 :            :         ),
     188                 :            : 
     189                 :            :         TP_printk("dev %d,%d tid %lu type %u line_no %u "
     190                 :            :                   "buffer_credits %d requested_blocks %d",
     191                 :            :                   MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
     192                 :            :                   __entry->type, __entry->line_no, __entry->buffer_credits,
     193                 :            :                   __entry->requested_blocks)
     194                 :            : );
     195                 :            : 
     196   [ -  +  #  #  :    1582765 : TRACE_EVENT(jbd2_handle_stats,
          #  #  #  #  #  
          #  +  -  +  -  
          +  -  +  -  +  
          -  +  -  +  -  
                   #  # ]
     197                 :            :         TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
     198                 :            :                  unsigned int line_no, int interval, int sync,
     199                 :            :                  int requested_blocks, int dirtied_blocks),
     200                 :            : 
     201                 :            :         TP_ARGS(dev, tid, type, line_no, interval, sync,
     202                 :            :                 requested_blocks, dirtied_blocks),
     203                 :            : 
     204                 :            :         TP_STRUCT__entry(
     205                 :            :                 __field(                dev_t,  dev             )
     206                 :            :                 __field(        unsigned long,  tid             )
     207                 :            :                 __field(         unsigned int,  type            )
     208                 :            :                 __field(         unsigned int,  line_no         )
     209                 :            :                 __field(                  int,  interval        )
     210                 :            :                 __field(                  int,  sync            )
     211                 :            :                 __field(                  int,  requested_blocks)
     212                 :            :                 __field(                  int,  dirtied_blocks  )
     213                 :            :         ),
     214                 :            : 
     215                 :            :         TP_fast_assign(
     216                 :            :                 __entry->dev           = dev;
     217                 :            :                 __entry->tid           = tid;
     218                 :            :                 __entry->type                  = type;
     219                 :            :                 __entry->line_no       = line_no;
     220                 :            :                 __entry->interval      = interval;
     221                 :            :                 __entry->sync                  = sync;
     222                 :            :                 __entry->requested_blocks = requested_blocks;
     223                 :            :                 __entry->dirtied_blocks        = dirtied_blocks;
     224                 :            :         ),
     225                 :            : 
     226                 :            :         TP_printk("dev %d,%d tid %lu type %u line_no %u interval %d "
     227                 :            :                   "sync %d requested_blocks %d dirtied_blocks %d",
     228                 :            :                   MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
     229                 :            :                   __entry->type, __entry->line_no, __entry->interval,
     230                 :            :                   __entry->sync, __entry->requested_blocks,
     231                 :            :                   __entry->dirtied_blocks)
     232                 :            : );
     233                 :            : 
     234   [ -  +  #  #  :       5255 : TRACE_EVENT(jbd2_run_stats,
          #  #  #  #  #  
          #  +  -  +  -  
          +  -  +  -  +  
          -  +  -  +  -  
          +  -  +  -  +  
                -  #  # ]
     235                 :            :         TP_PROTO(dev_t dev, unsigned long tid,
     236                 :            :                  struct transaction_run_stats_s *stats),
     237                 :            : 
     238                 :            :         TP_ARGS(dev, tid, stats),
     239                 :            : 
     240                 :            :         TP_STRUCT__entry(
     241                 :            :                 __field(                dev_t,  dev             )
     242                 :            :                 __field(        unsigned long,  tid             )
     243                 :            :                 __field(        unsigned long,  wait            )
     244                 :            :                 __field(        unsigned long,  request_delay   )
     245                 :            :                 __field(        unsigned long,  running         )
     246                 :            :                 __field(        unsigned long,  locked          )
     247                 :            :                 __field(        unsigned long,  flushing        )
     248                 :            :                 __field(        unsigned long,  logging         )
     249                 :            :                 __field(                __u32,  handle_count    )
     250                 :            :                 __field(                __u32,  blocks          )
     251                 :            :                 __field(                __u32,  blocks_logged   )
     252                 :            :         ),
     253                 :            : 
     254                 :            :         TP_fast_assign(
     255                 :            :                 __entry->dev         = dev;
     256                 :            :                 __entry->tid         = tid;
     257                 :            :                 __entry->wait                = stats->rs_wait;
     258                 :            :                 __entry->request_delay       = stats->rs_request_delay;
     259                 :            :                 __entry->running     = stats->rs_running;
     260                 :            :                 __entry->locked              = stats->rs_locked;
     261                 :            :                 __entry->flushing    = stats->rs_flushing;
     262                 :            :                 __entry->logging     = stats->rs_logging;
     263                 :            :                 __entry->handle_count        = stats->rs_handle_count;
     264                 :            :                 __entry->blocks              = stats->rs_blocks;
     265                 :            :                 __entry->blocks_logged       = stats->rs_blocks_logged;
     266                 :            :         ),
     267                 :            : 
     268                 :            :         TP_printk("dev %d,%d tid %lu wait %u request_delay %u running %u "
     269                 :            :                   "locked %u flushing %u logging %u handle_count %u "
     270                 :            :                   "blocks %u blocks_logged %u",
     271                 :            :                   MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
     272                 :            :                   jiffies_to_msecs(__entry->wait),
     273                 :            :                   jiffies_to_msecs(__entry->request_delay),
     274                 :            :                   jiffies_to_msecs(__entry->running),
     275                 :            :                   jiffies_to_msecs(__entry->locked),
     276                 :            :                   jiffies_to_msecs(__entry->flushing),
     277                 :            :                   jiffies_to_msecs(__entry->logging),
     278                 :            :                   __entry->handle_count, __entry->blocks,
     279                 :            :                   __entry->blocks_logged)
     280                 :            : );
     281                 :            : 
     282   [ -  +  #  #  :       3893 : TRACE_EVENT(jbd2_checkpoint_stats,
          #  #  #  #  #  
          #  +  -  +  -  
          +  -  +  -  +  
                -  #  # ]
     283                 :            :         TP_PROTO(dev_t dev, unsigned long tid,
     284                 :            :                  struct transaction_chp_stats_s *stats),
     285                 :            : 
     286                 :            :         TP_ARGS(dev, tid, stats),
     287                 :            : 
     288                 :            :         TP_STRUCT__entry(
     289                 :            :                 __field(                dev_t,  dev             )
     290                 :            :                 __field(        unsigned long,  tid             )
     291                 :            :                 __field(        unsigned long,  chp_time        )
     292                 :            :                 __field(                __u32,  forced_to_close )
     293                 :            :                 __field(                __u32,  written         )
     294                 :            :                 __field(                __u32,  dropped         )
     295                 :            :         ),
     296                 :            : 
     297                 :            :         TP_fast_assign(
     298                 :            :                 __entry->dev         = dev;
     299                 :            :                 __entry->tid         = tid;
     300                 :            :                 __entry->chp_time    = stats->cs_chp_time;
     301                 :            :                 __entry->forced_to_close= stats->cs_forced_to_close;
     302                 :            :                 __entry->written     = stats->cs_written;
     303                 :            :                 __entry->dropped     = stats->cs_dropped;
     304                 :            :         ),
     305                 :            : 
     306                 :            :         TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u "
     307                 :            :                   "written %u dropped %u",
     308                 :            :                   MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
     309                 :            :                   jiffies_to_msecs(__entry->chp_time),
     310                 :            :                   __entry->forced_to_close, __entry->written, __entry->dropped)
     311                 :            : );
     312                 :            : 
     313   [ #  #  #  #  :        207 : TRACE_EVENT(jbd2_update_log_tail,
          #  #  #  #  #  
          #  +  -  +  -  
          +  -  +  -  #  
          #  #  #  #  #  
             #  #  #  # ]
     314                 :            : 
     315                 :            :         TP_PROTO(journal_t *journal, tid_t first_tid,
     316                 :            :                  unsigned long block_nr, unsigned long freed),
     317                 :            : 
     318                 :            :         TP_ARGS(journal, first_tid, block_nr, freed),
     319                 :            : 
     320                 :            :         TP_STRUCT__entry(
     321                 :            :                 __field(        dev_t,  dev                     )
     322                 :            :                 __field(        tid_t,  tail_sequence           )
     323                 :            :                 __field(        tid_t,  first_tid               )
     324                 :            :                 __field(unsigned long,  block_nr                )
     325                 :            :                 __field(unsigned long,  freed                   )
     326                 :            :         ),
     327                 :            : 
     328                 :            :         TP_fast_assign(
     329                 :            :                 __entry->dev         = journal->j_fs_dev->bd_dev;
     330                 :            :                 __entry->tail_sequence       = journal->j_tail_sequence;
     331                 :            :                 __entry->first_tid   = first_tid;
     332                 :            :                 __entry->block_nr    = block_nr;
     333                 :            :                 __entry->freed               = freed;
     334                 :            :         ),
     335                 :            : 
     336                 :            :         TP_printk("dev %d,%d from %u to %u offset %lu freed %lu",
     337                 :            :                   MAJOR(__entry->dev), MINOR(__entry->dev),
     338                 :            :                   __entry->tail_sequence, __entry->first_tid,
     339                 :            :                   __entry->block_nr, __entry->freed)
     340                 :            : );
     341                 :            : 
     342   [ #  #  #  #  :        621 : TRACE_EVENT(jbd2_write_superblock,
          #  #  #  #  #  
          #  +  -  #  #  
          -  +  #  #  #  
                #  #  # ]
     343                 :            : 
     344                 :            :         TP_PROTO(journal_t *journal, int write_op),
     345                 :            : 
     346                 :            :         TP_ARGS(journal, write_op),
     347                 :            : 
     348                 :            :         TP_STRUCT__entry(
     349                 :            :                 __field(        dev_t,  dev                     )
     350                 :            :                 __field(          int,  write_op                )
     351                 :            :         ),
     352                 :            : 
     353                 :            :         TP_fast_assign(
     354                 :            :                 __entry->dev         = journal->j_fs_dev->bd_dev;
     355                 :            :                 __entry->write_op    = write_op;
     356                 :            :         ),
     357                 :            : 
     358                 :            :         TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev),
     359                 :            :                   MINOR(__entry->dev), __entry->write_op)
     360                 :            : );
     361                 :            : 
     362   [ -  +  #  #  :        237 : TRACE_EVENT(jbd2_lock_buffer_stall,
          #  #  #  #  #  
             #  +  -  #  
                      # ]
     363                 :            : 
     364                 :            :         TP_PROTO(dev_t dev, unsigned long stall_ms),
     365                 :            : 
     366                 :            :         TP_ARGS(dev, stall_ms),
     367                 :            : 
     368                 :            :         TP_STRUCT__entry(
     369                 :            :                 __field(        dev_t, dev      )
     370                 :            :                 __field(unsigned long, stall_ms )
     371                 :            :         ),
     372                 :            : 
     373                 :            :         TP_fast_assign(
     374                 :            :                 __entry->dev         = dev;
     375                 :            :                 __entry->stall_ms    = stall_ms;
     376                 :            :         ),
     377                 :            : 
     378                 :            :         TP_printk("dev %d,%d stall_ms %lu",
     379                 :            :                 MAJOR(__entry->dev), MINOR(__entry->dev),
     380                 :            :                 __entry->stall_ms)
     381                 :            : );
     382                 :            : 
     383                 :            : #endif /* _TRACE_JBD2_H */
     384                 :            : 
     385                 :            : /* This part must be outside protection */
     386                 :            : #include <trace/define_trace.h>

Generated by: LCOV version 1.14