Skip to contentSkip to conversation

Dynamic tracepoints in 4.11.8-rt5

DISCUSSION Mathieu Desnoyers 2 participants 2 messages Jul 12, 2017

lore
Share & tools
lore
#0 lore raw

Hi Tom,

I notice this commit appears in linux-rt-devel 4.11.8-rt5 (and it is not in upstream Linux):

003100371 tracing: Add support for dynamic tracepoints

It adds a "bool dynamic" argument to tracepoint_probe_unregister.

I'm trying to figure out why this change is introduced as a new API "dynamic_tracepoint_probe_register()" and by adding a boolean to tracepoint_probe_unregister().

Allowing the user of register API to mixup between dynamic and non-dynamic boolean values for the same tracepoint instance seems fragile.

Given that the "dynamic" nature of this new kind of tracepoint appears to be associated with the tracepoint instance (struct tracepoint), why can't we simply add a "bool dynamic" field to struct tracepoint, so we can deal with this internally within tracepoint.c without exposing this detail in the register API ?

This would also take care of currently diverging module APIs for the GPL-exported symbol tracepoint_unregister() between Linux upstream and linux-rt.

Thanks,

Mathieu

Signature · 3 lines
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
#1 lore raw

Hi Mathieu,

Quoted 17 lines · Mathieu Desnoyers

Hi Tom,

I notice this commit appears in linux-rt-devel 4.11.8-rt5 (and it is not in upstream Linux):

003100371 tracing: Add support for dynamic tracepoints

It adds a "bool dynamic" argument to tracepoint_probe_unregister.

I'm trying to figure out why this change is introduced as a new API "dynamic_tracepoint_probe_register()" and by adding a boolean to tracepoint_probe_unregister().

Allowing the user of register API to mixup between dynamic and non-dynamic boolean values for the same tracepoint instance seems fragile.

Quoted 7 lines

Given that the "dynamic" nature of this new kind of tracepoint appears to be associated with the tracepoint instance (struct tracepoint), why can't we simply add a "bool dynamic" field to struct tracepoint, so we can deal with this internally within tracepoint.c without exposing this detail in the register API ?

Yeah, I think that should work - I'm working on an update to these patches and will make that change.

Thanks,

Tom

Quoted 8 lines

This would also take care of currently diverging module APIs for the GPL-exported symbol tracepoint_unregister() between Linux upstream and linux-rt.

Thanks,

Mathieu