]> git.baikalelectronics.ru Git - kernel.git/commit
random32: add a tracepoint for prandom_u32()
authorEric Dumazet <edumazet@google.com>
Thu, 13 Aug 2020 17:06:43 +0000 (10:06 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Aug 2020 22:11:14 +0000 (15:11 -0700)
commitaaef61b514c5e7bcef2b6d0b43e943a033beb67b
tree448b3fe1a37f74eb9308781e1957e557d18afb3d
parentad5c36e06d6aa23b24717355a397640b7ac4f941
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>
include/trace/events/random.h
lib/random32.c