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_dmu.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_dmu
   30 
   31 #if !defined(_TRACE_DMU_H) || defined(TRACE_HEADER_MULTI_READ)
   32 #define _TRACE_DMU_H
   33 
   34 #include <linux/tracepoint.h>
   35 #include <sys/types.h>
   36 
   37 /*
   38  * Generic support for three argument tracepoints of the form:
   39  *
   40  * DTRACE_PROBE3(...,
   41  *     dmu_tx_t *, ...,
   42  *     uint64_t, ...,
   43  *     uint64_t, ...);
   44  */
   45 /* BEGIN CSTYLED */
   46 DECLARE_EVENT_CLASS(zfs_delay_mintime_class,
   47         TP_PROTO(dmu_tx_t *tx, uint64_t dirty, uint64_t min_tx_time),
   48         TP_ARGS(tx, dirty, min_tx_time),
   49         TP_STRUCT__entry(
   50             __field(uint64_t,                   tx_txg)
   51             __field(uint64_t,                   tx_lastsnap_txg)
   52             __field(uint64_t,                   tx_lasttried_txg)
   53             __field(boolean_t,                  tx_anyobj)
   54             __field(boolean_t,                  tx_dirty_delayed)
   55             __field(hrtime_t,                   tx_start)
   56             __field(boolean_t,                  tx_wait_dirty)
   57             __field(int,                        tx_err)
   58             __field(uint64_t,                   min_tx_time)
   59             __field(uint64_t,                   dirty)
   60         ),
   61         TP_fast_assign(
   62             __entry->tx_txg                     = tx->tx_txg;
   63             __entry->tx_lastsnap_txg            = tx->tx_lastsnap_txg;
   64             __entry->tx_lasttried_txg           = tx->tx_lasttried_txg;
   65             __entry->tx_anyobj                  = tx->tx_anyobj;
   66             __entry->tx_dirty_delayed           = tx->tx_dirty_delayed;
   67             __entry->tx_start                   = tx->tx_start;
   68             __entry->tx_wait_dirty              = tx->tx_wait_dirty;
   69             __entry->tx_err                     = tx->tx_err;
   70             __entry->dirty                      = dirty;
   71             __entry->min_tx_time                = min_tx_time;
   72         ),
   73         TP_printk("tx { txg %llu lastsnap_txg %llu tx_lasttried_txg %llu "
   74             "anyobj %d dirty_delayed %d start %llu wait_dirty %d err %i "
   75             "} dirty %llu min_tx_time %llu",
   76             __entry->tx_txg, __entry->tx_lastsnap_txg,
   77             __entry->tx_lasttried_txg, __entry->tx_anyobj,
   78             __entry->tx_dirty_delayed, __entry->tx_start,
   79             __entry->tx_wait_dirty, __entry->tx_err,
   80             __entry->dirty, __entry->min_tx_time)
   81 );
   82 /* END CSTYLED */
   83 
   84 #define DEFINE_DELAY_MINTIME_EVENT(name) \
   85 DEFINE_EVENT(zfs_delay_mintime_class, name, \
   86     TP_PROTO(dmu_tx_t *tx, uint64_t dirty, uint64_t min_tx_time), \
   87     TP_ARGS(tx, dirty, min_tx_time))
   88 DEFINE_DELAY_MINTIME_EVENT(zfs_delay__mintime);
   89 
   90 /* BEGIN CSTYLED */
   91 DECLARE_EVENT_CLASS(zfs_free_long_range_class,
   92         TP_PROTO(uint64_t long_free_dirty_all_txgs, uint64_t chunk_len, \
   93             uint64_t txg),
   94         TP_ARGS(long_free_dirty_all_txgs, chunk_len, txg),
   95         TP_STRUCT__entry(
   96             __field(uint64_t,                   long_free_dirty_all_txgs)
   97             __field(uint64_t,                   chunk_len)
   98             __field(uint64_t,                   txg)
   99         ),
  100         TP_fast_assign(
  101             __entry->long_free_dirty_all_txgs   = long_free_dirty_all_txgs;
  102             __entry->chunk_len                                  = chunk_len;
  103             __entry->txg                                                = txg;
  104         ),
  105         TP_printk("long_free_dirty_all_txgs %llu chunk_len %llu txg %llu",
  106            __entry->long_free_dirty_all_txgs,
  107            __entry->chunk_len, __entry->txg)
  108 );
  109 /* END CSTYLED */
  110 
  111 #define DEFINE_FREE_LONG_RANGE_EVENT(name) \
  112 DEFINE_EVENT(zfs_free_long_range_class, name, \
  113     TP_PROTO(uint64_t long_free_dirty_all_txgs, \
  114     uint64_t chunk_len, uint64_t txg), \
  115     TP_ARGS(long_free_dirty_all_txgs, chunk_len, txg))
  116 DEFINE_FREE_LONG_RANGE_EVENT(zfs_free__long__range);
  117 
  118 #endif /* _TRACE_DMU_H */
  119 
  120 #undef TRACE_INCLUDE_PATH
  121 #undef TRACE_INCLUDE_FILE
  122 #define TRACE_INCLUDE_PATH sys
  123 #define TRACE_INCLUDE_FILE trace_dmu
  124 #include <trace/define_trace.h>
  125 
  126 #else
  127 
  128 DEFINE_DTRACE_PROBE3(delay__mintime);
  129 DEFINE_DTRACE_PROBE3(free__long__range);
  130 
  131 #endif /* HAVE_DECLARE_EVENT_CLASS */
  132 #endif /* _KERNEL */

Cache object: 43569da2b6f3508a6e23891c80ad90bb


[ 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.