Messages in this thread | | | Subject | Re: [PATCH/RFC 1/2] jump label: make enable/disable o(1) | From | Peter Zijlstra <> | Date | Thu, 16 Dec 2010 21:56:25 +0100 |
| |
On Thu, 2010-12-16 at 15:50 -0500, Mathieu Desnoyers wrote: > * Peter Zijlstra (peterz@infradead.org) 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.
| |