ftrace: Annotate the ops operation on update
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Tue, 5 Aug 2014 21:19:38 +0000 (17:19 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Wed, 10 Sep 2014 14:48:44 +0000 (10:48 -0400)
commite1effa0144a1ddf5b456c388ffaf784f3c5163fd
treec169e93553bf595d5c1f3bbd7f25d56ed0f27b2d
parent5fecaa044af3dc52e4bc138842bdf1c6676105b1
ftrace: Annotate the ops operation on update

Add three new flags for ftrace_ops:

  FTRACE_OPS_FL_ADDING
  FTRACE_OPS_FL_REMOVING
  FTRACE_OPS_FL_MODIFYING

These will be set for the ftrace_ops when they are first added
to the function tracing, being removed from function tracing
or just having their functions changed from function tracing,
respectively.

This will be needed to remove the tramp_hash, which can grow quite
big. The tramp_hash is used to note what functions a ftrace_ops
is using a trampoline for. Denoting which ftrace_ops is being
modified, will allow us to use the ftrace_ops hashes themselves,
which are much smaller as they have a global flag to denote if
a ftrace_ops is tracing all functions, as well as a notrace hash
if the ftrace_ops is tracing all but a few. The tramp_hash just
creates a hash item for every function, which can go into the 10s
of thousands if all functions are using the ftrace_ops trampoline.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/linux/ftrace.h
kernel/trace/ftrace.c