Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
182 commits
Select commit Hold shift + click to select a range
3b1d0ce
command line -- nonsense file path is fatal
dmullis Nov 21, 2012
d1c771d
FIX panning
dmullis Nov 21, 2012
baa70cf
command line abort if no bootchart.tgz named
dmullis Nov 21, 2012
7e704a4
GUI finer xscale steps
dmullis Nov 21, 2012
bcfdb81
comment expanded
dmullis Nov 21, 2012
a0a2a34
FIX charts -- doubtful fix for divide by zero
dmullis Nov 21, 2012
d47244d
FIX -- show final thread name -- from prctl -- when taskstats is absent
dmullis Nov 21, 2012
74a77ef
FIX do not overfill charts
dmullis Nov 21, 2012
64f128c
mouse wheel drives xscale
dmullis Nov 21, 2012
3ca5e79
TODO
dmullis Nov 21, 2012
71fcd8c
pruning -- add option to select policy -- default heavy
dmullis Nov 21, 2012
ade8e3d
FOLD -- pruning -- do NOT elide bootchart collector
dmullis Nov 21, 2012
2872bd6
FOLD -- pruning -- do NOT hide really tiny processes
dmullis Nov 21, 2012
95cc0af
DOC group options
dmullis Nov 21, 2012
d2eac5f
COMMENT only -- taskstats -- treat process labels as implicit prctl e…
dmullis Nov 21, 2012
7aaa26b
IO charts per partition -- generalize to sequence of charts 3.partiti…
dmullis Nov 21, 2012
f627f8b
IO charts per partition 9.partitions on command line
dmullis Nov 21, 2012
f82a813
gui -- bigger window
dmullis Nov 21, 2012
f31d94c
gui -- xscale cosmetics
dmullis Nov 21, 2012
ac70c09
add option to left justify process labels -- default to left
dmullis Nov 21, 2012
900ad41
add option to relabel partitions
dmullis Nov 21, 2012
ad22b49
CPU chart -- add procs_running procs_blocked to CPU chart
dmullis Nov 21, 2012
ae2c3b3
FIX save first per process sample too
dmullis Nov 21, 2012
c32780b
FIX save first CPU sample
dmullis Nov 21, 2012
757032e
charts -- square charts
dmullis Nov 21, 2012
dcce7fc
charts -- always square charts
dmullis Nov 21, 2012
6170926
charts -- draw.py -- draw non zero horizontals only -- for square unf…
dmullis Nov 21, 2012
53b8479
IO charts add written bytes chart
dmullis Nov 21, 2012
f01afeb
process -- touch up spacing and CPU colors
dmullis Nov 21, 2012
818f5e1
tweak colors
dmullis Nov 21, 2012
e6ab7d6
process -- draw CPU color for even sleeping processes
dmullis Nov 21, 2012
44806e0
process -- split per process bars
dmullis Nov 21, 2012
f8d43d0
IO charts refactor
dmullis Dec 8, 2012
48b725a
IO charts -- tolerate mismatched partition names -- hack -- needs usa…
dmullis Nov 21, 2012
8844f2a
IO charts -- add option to graph io_ops not byte
dmullis Dec 12, 2012
f4ef201
IO charts -- dont hide disk util overshoots
dmullis Nov 21, 2012
9a45de0
parsing -- events -- log
dmullis Dec 12, 2012
2985669
parsing -- events log -- tolerate extra space
dmullis Nov 21, 2012
603f4f6
events -- adorn_process_map
dmullis Nov 21, 2012
1faf7f6
events -- fix pruning
dmullis Nov 21, 2012
01f39ec
clipping -- eliminate legacy user coord clipping
dmullis Nov 21, 2012
56d2fe8
events -- draw ticks
dmullis Nov 21, 2012
2b4d3e0
events -- filter by regex
dmullis Nov 21, 2012
979934e
events -- add option -- synthesize sample start events
dmullis Nov 21, 2012
1f7ad8a
events -- checkbox to disable event display
dmullis Nov 21, 2012
3e5facd
FIX -- better button label
dmullis Nov 21, 2012
7f8a169
events -- fix help string
dmullis Nov 21, 2012
65b66db
events -- draw event times
dmullis Nov 21, 2012
7a59f27
FIX dont highlight button upon click
dmullis Nov 21, 2012
e2beca1
refactor -- sec_w args -- to -- SEC_W global
dmullis Nov 21, 2012
32cea72
add -- prehistory -- option -- XXX breaks taskstats
dmullis Nov 21, 2012
d506fe1
clipping -- relax clipping so process bars can project outward
dmullis Nov 21, 2012
82cd03e
draw_label_in_box -- rework
dmullis Nov 21, 2012
88479bd
disable -- draw_sec_labels
dmullis Nov 21, 2012
5909db4
heuristic tweak process duration stat upward by half of samplePeriod
dmullis Nov 21, 2012
6498791
ProcessTree -- refactor -- comments in process_tree.py
dmullis Nov 21, 2012
af67d90
ProcessTree -- refactor -- proc_tree.duration becomes a method
dmullis Nov 21, 2012
94350fd
events -- never prune a process that reports an event
dmullis Nov 21, 2012
a04da1d
charts -- draw.py -- implement scatter plots
dmullis Nov 21, 2012
820fd14
process -- draw state as diamond
dmullis Nov 21, 2012
bf3688b
legend text tweak
dmullis Nov 21, 2012
8931126
gui -- isotemporal
dmullis Nov 21, 2012
e36c77a
draw -- rework -- replace off_x with matrix translate
dmullis Nov 21, 2012
c75cf01
show diamond for each runnable _process_leader_ thread
dmullis Nov 21, 2012
60d4316
process -- keep labels on screen too if process bar is
dmullis Nov 21, 2012
e00fa3c
draw process without end cap
dmullis Nov 21, 2012
da00112
disable max_sample.tput rendering
dmullis Nov 21, 2012
60fd68e
disable header elapsed time printing
dmullis Nov 21, 2012
397b82c
hide mmeeks signature
dmullis Nov 21, 2012
567ec34
events -- fix event label collisions
dmullis Nov 21, 2012
9b38927
ctx_save -- wrapper -- time_in_hz_to_x
dmullis Nov 21, 2012
d973b77
FOLD draw.py -- time variables renaming
dmullis Nov 21, 2012
8e2c36d
zoom remains centered
dmullis Nov 21, 2012
7f27584
FIX -- xscale centered
dmullis Nov 21, 2012
6b4fa79
refactor -- gui simplify
dmullis Nov 21, 2012
abd3297
events -- times relative to isotemporal
dmullis Nov 21, 2012
12d83a3
SEC_W float not int
dmullis Nov 21, 2012
83a7dbc
FOLD fix extents
dmullis Nov 21, 2012
70a98c3
FOLD -- off by one period
dmullis Nov 21, 2012
bac510e
delete Y clipping
dmullis Nov 21, 2012
65499ca
delete superfluous arg
dmullis Nov 21, 2012
b917a96
events -- log format 7 version change
dmullis Nov 21, 2012
0e88bdf
events -- adjust time label -- spacing
dmullis Nov 21, 2012
9f99019
dump event on button down
dmullis Nov 21, 2012
bfb8543
usec event positions
dmullis Nov 21, 2012
62232fa
write status to stderr
dmullis Nov 21, 2012
3d0383a
rename -- ISOTEMPORAL to SWEEP
dmullis Nov 21, 2012
d489d94
event dump and labeling fixes
dmullis Nov 21, 2012
5dcc5e0
refactor -- options object and SWEEP
dmullis Nov 21, 2012
00b8d17
process label cosmetics
dmullis Nov 21, 2012
f7f2ac6
refactor -- remove unused arg -- rect
dmullis Nov 21, 2012
215b522
FIX -- work around numeric overflow at high xscale factors
dmullis Nov 21, 2012
21190a7
show sweep dump window beginning and end
dmullis Nov 21, 2012
1518389
add absolute event time option 2.py
dmullis Nov 21, 2012
3c78da7
refactor -- extents a pure function -- constants immutable -- create …
dmullis Nov 21, 2012
5f06a55
lighter shading
dmullis Nov 21, 2012
32fbb2f
FIX colliding proc status counts
dmullis Nov 21, 2012
54490b2
FIX shading
dmullis Nov 21, 2012
a142b03
FIX lighter process connecting lines
dmullis Nov 21, 2012
864d892
sweep maintain window time width under scaling
dmullis Nov 21, 2012
8885d58
FIX simplify process clipping
dmullis Nov 21, 2012
b1c6bff
FIX label hides left end of process bar
dmullis Nov 21, 2012
07a54cf
add show_legends checkbox
dmullis Nov 21, 2012
c56d041
no box ticks
dmullis Nov 21, 2012
d9f854a
add dynamic process hiding
dmullis Nov 21, 2012
47620ba
refactor pruning for dynamic process hiding
dmullis Dec 12, 2012
75d427b
integrate legacy static pruning as initial state of dynamic
dmullis Nov 21, 2012
78b9b11
disable special case pruning of -- logger -- process
dmullis Dec 12, 2012
5c4480e
simplify button assignments
dmullis Nov 21, 2012
6bbe3ee
proc_ps_threads.log format support
dmullis Dec 5, 2012
e6a4c82
refactor -- split CPUSample by user
dmullis Nov 21, 2012
42eaf88
proc_ps_threads.log -- add per thread option
dmullis Nov 21, 2012
66cb74d
refactor -- parsing
dmullis Nov 21, 2012
cb1672c
event -- lazy loading of raw_log_line
dmullis Nov 21, 2012
e0462de
draw process_activity as bars -- not alpha modulated color
dmullis Nov 21, 2012
9712d1f
event dump list
dmullis Nov 21, 2012
3ff9c46
rework pruning
dmullis Nov 21, 2012
20559a5
draw -- pid+tid first -- name last
dmullis Nov 21, 2012
f36e36d
draw show_all show ppid
dmullis Nov 21, 2012
57431a3
events dump context
dmullis Nov 21, 2012
68f9d85
events -- regex match highlights rather than selects
dmullis Nov 21, 2012
43612ed
event window -- drag to width
dmullis Nov 21, 2012
caee255
events -- add -- hide less active option -- allow pruning of threads …
dmullis Nov 21, 2012
d1c67ce
simplify pruning test
dmullis Nov 21, 2012
69f5c44
If thread ran at all_ draw at least one user space unit in height
dmullis Nov 21, 2012
5580890
minimum activity mark.first attempt
dmullis Nov 21, 2012
e9a28c8
FIX collect CPU time of first sample
dmullis Nov 21, 2012
322af70
remove show active option -- record cuser+csys times
dmullis Nov 21, 2012
dd85224
FIX dont hide numerical issue
dmullis Nov 21, 2012
2ddd8ff
draw process duration more faithfully
dmullis Nov 21, 2012
191c7d4
simplify process label positioning
dmullis Nov 21, 2012
23b4bc8
show soft left border for preexisting threads
dmullis Nov 21, 2012
29d0680
FIX connecting lines cleanup
dmullis Nov 21, 2012
25c0282
label highlighted events -- cleanup
dmullis Nov 21, 2012
178c20c
label highlighted events -- regression test only
dmullis Nov 21, 2012
889e785
label highlighted events -- efficacy
dmullis Nov 21, 2012
50efaa0
events rename
dmullis Nov 21, 2012
10b3530
draw sys time bar
dmullis Nov 21, 2012
74694a0
FIX total system cpu time not scaled to total CPU -- was independent …
dmullis Nov 21, 2012
76d9e12
minimum activity mark now a cairo arc
dmullis Nov 21, 2012
9a6f2f0
hide process range -- unhide all
dmullis Nov 21, 2012
942cc2a
FIX sweep
dmullis Nov 21, 2012
e365264
gui zoom by radical 2 increments -- for pixel alignment
dmullis Nov 21, 2012
a42e96b
dont hide processes that do anything but sleep
dmullis Nov 21, 2012
1869fd4
command line -- change defaults
dmullis Nov 21, 2012
5184be6
main -- events command line option takes a list
dmullis Nov 21, 2012
c4dc252
sweep line time labels
dmullis Nov 21, 2012
b1b69f6
FIX CPU accounting off by one -- cleanup
dmullis Nov 21, 2012
2520caa
process samples show childrens time -- requires proc_ps.log
dmullis Nov 21, 2012
df52172
DISABLE compute_lost_child_times
dmullis Nov 21, 2012
9341ffa
FIX per thread CPU accounting
dmullis Nov 21, 2012
5de2b04
FIX process hiding heuristic
dmullis Nov 21, 2012
9d0670f
draw show overflows
dmullis Nov 21, 2012
9653305
FIX process drawing
dmullis Nov 21, 2012
75e30a6
whole system bars on exact pixels
dmullis Nov 21, 2012
8b2a636
events highlighted event times step on everything else
dmullis Nov 21, 2012
ee5cd3e
draw -- sweep time labels always on screen
dmullis Dec 7, 2012
d9291c2
draw -- better time labels
dmullis Dec 12, 2012
f786b8a
legends stay onscreen
dmullis Nov 21, 2012
bafa565
legend spacing touch up2
dmullis Nov 21, 2012
96ad01b
draw charts on pixel center
dmullis Nov 21, 2012
136a4af
hide header details
dmullis Nov 21, 2012
20503b9
big redacting patch
dmullis Dec 12, 2012
b6ee77d
draw -- thread or process cmd field show basename only -- not full pa…
dmullis Dec 4, 2012
c1803cb
gui -- add Statusbar
dmullis Nov 27, 2012
b111b48
events -- make options.event_source a dict
dmullis Dec 8, 2012
e37ba9b
commandline -- rework help text
dmullis Dec 12, 2012
b2fdc00
main -- argparse replaces optparse
dmullis Dec 8, 2012
bd57299
draw TID for procPIDtaskTIDstat threads only
dmullis Nov 30, 2012
ac1b001
gui sort EvSource pulldown entries
dmullis Nov 21, 2012
f4b0de6
events PC sample pseudo EvSource refactor
dmullis Dec 12, 2012
12c0724
variable rename -- parsing.py
dmullis Dec 4, 2012
96b2a64
Process carries LWP boolean flag
dmullis Dec 5, 2012
3a17014
warning messages demoted to info
dmullis Dec 6, 2012
6d48370
tweak defaults
dmullis Dec 5, 2012
230e4af
FIX show lwps only for kernel threads
dmullis Dec 5, 2012
ecc9b26
draw -- show niceness
dmullis Dec 5, 2012
bfc3da5
draw legend for process and thread labels
dmullis Dec 12, 2012
065e497
deprecate datasets containing LWP stats only -- proc_ps_threads
dmullis Dec 6, 2012
325f2dd
support proc_ps_compact.log
dmullis Dec 12, 2012
c62b369
FIX -- output was off by one line -- in dump raw context lines
dmullis Dec 8, 2012
3bf22c9
DISABLE raw log dump
dmullis Dec 8, 2012
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
** Bugs:

