| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
| |
If we do a make clean, still allow the dependencies of the programs
to create the library. That is:
$ make clean
$ make trace-view
Needs to build the libtracecmd.a file.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|
|
|
|
|
|
| |
Include when a task is scheduled in as an event in the filtered
list.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|
|
|
|
|
|
|
|
|
|
| |
The search used the size of the actual_rows array, and not the
size of what was visible. The visible_rows use the array, but anything
outside the visible rows are just left overs.
Using the bsearch on the entire array causes errors in the search.
It should only use the subset that is visible.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a list is filtered, the search_for_record_by_timestamp() was returning
incorrect values because the rows_ts_cmp() was using the pointer the array
was pointing to go to the next record. But if that record was not visible
or the next record should have been on another CPU, it would break the
bsearch.
The correct approach is to look at the next record in the array, not the
per cpu list.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|
|
|
|
|
|
| |
The helper function to select a row just adds overhead for
trace_view_select(). Just call the selection directly.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|
|
|
|
|
|
|
| |
The trace_view_store_get_timestamp_visible_row() did not return
only visible rows, but also invisible ones. This patch fixes the
code to only return the visible rows.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|
|
|
|
|
| |
The list and graph can now filter tasks.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There was a bug with tracecmd_read_cpu_first() where it may not return
the first record for a CPU. If another record was read on the first page
the get_page() function would return without reseting the index.
The tracecmd_read_cpu_first() needs to always reset the index before
returning tracecmd_read_data().
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In order to make the trace tree of kernelshark work better with
the trace-graph, move the filtering code of tasks out of trace-graph.c
into trace-hash.c. This will allow the trace-tree to be more flexible
in its filtering too.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| | |
When the last task is removed from the filter, disable the filter.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Let the tree view pop up menu filter the graph as well. This makes
finding tasks to filter on easier, as it is easier to search for a
task from the tree view than with the graph.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The kmem events only show a useless hex symbol for the call site name.
This adds a plugin to do a lookup of the function name and still
print the rest of the event format.
Also adds pevent_find_function_address() to let the plugin show the
offset into the function as well.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A plugin may only need to translate part of the field, or if it fails to
translate, it may want the default to print.
Now if a plugin handler returns something other than 0, the default print
handler will take place.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| | |
This enables the popup filter menus to actual filter the tasks
in the graph.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| | |
An old hack was still in place to redraw the graph after zooming
in and out. Replace it with the redraw function and the
update_with_backend().
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add popup menus to graph that allows the use to add or remove
tasks from the filter, as well as to enable or disable the filter.
This only adds the popup menus, the filtering is not actually done yet.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Did a little more research and found a nice hash that is quick
and pretty powerful. Based off of Paul Hsieh's super fast hash:
http://www.azillionmonkeys.com/qed/hash.html
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This adds a little better pid hash function that will give a
better difference in colors for tasks than the previous hash
algorithm.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The color was not being set up for the box if a task other than
idle was the first event on a CPU. The gc variable used to draw
the task box was not initialized and the color of the task was
random at the start.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Always intialize the cpu_data list event if the cpu data
is empty. The list may still be referenced, and it will
segfault if the list is not initialized.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| | |
If for some reason a cell in a column contains no text, then
exit the data_func, otherwise we may segfault.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some of the functions that were used to make the fixed width
columns are not available for older GTK. This patch adds
compat functions that implement code that lets this compile
with older versions of GTK.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|\ \
| | |
| | |
| | | |
git://git.kernel.org/pub/scm/linux/kernel/git/dvhart/trace-cmd into trace-view
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
By using fixed width columns and fixed height rows, the view can now
render over 400k events without any noticable lag. This makes it so
large traces can now be viewed in one "page" of the trace-view-model.
The new trace-view-data-func() is called when the view wants to render
cell (which it only has to do when it's visible now that we use fixed
sizings). Here we check the string width in pixels and resize the column
if necessary. By tracking the max character width of each column, we can
avoid doing the expensive Pango pixel width test as often. By adding a
little extra padding, we anticipate one more character, further reducing
the overhead. The first full scroll down and up shows no noticable lag
due to these calculations once the optimizations were implemented.
V2: fix an unused var warning and use a long when casting to a pointer.
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For some reason zooming in too much will cause the horizontal
scrolling to get out of sync. This is probably a rounding error
or some other strange bug. This patch cleans some of the code
up and fixes parts of it. But there's still a bug to swat.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|\ \ \
| | |/
| |/| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the recorded timestamp of the cpu cached record does not match
the timestamp stored in the cpu_data, that means the record is
no longer valid. Free it and read a new record.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Too much output is being displayed in the graph output. Convert the
printf to dprintf macro that can control the amount of output.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Move the cpu mask alorithms out into cpu.h for other files to use them.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|\| |
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add a python EventStore instead of a generic gtk.ListStore. Load time is
reduced 50% although still 15x slower than the C version.
Add the proper freeing of the record to the Event destructor rather than
setting ownership of the pointer to Python. The latter causes swig to
call free() on the record rather than free_record() which does some
intelligent things regarding the mmap.
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
|
| |
| |
| |
| | |
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
|
| |
| |
| |
| | |
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
|
| |
| |
| |
| | |
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
|
| |
| |
| |
| | |
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
|
| |
| |
| |
| | |
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When clicking the All CPUs toggle, it will now select all the
individual CPU toggle buttons.
When disabling an individual CPU toggle, it will also disable the
All CPUs toggle.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| | |
This adds a separate drawing area to hald the CPU labels.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In order to add another column to store the information of a bar
(like CPU, or TASK) we need to have more than one widget and control
the scrollwindow.
This patch places the scrollwindow inside the management of the
graph code, and returns a hbox to the caller.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Removed the "boxing" of tasks, and made them a solid bar. Moved
the CPU line to the bottom as well. Moved the CPU labels below
the bar.
Reported-by: Darren Hart <dvhltc@us.ibm.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the processing of an arg fails, it frees the given token.
But in this case, the token happens to also be assigned to an op.
If the parsing fails, then the op may be freed twice causing glibc
to abort.
Reported-by: John Kacur <jkacur@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|\| |
|
| |
| |
| |
| |
| |
| |
| | |
The fix for a memory leak with closedir incorrectly added the close
in the fail path. There is no failure condition after the opendir.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
| |
| |
| |
| |
| |
| | |
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
LKML-Reference: <4B3A5AD1.8020001@us.ibm.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
|\| |
|
| |
| |
| |
| |
| |
| |
| | |
Add some generated files from python to the ignore list.
Reported-by: Darren Hart <dvhltc@us.ibm.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|