Messages in this thread | | | Date | Tue, 11 Mar 2014 10:26:50 -0400 | From | "Frank Ch. Eigler" <> | Subject | Re: [for-next][PATCH 08/20] tracing: Warn if a tracepoint is not set via debugfs |
| |
Hi, Steven -
> > So it is a deferred-activation kind of call, with no way of knowing > > when or if the tracepoints will start coming in. Why is that > > supported at all, considering that clients could monitor modules > > coming & going via the module_notifier chain, and update registration > > at that time? > > That's my argument.
Was there an answer?
> > >> + entry = get_tracepoint(name); > > >> + /* Make sure the entry was enabled */ > > >> + if (!entry || !entry->enabled) > > >> + ret = -ENODEV; > > > > For what it's worth, I agree with Mathieu that this sort of successful > > failure result code is a problem for tracking what needs cleanup and > > what doesn't. (In systemtap's case, if this change gets merged, we'll > > have to treat -ENODEV as if it were 0.) > > Does systemtap enable tracepoints before they are created? That is, do > you allow enabling of a tracepoint in a module that is not loaded yet?
We have no formal opinion on whether or not this makes sense. If the kernel permits it, fine.
> If not, than you want this as an error.
But it's not exactly an error! It's a success of sorts, and means that later on we have to unregister the callback, just as if it were successful.
- FChE
| |