linux/include/trace/events/random.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#undef TRACE_SYSTEM
   3#define TRACE_SYSTEM random
   4
   5#if !defined(_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ)
   6#define _TRACE_RANDOM_H
   7
   8#include <linux/writeback.h>
   9#include <linux/tracepoint.h>
  10
  11TRACE_EVENT(add_device_randomness,
  12        TP_PROTO(int bytes, unsigned long IP),
  13
  14        TP_ARGS(bytes, IP),
  15
  16        TP_STRUCT__entry(
  17                __field(          int,  bytes                   )
  18                __field(unsigned long,  IP                      )
  19        ),
  20
  21        TP_fast_assign(
  22                __entry->bytes          = bytes;
  23                __entry->IP             = IP;
  24        ),
  25
  26        TP_printk("bytes %d caller %pS",
  27                __entry->bytes, (void *)__entry->IP)
  28);
  29
  30DECLARE_EVENT_CLASS(random__mix_pool_bytes,
  31        TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
  32
  33        TP_ARGS(pool_name, bytes, IP),
  34
  35        TP_STRUCT__entry(
  36                __field( const char *,  pool_name               )
  37                __field(          int,  bytes                   )
  38                __field(unsigned long,  IP                      )
  39        ),
  40
  41        TP_fast_assign(
  42                __entry->pool_name      = pool_name;
  43                __entry->bytes          = bytes;
  44                __entry->IP             = IP;
  45        ),
  46
  47        TP_printk("%s pool: bytes %d caller %pS",
  48                  __entry->pool_name, __entry->bytes, (void *)__entry->IP)
  49);
  50
  51DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes,
  52        TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
  53
  54        TP_ARGS(pool_name, bytes, IP)
  55);
  56
  57DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes_nolock,
  58        TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
  59
  60        TP_ARGS(pool_name, bytes, IP)
  61);
  62
  63TRACE_EVENT(credit_entropy_bits,
  64        TP_PROTO(const char *pool_name, int bits, int entropy_count,
  65                 unsigned long IP),
  66
  67        TP_ARGS(pool_name, bits, entropy_count, IP),
  68
  69        TP_STRUCT__entry(
  70                __field( const char *,  pool_name               )
  71                __field(          int,  bits                    )
  72                __field(          int,  entropy_count           )
  73                __field(unsigned long,  IP                      )
  74        ),
  75
  76        TP_fast_assign(
  77                __entry->pool_name      = pool_name;
  78                __entry->bits           = bits;
  79                __entry->entropy_count  = entropy_count;
  80                __entry->IP             = IP;
  81        ),
  82
  83        TP_printk("%s pool: bits %d entropy_count %d caller %pS",
  84                  __entry->pool_name, __entry->bits,
  85                  __entry->entropy_count, (void *)__entry->IP)
  86);
  87
  88TRACE_EVENT(debit_entropy,
  89        TP_PROTO(const char *pool_name, int debit_bits),
  90
  91        TP_ARGS(pool_name, debit_bits),
  92
  93        TP_STRUCT__entry(
  94                __field( const char *,  pool_name               )
  95                __field(          int,  debit_bits              )
  96        ),
  97
  98        TP_fast_assign(
  99                __entry->pool_name      = pool_name;
 100                __entry->debit_bits     = debit_bits;
 101        ),
 102
 103        TP_printk("%s: debit_bits %d", __entry->pool_name,
 104                  __entry->debit_bits)
 105);
 106
 107TRACE_EVENT(add_input_randomness,
 108        TP_PROTO(int input_bits),
 109
 110        TP_ARGS(input_bits),
 111
 112        TP_STRUCT__entry(
 113                __field(          int,  input_bits              )
 114        ),
 115
 116        TP_fast_assign(
 117                __entry->input_bits     = input_bits;
 118        ),
 119
 120        TP_printk("input_pool_bits %d", __entry->input_bits)
 121);
 122
 123TRACE_EVENT(add_disk_randomness,
 124        TP_PROTO(dev_t dev, int input_bits),
 125
 126        TP_ARGS(dev, input_bits),
 127
 128        TP_STRUCT__entry(
 129                __field(        dev_t,  dev                     )
 130                __field(          int,  input_bits              )
 131        ),
 132
 133        TP_fast_assign(
 134                __entry->dev            = dev;
 135                __entry->input_bits     = input_bits;
 136        ),
 137
 138        TP_printk("dev %d,%d input_pool_bits %d", MAJOR(__entry->dev),
 139                  MINOR(__entry->dev), __entry->input_bits)
 140);
 141
 142DECLARE_EVENT_CLASS(random__get_random_bytes,
 143        TP_PROTO(int nbytes, unsigned long IP),
 144
 145        TP_ARGS(nbytes, IP),
 146
 147        TP_STRUCT__entry(
 148                __field(          int,  nbytes                  )
 149                __field(unsigned long,  IP                      )
 150        ),
 151
 152        TP_fast_assign(
 153                __entry->nbytes         = nbytes;
 154                __entry->IP             = IP;
 155        ),
 156
 157        TP_printk("nbytes %d caller %pS", __entry->nbytes, (void *)__entry->IP)
 158);
 159
 160DEFINE_EVENT(random__get_random_bytes, get_random_bytes,
 161        TP_PROTO(int nbytes, unsigned long IP),
 162
 163        TP_ARGS(nbytes, IP)
 164);
 165
 166DEFINE_EVENT(random__get_random_bytes, get_random_bytes_arch,
 167        TP_PROTO(int nbytes, unsigned long IP),
 168
 169        TP_ARGS(nbytes, IP)
 170);
 171
 172DECLARE_EVENT_CLASS(random__extract_entropy,
 173        TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
 174                 unsigned long IP),
 175
 176        TP_ARGS(pool_name, nbytes, entropy_count, IP),
 177
 178        TP_STRUCT__entry(
 179                __field( const char *,  pool_name               )
 180                __field(          int,  nbytes                  )
 181                __field(          int,  entropy_count           )
 182                __field(unsigned long,  IP                      )
 183        ),
 184
 185        TP_fast_assign(
 186                __entry->pool_name      = pool_name;
 187                __entry->nbytes         = nbytes;
 188                __entry->entropy_count  = entropy_count;
 189                __entry->IP             = IP;
 190        ),
 191
 192        TP_printk("%s pool: nbytes %d entropy_count %d caller %pS",
 193                  __entry->pool_name, __entry->nbytes, __entry->entropy_count,
 194                  (void *)__entry->IP)
 195);
 196
 197
 198DEFINE_EVENT(random__extract_entropy, extract_entropy,
 199        TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
 200                 unsigned long IP),
 201
 202        TP_ARGS(pool_name, nbytes, entropy_count, IP)
 203);
 204
 205TRACE_EVENT(urandom_read,
 206        TP_PROTO(int got_bits, int pool_left, int input_left),
 207
 208        TP_ARGS(got_bits, pool_left, input_left),
 209
 210        TP_STRUCT__entry(
 211                __field(          int,  got_bits                )
 212                __field(          int,  pool_left               )
 213                __field(          int,  input_left              )
 214        ),
 215
 216        TP_fast_assign(
 217                __entry->got_bits       = got_bits;
 218                __entry->pool_left      = pool_left;
 219                __entry->input_left     = input_left;
 220        ),
 221
 222        TP_printk("got_bits %d nonblocking_pool_entropy_left %d "
 223                  "input_entropy_left %d", __entry->got_bits,
 224                  __entry->pool_left, __entry->input_left)
 225);
 226
 227TRACE_EVENT(prandom_u32,
 228
 229        TP_PROTO(unsigned int ret),
 230
 231        TP_ARGS(ret),
 232
 233        TP_STRUCT__entry(
 234                __field(   unsigned int, ret)
 235        ),
 236
 237        TP_fast_assign(
 238                __entry->ret = ret;
 239        ),
 240
 241        TP_printk("ret=%u" , __entry->ret)
 242);
 243
 244#endif /* _TRACE_RANDOM_H */
 245
 246/* This part must be outside protection */
 247#include <trace/define_trace.h>
 248