Skip to content
  • Takashi Iwai's avatar
    ALSA: pcm: Replace PCM hwptr tracking with tracepoints · f5914908
    Takashi Iwai authored
    ALSA PCM core has a mechanism tracking the PCM hwptr updates for
    analyzing XRUNs.  But its log is limited (up to 10) and its log output
    is a kernel message, which is hard to handle.
    
    In this patch, the hwptr logging is moved to the tracing
    infrastructure instead of its own.  Not only the hwptr updates but
    also XRUN and hwptr errors are recorded on the trace log, so that user
    can see such events at the exact timing.
    
    The new "snd_pcm" entry will appear in the tracing events:
      # ls -F /sys/kernel/debug/tracing/events/snd_pcm
      enable  filter  hw_ptr_error/  hwptr/  xrun/
    
    The hwptr is for the regular hwptr update events.  An event trace
    looks like:
    
      aplay-26187 [004] d..3  4012.834761: hwptr: pcmC0D0p/sub0: POS: pos=488, old=0, base=0, period=1024, buf=16384
    
    "POS" shows the hwptr update by the explicit position update call and
    "IRQ" means the hwptr update by the interrupt,
    i.e. snd_pcm_period_elapsed() call.  The "pos" is the passed
    ring-buffer offs...
    f5914908