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

From: Mathieu Desnoyers <[email-masked]>
Date: Tue, 17 Nov 2020 18:08:19 -0500 (EST)

----- On Nov 17, 2020, at 5:16 PM, rostedt [email-masked] wrote:

> On Tue, 17 Nov 2020 16:22:23 -0500 (EST)
> Mathieu Desnoyers <[email-masked]> 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