tracing: Add lock-free tracing_map
authorTom Zanussi <tom.zanussi@linux.intel.com>
Thu, 10 Dec 2015 18:50:50 +0000 (12:50 -0600)
committerSteven Rostedt <rostedt@goodmis.org>
Tue, 19 Apr 2016 16:04:59 +0000 (12:04 -0400)
commit08d43a5fa063e03c860f2f391a30c388bcbc948e
treea0c15cd805cc33236c5bd906efe78820a9f9ef04
parent540b589e6349779c0eeb8de82450b62a4569ffd9
tracing: Add lock-free tracing_map

Add tracing_map, a special-purpose lock-free map for tracing.

tracing_map is designed to aggregate or 'sum' one or more values
associated with a specific object of type tracing_map_elt, which
is associated by the map to a given key.

It provides various hooks allowing per-tracer customization and is
separated out into a separate file in order to allow it to be shared
between multiple tracers, but isn't meant to be generally used outside
of that context.

The tracing_map implementation was inspired by lock-free map
algorithms originated by Dr. Cliff Click:

 http://www.azulsystems.com/blog/cliff/2007-03-26-non-blocking-hashtable
 http://www.azulsystems.com/events/javaone_2007/2007_LockFreeHash.pdf

Link: http://lkml.kernel.org/r/b43d68d1add33582a396f553c8ef705a33a6a748.1449767187.git.tom.zanussi@linux.intel.com
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Tested-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/Kconfig
kernel/trace/Makefile
kernel/trace/tracing_map.c [new file with mode: 0644]
kernel/trace/tracing_map.h [new file with mode: 0644]