• Daniel Bristot de Oliveira's avatar
    tools/rtla: Add -U/--user-load option to timerlat · a23c05fd
    Daniel Bristot de Oliveira authored
    The timerlat tracer provides an interface for any application to wait
    for the timerlat's periodic wakeup. Currently, rtla timerlat uses it
    to dispatch its user-space workload (-u option).
    
    But as the tracer interface is generic, rtla timerlat can also be used
    to monitor any workload that uses it. For example, a user might
    place their own workload to wait on the tracer interface, and
    monitor the results with rtla timerlat.
    
    Add the -U option to rtla timerlat top and hist. With this option, rtla
    timerlat will not dispatch its workload but only setting up the
    system, waiting for a user to dispatch its workload.
    
    The sample code in this patch is an example of python application
    that loops in the timerlat tracer fd.
    
    To use it, dispatch:
    
     # rtla timerlat -U
    
    In a terminal, then run the python program on another terminal,
    specifying the CPU to run it. For example, setting on CPU 1:
    
     #./timerlat_load.py 1
    
    Then rtla timerlat will start printing the statistics of the
    ./timerlat_load.py app.
    
    An interesting point is that the "Ret user Timer Latency" value
    is the overall response time of the load. The sample load does
    a memory copy to exemplify that.
    
    The stop tracing options on rtla timerlat works in this setup
    as well, including auto analysis.
    
    Link: https://lkml.kernel.org/r/36e6bcf18fe15c7601048fd4c65aeb193c502cc8.1707229706.git.bristot@kernel.org
    
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: default avatarDaniel Bristot de Oliveira <bristot@kernel.org>
    a23c05fd
timerlat_top.c 24.7 KB