On Mon, 23 Apr 2018 13:12:21 -0400 (EDT)
Mathieu Desnoyers <[email protected]> wrote:
> I'm inclined to explicitly declare the tracepoints with their given
> synchronization method. Tracepoint probe callback functions for currently
> existing tracepoints expect to have preemption disabled when invoked.
> This assumption will not be true anymore for srcu-tracepoints.
Actually, why not have a flag attached to the tracepoint_func that
states if it expects preemption to be enabled or not? If a
trace_##event##_srcu() is called, then simply disable preemption before
calling the callbacks for it. That way if a callback is fine for use
with srcu, then it would require calling
register_trace_##event##_may_sleep();
Then if someone uses this on a tracepoint where preemption is disabled,
we simply do not call it.
-- Steve