The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/openzfs/include/os/linux/zfs/sys/trace_zil.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * CDDL HEADER START
    3  *
    4  * The contents of this file are subject to the terms of the
    5  * Common Development and Distribution License (the "License").
    6  * You may not use this file except in compliance with the License.
    7  *
    8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    9  * or https://opensource.org/licenses/CDDL-1.0.
   10  * See the License for the specific language governing permissions
   11  * and limitations under the License.
   12  *
   13  * When distributing Covered Code, include this CDDL HEADER in each
   14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
   15  * If applicable, add the following below this CDDL HEADER, with the
   16  * fields enclosed by brackets "[]" replaced with your own identifying
   17  * information: Portions Copyright [yyyy] [name of copyright owner]
   18  *
   19  * CDDL HEADER END
   20  */
   21 
   22 #if defined(_KERNEL)
   23 #if defined(HAVE_DECLARE_EVENT_CLASS)
   24 
   25 #undef TRACE_SYSTEM
   26 #define TRACE_SYSTEM zfs
   27 
   28 #undef TRACE_SYSTEM_VAR
   29 #define TRACE_SYSTEM_VAR zfs_zil
   30 
   31 #if !defined(_TRACE_ZIL_H) || defined(TRACE_HEADER_MULTI_READ)
   32 #define _TRACE_ZIL_H
   33 
   34 #include <linux/tracepoint.h>
   35 #include <sys/types.h>
   36 
   37 #define ZILOG_TP_STRUCT_ENTRY                                               \
   38                 __field(uint64_t,       zl_lr_seq)                          \
   39                 __field(uint64_t,       zl_commit_lr_seq)                   \
   40                 __field(uint64_t,       zl_destroy_txg)                     \
   41                 __field(uint64_t,       zl_replaying_seq)                   \
   42                 __field(uint32_t,       zl_suspend)                         \
   43                 __field(uint8_t,        zl_suspending)                      \
   44                 __field(uint8_t,        zl_keep_first)                      \
   45                 __field(uint8_t,        zl_replay)                          \
   46                 __field(uint8_t,        zl_stop_sync)                       \
   47                 __field(uint8_t,        zl_logbias)                         \
   48                 __field(uint8_t,        zl_sync)                            \
   49                 __field(int,            zl_parse_error)                     \
   50                 __field(uint64_t,       zl_parse_blk_seq)                   \
   51                 __field(uint64_t,       zl_parse_lr_seq)                    \
   52                 __field(uint64_t,       zl_parse_blk_count)                 \
   53                 __field(uint64_t,       zl_parse_lr_count)                  \
   54                 __field(uint64_t,       zl_cur_used)                        \
   55                 __field(clock_t,        zl_replay_time)                     \
   56                 __field(uint64_t,       zl_replay_blks)
   57 
   58 #define ZILOG_TP_FAST_ASSIGN                                                \
   59                 __entry->zl_lr_seq              = zilog->zl_lr_seq;         \
   60                 __entry->zl_commit_lr_seq       = zilog->zl_commit_lr_seq;  \
   61                 __entry->zl_destroy_txg = zilog->zl_destroy_txg;            \
   62                 __entry->zl_replaying_seq       = zilog->zl_replaying_seq;  \
   63                 __entry->zl_suspend             = zilog->zl_suspend;        \
   64                 __entry->zl_suspending  = zilog->zl_suspending;             \
   65                 __entry->zl_keep_first  = zilog->zl_keep_first;             \
   66                 __entry->zl_replay              = zilog->zl_replay;         \
   67                 __entry->zl_stop_sync   = zilog->zl_stop_sync;              \
   68                 __entry->zl_logbias             = zilog->zl_logbias;        \
   69                 __entry->zl_sync                = zilog->zl_sync;           \
   70                 __entry->zl_parse_error = zilog->zl_parse_error;            \
   71                 __entry->zl_parse_blk_seq       = zilog->zl_parse_blk_seq;  \
   72                 __entry->zl_parse_lr_seq        = zilog->zl_parse_lr_seq;   \
   73                 __entry->zl_parse_blk_count     = zilog->zl_parse_blk_count;\
   74                 __entry->zl_parse_lr_count      = zilog->zl_parse_lr_count; \
   75                 __entry->zl_cur_used    = zilog->zl_cur_used;               \
   76                 __entry->zl_replay_time = zilog->zl_replay_time;            \
   77                 __entry->zl_replay_blks = zilog->zl_replay_blks;
   78 
   79 #define ZILOG_TP_PRINTK_FMT                                                 \
   80         "zl { lr_seq %llu commit_lr_seq %llu destroy_txg %llu "             \
   81         "replaying_seq %llu suspend %u suspending %u keep_first %u "        \
   82         "replay %u stop_sync %u logbias %u sync %u "                        \
   83         "parse_error %u parse_blk_seq %llu parse_lr_seq %llu "              \
   84         "parse_blk_count %llu parse_lr_count %llu "                         \
   85         "cur_used %llu replay_time %lu replay_blks %llu }"
   86 
   87 #define ZILOG_TP_PRINTK_ARGS                                                \
   88             __entry->zl_lr_seq, __entry->zl_commit_lr_seq,                  \
   89             __entry->zl_destroy_txg, __entry->zl_replaying_seq,             \
   90             __entry->zl_suspend, __entry->zl_suspending,                    \
   91             __entry->zl_keep_first, __entry->zl_replay,                     \
   92             __entry->zl_stop_sync, __entry->zl_logbias, __entry->zl_sync,   \
   93             __entry->zl_parse_error, __entry->zl_parse_blk_seq,             \
   94             __entry->zl_parse_lr_seq, __entry->zl_parse_blk_count,          \
   95             __entry->zl_parse_lr_count, __entry->zl_cur_used,               \
   96             __entry->zl_replay_time, __entry->zl_replay_blks
   97 
   98 #define ITX_TP_STRUCT_ENTRY                                                 \
   99                 __field(itx_wr_state_t, itx_wr_state)                       \
  100                 __field(uint8_t,        itx_sync)                           \
  101                 __field(zil_callback_t, itx_callback)                       \
  102                 __field(void *,         itx_callback_data)                  \
  103                 __field(uint64_t,       itx_oid)                            \
  104                                                                             \
  105                 __field(uint64_t,       lrc_txtype)                         \
  106                 __field(uint64_t,       lrc_reclen)                         \
  107                 __field(uint64_t,       lrc_txg)                            \
  108                 __field(uint64_t,       lrc_seq)
  109 
  110 #define ITX_TP_FAST_ASSIGN                                                  \
  111                 __entry->itx_wr_state           = itx->itx_wr_state;        \
  112                 __entry->itx_sync               = itx->itx_sync;            \
  113                 __entry->itx_callback           = itx->itx_callback;        \
  114                 __entry->itx_callback_data      = itx->itx_callback_data;   \
  115                 __entry->itx_oid                = itx->itx_oid;             \
  116                                                                             \
  117                 __entry->lrc_txtype             = itx->itx_lr.lrc_txtype;   \
  118                 __entry->lrc_reclen             = itx->itx_lr.lrc_reclen;   \
  119                 __entry->lrc_txg                = itx->itx_lr.lrc_txg;      \
  120                 __entry->lrc_seq                = itx->itx_lr.lrc_seq;
  121 
  122 #define ITX_TP_PRINTK_FMT                                                   \
  123         "itx { wr_state %u sync %u callback %p callback_data %p oid %llu"   \
  124         " { txtype %llu reclen %llu txg %llu seq %llu } }"
  125 
  126 #define ITX_TP_PRINTK_ARGS                                                  \
  127             __entry->itx_wr_state, __entry->itx_sync, __entry->itx_callback,\
  128             __entry->itx_callback_data, __entry->itx_oid,                   \
  129             __entry->lrc_txtype, __entry->lrc_reclen, __entry->lrc_txg,     \
  130             __entry->lrc_seq
  131 
  132 #define ZCW_TP_STRUCT_ENTRY                                                 \
  133                 __field(lwb_t *,        zcw_lwb)                            \
  134                 __field(boolean_t,      zcw_done)                           \
  135                 __field(int,            zcw_zio_error)                      \
  136 
  137 #define ZCW_TP_FAST_ASSIGN                                                  \
  138                 __entry->zcw_lwb                = zcw->zcw_lwb;             \
  139                 __entry->zcw_done               = zcw->zcw_done;            \
  140                 __entry->zcw_zio_error          = zcw->zcw_zio_error;
  141 
  142 #define ZCW_TP_PRINTK_FMT                                                   \
  143         "zcw { lwb %p done %u error %u }"
  144 
  145 #define ZCW_TP_PRINTK_ARGS                                                  \
  146             __entry->zcw_lwb, __entry->zcw_done, __entry->zcw_zio_error
  147 
  148 /*
  149  * Generic support for two argument tracepoints of the form:
  150  *
  151  * DTRACE_PROBE2(...,
  152  *     zilog_t *, ...,
  153  *     itx_t *, ...);
  154  */
  155 /* BEGIN CSTYLED */
  156 DECLARE_EVENT_CLASS(zfs_zil_process_itx_class,
  157         TP_PROTO(zilog_t *zilog, itx_t *itx),
  158         TP_ARGS(zilog, itx),
  159         TP_STRUCT__entry(
  160             ZILOG_TP_STRUCT_ENTRY
  161             ITX_TP_STRUCT_ENTRY
  162         ),
  163         TP_fast_assign(
  164             ZILOG_TP_FAST_ASSIGN
  165             ITX_TP_FAST_ASSIGN
  166         ),
  167         TP_printk(
  168             ZILOG_TP_PRINTK_FMT " " ITX_TP_PRINTK_FMT,
  169             ZILOG_TP_PRINTK_ARGS, ITX_TP_PRINTK_ARGS)
  170 );
  171 /* END CSTYLED */
  172 
  173 #define DEFINE_ZIL_PROCESS_ITX_EVENT(name) \
  174 DEFINE_EVENT(zfs_zil_process_itx_class, name, \
  175     TP_PROTO(zilog_t *zilog, itx_t *itx), \
  176     TP_ARGS(zilog, itx))
  177 DEFINE_ZIL_PROCESS_ITX_EVENT(zfs_zil__process__commit__itx);
  178 DEFINE_ZIL_PROCESS_ITX_EVENT(zfs_zil__process__normal__itx);
  179 
  180 /*
  181  * Generic support for two argument tracepoints of the form:
  182  *
  183  * DTRACE_PROBE2(...,
  184  *     zilog_t *, ...,
  185  *     zil_commit_waiter_t *, ...);
  186  */
  187 /* BEGIN CSTYLED */
  188 DECLARE_EVENT_CLASS(zfs_zil_commit_io_error_class,
  189         TP_PROTO(zilog_t *zilog, zil_commit_waiter_t *zcw),
  190         TP_ARGS(zilog, zcw),
  191         TP_STRUCT__entry(
  192             ZILOG_TP_STRUCT_ENTRY
  193             ZCW_TP_STRUCT_ENTRY
  194         ),
  195         TP_fast_assign(
  196             ZILOG_TP_FAST_ASSIGN
  197             ZCW_TP_FAST_ASSIGN
  198         ),
  199         TP_printk(
  200             ZILOG_TP_PRINTK_FMT " " ZCW_TP_PRINTK_FMT,
  201             ZILOG_TP_PRINTK_ARGS, ZCW_TP_PRINTK_ARGS)
  202 );
  203 
  204 #define DEFINE_ZIL_COMMIT_IO_ERROR_EVENT(name) \
  205 DEFINE_EVENT(zfs_zil_commit_io_error_class, name, \
  206     TP_PROTO(zilog_t *zilog, zil_commit_waiter_t *zcw), \
  207     TP_ARGS(zilog, zcw))
  208 DEFINE_ZIL_COMMIT_IO_ERROR_EVENT(zfs_zil__commit__io__error);
  209 
  210 #endif /* _TRACE_ZIL_H */
  211 
  212 #undef TRACE_INCLUDE_PATH
  213 #undef TRACE_INCLUDE_FILE
  214 #define TRACE_INCLUDE_PATH sys
  215 #define TRACE_INCLUDE_FILE trace_zil
  216 #include <trace/define_trace.h>
  217 
  218 #else
  219 
  220 DEFINE_DTRACE_PROBE2(zil__process__commit__itx);
  221 DEFINE_DTRACE_PROBE2(zil__process__normal__itx);
  222 DEFINE_DTRACE_PROBE2(zil__commit__io__error);
  223 
  224 #endif /* HAVE_DECLARE_EVENT_CLASS */
  225 #endif /* _KERNEL */

Cache object: 6b086f45e3c507d761f37aa8ca38314a


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.