summaryrefslogtreecommitdiffstats
path: root/include/trace
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2020-08-13 10:06:43 -0700
committerDavid S. Miller <davem@davemloft.net>2020-08-13 15:11:14 -0700
commit94c7eb54c4b8e81618ec79f414fe1ca5767f9720 (patch)
tree448b3fe1a37f74eb9308781e1957e557d18afb3d /include/trace
parent9643609423c7667fb748cc3ccff023d761d0ac90 (diff)
downloadlinux-94c7eb54c4b8e81618ec79f414fe1ca5767f9720.tar.gz
linux-94c7eb54c4b8e81618ec79f414fe1ca5767f9720.tar.bz2
linux-94c7eb54c4b8e81618ec79f414fe1ca5767f9720.zip
random32: add a tracepoint for prandom_u32()
There has been some heat around prandom_u32() lately, and some people were wondering if there was a simple way to determine how often it was used, before considering making it maybe 10 times more expensive. This tracepoint exports the generated pseudo random value. Tested: perf list | grep prandom_u32 random:prandom_u32 [Tracepoint event] perf record -a [-g] [-C1] -e random:prandom_u32 sleep 1 [ perf record: Woken up 0 times to write data ] [ perf record: Captured and wrote 259.748 MB perf.data (924087 samples) ] perf report --nochildren ... 97.67% ksoftirqd/1 [kernel.vmlinux] [k] prandom_u32 | ---prandom_u32 prandom_u32 | |--48.86%--tcp_v4_syn_recv_sock | tcp_check_req | tcp_v4_rcv | ... --48.81%--tcp_conn_request tcp_v4_conn_request tcp_rcv_state_process ... perf script Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Willy Tarreau <w@1wt.eu> Cc: Sedat Dilek <sedat.dilek@gmail.com> Tested-by: Sedat Dilek <sedat.dilek@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/trace')
-rw-r--r--include/trace/events/random.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/trace/events/random.h b/include/trace/events/random.h
index 32c10a515e2d..9570a10cb949 100644
--- a/include/trace/events/random.h
+++ b/include/trace/events/random.h
@@ -307,6 +307,23 @@ TRACE_EVENT(urandom_read,
__entry->pool_left, __entry->input_left)
);
+TRACE_EVENT(prandom_u32,
+
+ TP_PROTO(unsigned int ret),
+
+ TP_ARGS(ret),
+
+ TP_STRUCT__entry(
+ __field( unsigned int, ret)
+ ),
+
+ TP_fast_assign(
+ __entry->ret = ret;
+ ),
+
+ TP_printk("ret=%u" , __entry->ret)
+);
+
#endif /* _TRACE_RANDOM_H */
/* This part must be outside protection */