Re: [PATCH] tracepoint: Do not fail unregistering a probe due to memory allocation
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date: 2020-11-17 23:08:22
Also in:
bpf, lkml
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date: 2020-11-17 23:08:22
Also in:
bpf, lkml
----- 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 [off-list ref] wrote:quoted
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