> > 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 > > Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> Reviewed-by: Avri Altman <avri.altman@xxxxxxx>