Re: [PATCH] tracepoint: Do not fail unregistering a probe due to memory allocation
From: Mathieu Desnoyers
Date: Tue Nov 17 2020 - 18:08:42 EST
----- On Nov 17, 2020, at 5:16 PM, rostedt rostedt@xxxxxxxxxxx wrote:
> On Tue, 17 Nov 2020 16:22:23 -0500 (EST)
> Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> wrote:
>
>> If we don't call the stub, then there is no point in having the stub at
>> all, and we should just compare to a constant value, e.g. 0x1UL. As far
>> as I can recall, comparing with a small immediate constant is more efficient
>> than comparing with a loaded value on many architectures.
>
> Why 0x1UL, and not just set it to NULL.
>
> do { \
> it_func = (it_func_ptr)->func; \
> __data = (it_func_ptr)->data; \
> if (likely(it_func)) \
> ((void(*)(void *, proto))(it_func))(__data, args); \
> } while ((++it_func_ptr)->func);
Because of this end-of-loop condition ^
which is also testing for a NULL func. So if we reach a stub, we end up stopping
iteration and not firing the following tracepoint probes.
Thanks,
Mathieu
>
>
> -- Steve
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com