Re: [PATCH/RFC 1/2] jump label: make enable/disable o(1)

From: Peter Zijlstra
Date: Thu Dec 16 2010 - 15:56:53 EST


On Thu, 2010-12-16 at 15:50 -0500, Mathieu Desnoyers wrote:
> * Peter Zijlstra (peterz@xxxxxxxxxxxxx) wrote:
> > On Thu, 2010-12-16 at 15:36 -0500, Mathieu Desnoyers wrote:
> > > Tracepoints keep their own reference counts for enable/disable, so a
> > > simple "enable/disable" is fine as far as tracepoints are concerned. Why
> > > does perf need that refcounting done by the static jumps ?
> >
> > Because the refcount is all we have... Why not replace that tracepoint
> > refcount with the jumplabel thing?
>
> The reason why tracepoints need to keep their own refcount is because
> they support dynamically loadable modules, and hence the refcount must
> be kept outside of the modules, in a table internal to tracepoints,
> so we can attach a probe to a yet unloaded module. Therefore, relying on
> this lower level jump label to keep the refcount is not appropriate for
> tracepoints, because the refcount only exists when the module is live.

That's not a logical conclusion, you can keep these jump_label keys
outside of the module just fine.

> I know that your point of view is "let users of modules suffer", but
> this represents a very large portion of Linux users I am not willing to
> let suffer knowingly.

Feh, I'd argue to remove this special tracepoint crap, the only
in-kernel user (ftrace) doesn't even make use of it. This weird ass
tracepoint semantic being different from the ftrace trace_event
semantics has caused trouble before.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/