Re: [PATCH] tracepoint: Do not fail unregistering a probe due to memory allocation

Mathieu Desnoyers
2020-11-17T23:09:03Z

----- On Nov 17, 2020, at 5:16 PM, rostedt rostedt@goodmis.org wrote:

> On Tue, 17 Nov 2020 16:22:23 -0500 (EST)
> Mathieu Desnoyers <mathieu.desnoyers@efficios.com> 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.