linux_dsm_epyc7002/tools/lib/traceevent
Steven Rostedt (VMware) 301011ba62 tools lib traceevent: Remove unneeded qsort and uses memmove instead
While reading a trace data file that had 100,000s of tasks, the process
took an extremely long time. I profiled it down to add_new_comm(), which
was doing a qsort() call on an array that was pretty much already sorted
(all but the last element. qsort() isn't very efficient when dealing
with mostly sorted arrays, and this definitely showed its issues.

When adding a new task to the task list, instead of using qsort(), do
another bsearch() with a function that will find the element before
where the new task will be inserted in. Then simply shift the rest of
the array, and insert the task where it belongs.

Fixes: f7d82350e5 ("tools/events: Add files to create libtraceevent.a")
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: linux-trace-devel@vger.kernel.org
Link: http://lkml.kernel.org/r/20190828191820.127233764@goodmis.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2019-08-29 08:36:12 -03:00
..
Documentation tools lib traceevent: Man pages for trace sequences APIs 2019-05-15 16:36:48 -03:00
.gitignore tools lib traceevent: Ignore generated library files 2016-08-02 12:16:13 -03:00
Build tools lib traceevent, perf tools: Move struct tep_handler definition in a local header file 2018-10-08 15:05:37 -03:00
event-parse-api.c tools lib traceevent: Rename input arguments of libtraceevent APIs from pevent to tep 2019-04-01 15:18:09 -03:00
event-parse-local.h tools lib traceevent: Rename input arguments of libtraceevent APIs from pevent to tep 2019-04-01 15:18:09 -03:00
event-parse.c tools lib traceevent: Remove unneeded qsort and uses memmove instead 2019-08-29 08:36:12 -03:00
event-parse.h perf tools, tools lib traceevent: Rename "pevent" member of struct tep_event_filter to "tep" 2019-04-01 15:18:10 -03:00
event-plugin.c tools lib traceevent: Rename input arguments and local variables of libtraceevent from pevent to tep 2019-04-01 15:18:10 -03:00
event-utils.h tools lib traceevent: Change to SPDX License format 2018-08-20 08:54:58 -03:00
kbuffer-parse.c tools lib traceevent: Add more debugging to see various internal ring buffer entries 2019-04-01 15:18:09 -03:00
kbuffer.h tools lib traceevent: Add more debugging to see various internal ring buffer entries 2019-04-01 15:18:09 -03:00
libtraceevent.pc.template tools lib traceevent: Remove hard coded install paths from pkg-config file 2019-05-15 16:36:46 -03:00
Makefile tools lib traceevent: Fix "robust" test of do_generate_dynamic_list_file 2019-08-20 12:18:54 -03:00
parse-filter.c tools lib traceevent: Rename input arguments and local variables of libtraceevent from pevent to tep 2019-04-01 15:18:10 -03:00
parse-utils.c tools lib traceevent: Change tag string for error 2019-05-02 16:00:19 -04:00
plugin_cfg80211.c tools lib traceevent: Rename input arguments of libtraceevent APIs from pevent to tep 2019-04-01 15:18:09 -03:00
plugin_function.c tools lib traceevent: Rename input arguments and local variables of libtraceevent from pevent to tep 2019-04-01 15:18:10 -03:00
plugin_hrtimer.c tools lib traceevent: Rename input arguments of libtraceevent APIs from pevent to tep 2019-04-01 15:18:09 -03:00
plugin_jbd2.c tools lib traceevent: Rename input arguments of libtraceevent APIs from pevent to tep 2019-04-01 15:18:09 -03:00
plugin_kmem.c perf tools, tools lib traceevent: Rename "pevent" member of struct tep_event to "tep" 2019-04-01 15:18:10 -03:00
plugin_kvm.c perf tools, tools lib traceevent: Rename "pevent" member of struct tep_event to "tep" 2019-04-01 15:18:10 -03:00
plugin_mac80211.c tools lib traceevent: Rename input arguments of libtraceevent APIs from pevent to tep 2019-04-01 15:18:09 -03:00
plugin_sched_switch.c perf tools, tools lib traceevent: Rename "pevent" member of struct tep_event to "tep" 2019-04-01 15:18:10 -03:00
plugin_scsi.c tools lib traceevent: Rename input arguments of libtraceevent APIs from pevent to tep 2019-04-01 15:18:09 -03:00
plugin_xen.c tools lib traceevent: Rename input arguments of libtraceevent APIs from pevent to tep 2019-04-01 15:18:09 -03:00
tep_strerror.c tools lib traceevent: Separate out tep_strerror() for strerror_r() issues 2018-10-08 14:30:45 -03:00
trace-seq.c tools lib traceevent: Changed return logic of trace_seq_printf() and trace_seq_vprintf() APIs 2019-01-08 13:28:13 -03:00
trace-seq.h tools lib traceevent, perf tools: Split trace-seq related APIs in a separate header file 2018-08-30 15:52:20 -03:00