• Anton Blanchard's avatar
    powernv: Add OPAL tracepoints · c49f6353
    Anton Blanchard authored
    Knowing how long we spend in firmware calls is an important part of
    minimising OS jitter.
    
    This patch adds tracepoints to each OPAL call. If tracepoints are
    enabled we branch out to a common routine that calls an entry and exit
    tracepoint.
    
    This allows us to write tools that monitor the frequency and duration
    of OPAL calls, eg:
    
    name                  count  total(ms)  min(ms)  max(ms)  avg(ms)  period(ms)
    OPAL_HANDLE_INTERRUPT     5      0.199    0.037    0.042    0.040   12547.545
    OPAL_POLL_EVENTS        204      2.590    0.012    0.036    0.013    2264.899
    OPAL_PCI_MSI_EOI       2830      3.066    0.001    0.005    0.001      81.166
    
    We use jump labels if configured, which means we only add a single
    nop instruction to every OPAL call when the tracepoints are disabled.
    Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
    Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    c49f6353
trace.h 2.7 KB