• Adrian Hunter's avatar
    scsi: ufs: Add exception event tracepoint · f7733625
    Adrian Hunter authored
    Currently, exception event status can be read from wExceptionEventStatus
    attribute (sysfs file attributes/exception_event_status under the UFS host
    controller device directory). Polling that attribute to track UFS exception
    events is impractical, so add a tracepoint to track exception events for
    testing and debugging purposes.
    
    Note, by the time the exception event status is read, the exception event
    may have cleared, so the value can be zero - see example below.
    
    Note also, only enabled exception events can be reported. A subsequent
    patch adds the ability for users to enable selected exception events via
    debugfs.
    
    Example with driver instrumented to enable all exception events:
    
      # echo 1 > /sys/kernel/debug/tracing/events/ufs/ufshcd_exception_event/enable
    
      ... do some I/O ...
    
      # cat /sys/kernel/debug/tracing/trace
      # tracer: nop
      #
      # entries-in-buffer/entries-written: 3/3   #P:5
      #
      #                                _-----=> irqs-off
      #                               / _----=> need-resched
      #                              | / _---=> hardirq/softirq
      #                              || / _--=> preempt-depth
      #                              ||| /     delay
      #           TASK-PID     CPU#  ||||   TIMESTAMP  FUNCTION
      #              | |         |   ||||      |         |
           kworker/2:2-173     [002] ....   731.486419: ufshcd_exception_event: 0000:00:12.5: status 0x0
           kworker/2:2-173     [002] ....   732.608918: ufshcd_exception_event: 0000:00:12.5: status 0x4
           kworker/2:2-173     [002] ....   732.609312: ufshcd_exception_event: 0000:00:12.5: status 0x4
    
    Link: https://lore.kernel.org/r/20210209062437.6954-2-adrian.hunter@intel.comReviewed-by: default avatarAvri Altman <avri.altman@wdc.com>
    Reviewed-by: default avatarBean Huo <beanhuo@micron.com>
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    f7733625
ufshcd.c 252 KB