* Don't step on distro's /usr/bin/pybootchartgui -- use /usr/local/

* FIXME: are we merging / glupping threads properly ?
+ how can sreadahead apparently be doing no I/O ? :-)

Expand All @@ -11,9 +13,6 @@
+ traced %d processes of $$ (!) :-)
+ consumed %d seconds of CPU [ render these ... ]

+ horizontal zoom - should keep view horiz centered:
but does not - cf. set_xscale

+ merge processes for CPU counts:
+ if the ns count is -identical- (and non-zero) it is the same process
+ need to back-merge somehow ?
Expand Down
14 changes: 8 additions & 6 deletions pybootchartgui/batch.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

import cairo
from . import draw
from .draw import RenderOptions
from .draw import DrawContext

def render(writer, trace, app_options, filename):
handlers = {
Expand All @@ -30,17 +30,19 @@ def render(writer, trace, app_options, filename):
else:
fmt = app_options.format

app_options.show_legends = True

if not (fmt in handlers):
writer.error ("Unknown format '%s'." % fmt)
return 10

make_surface, write_surface = handlers[fmt]
options = RenderOptions (app_options)
(w, h) = draw.extents (options, 1.0, trace)
w = max (w, draw.MIN_IMG_W)
drawctx = DrawContext (app_options, trace)
(w, h) = draw.extents (drawctx, 1.0, trace)
w = max (w, draw.C.MIN_IMG_W)
surface = make_surface (w, h)
ctx = cairo.Context (surface)
draw.render (ctx, options, 1.0, trace)
cr = cairo.Context (surface)
draw.render (cr, drawctx, 1.0, trace)
write_surface (surface)
writer.status ("bootchart written to '%s'" % filename)

Loading