• Daniel Bristot de Oliveira's avatar
    rtla/timerlat_hist: Add timerlat user-space support · ed774f74
    Daniel Bristot de Oliveira authored
    Add the support for running timerlat threads in user-space. In this
    mode, enabled with -u/--user-threads, timerlat dispatches user-space
    processes that will loop in the timerlat_fd, measuring the overhead
    for going to user-space and then returning to the kernel - in addition
    to the existing measurements.
    
    Here is one example of the tool's output with -u enabled:
    
      $ sudo timerlat  hist -u -c 1-3 -d 600
      # RTLA timerlat histogram
      # Time unit is microseconds (us)
      # Duration:   0 00:10:01
      Index   IRQ-001   Thr-001   Usr-001   IRQ-002   Thr-002   Usr-002   IRQ-003   Thr-003   Usr-003
      0        477555         0         0    425287         0         0    474357         0         0
      1        122385      7998         0    174616      1921         0    125412      3138         0
      2            47    587376    492150        89    594717    447830       147    593463    454872
      3            11      2549    101930         7      2682    145580        64      2530    138680
      4             3      1954      2833         1       463      4917        11       548      4656
      5             0        60      1037         0       138      1117         6       179      1130
      6             0        26      1837         0        38       277         1        76       339
      7             0        15       143         0        28       147         2        37       156
      8             0        10        23         0        11        75         0        12        80
      9             0         7        17         0         0        26         0        11        42
      10            0         2        11         0         0        18         0         2        20
      11            0         0         7         0         1         8         0         2        12
      12            0         0         6         0         1         4         0         2         8
      13            0         1         3         0         0         0         0         0         1
      14            0         1         0         0         0         1         0         0         2
      15            0         1         0         0         0         0         0         0         2
      16            0         1         2         0         0         0         0         0         0
      17            0         0         1         0         0         0         0         0         0
      19            0         0         1         0         0         0         0         0         0
      over:         0         0         0         0         0         0         0         0         0
      count:   600001    600001    600001    600000    600000    600000    600000    600000    600000
      min:          0         1         2         0         1         2         0         1         2
      avg:          0         1         2         0         2         2         0         2         2
      max:          4        16        19         4        12        14         7        12        15
    
    The tuning setup like -p or -C work for the user-space threads as well.
    
    Link: https://lkml.kernel.org/r/b6a042d55003c4a67ff7dce28d96044b7044f00d.1686066600.git.bristot@kernel.org
    
    Cc: William White <chwhite@redhat.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Tested-by: default avatarJuri Lelli <juri.lelli@redhat.com>
    Signed-off-by: default avatarDaniel Bristot de Oliveira <bristot@kernel.org>
    Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
    ed774f74
timerlat_hist.c 28.3 KB