tracing: Optimise comparison filters and fix binary and for 64 bit
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Tue, 25 Oct 2016 20:14:28 +0000 (16:14 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Mon, 14 Nov 2016 21:42:58 +0000 (16:42 -0500)
commitfdf5b679864b8a1165712164b8f17debeb6b10b6
tree972dbdef468c60b2bfe8c9b76b03db50557acabf
parent60f1d5e3bac44b598f67d36062da96c095d2b700
tracing: Optimise comparison filters and fix binary and for 64 bit

Currently the filter logic for comparisons (like greater-than and less-than)
are used, they share the same function and a switch statement is used to
jump to the comparison type to perform. This is done in the extreme hot path
of the tracing code, and it does not take much more space to create a
unique comparison function to perform each type of comparison and remove the
switch statement.

Also, a bug was found where the binary and operation for 64 bits could fail
if the resulting bits were greater than 32 bits, because the result was
passed into a 32 bit variable. This was fixed when adding the separate
binary and function.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace_events_filter.c