Re: [PATCH 4/4] vfio: ccw: add traceponits for interesting error paths

Halil Pasic
2018-04-10T10:48:12Z

On 04/10/2018 10:55 AM, Cornelia Huck wrote:
> On Tue, 10 Apr 2018 10:16:39 +0800
> Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
>
>> Does the following effect make sense?
>>
>> # tracer: nop
>> #
>> # _-----=> irqs-off
>> # / _----=> need-resched
>> # | / _---=> hardirq/softirq
>> # || / _--=> preempt-depth
>> # ||| / delay
>> # TASK-PID CPU# |||| TIMESTAMP FUNCTION
>> # | | | |||| | |
>> qemu-system-s39-4252 [006] .... 231.457214: vfio_ccw_cp_prefetch: schid=0.0.013f errno=0
>> qemu-system-s39-4252 [006] .... 231.457222: vfio_ccw_fsm_io_helper: schid=0.0.013f errno=0
>> qemu-system-s39-4252 [006] .... 231.457223: vfio_ccw_io_fctl: schid=0.0.013f fctl=4 errno=0
>> ... ...
>
> I would likely find this useful for following a code path and making
> sure the right things are called.
>
> We certainly want error conditions traced as well (although the code
> has been working too well for me to trigger that easily :)
>

Looks interesting. The approach is to trace (all) exits from selected
functions, or?

It is an interesting approach. Function entry could probably be traced
with the function tracer (if we should ever need that, although relating
the two unambiguously may not be possible -- I don't know).

I'm still not completely in clear how do we want to do error reporting.
Using traces as means of error reporting smells like abuse to me. @Dong
Jia: could you help me get an overview? I'm thinking of something like
a matrix of type:
error | handler | action (propagate as / report / try recover / discard silently)
I'm mostly interested in what gets reported and if there is stuff that
should be reported.

Other than that I'm in favor. And having traces for tracking error
condition is clearly better than having nothing.

Regards,
Halil