Gareth Rees
f57b5d54db
Add time series for total allocation by the client program.
...
Copied from Perforce
Change: 194537
2018-07-09 16:21:20 +01:00
Gareth Rees
e67c9dd45d
Label the top generation and the generations in the arena's default generation chain, for the benefit of the telemetry monitor.
...
Copied from Perforce
Change: 194536
2018-07-09 16:11:17 +01:00
Gareth Rees
531c50c614
Keep checkboxes sorted by name.
...
Copied from Perforce
Change: 194355
2018-07-03 09:35:12 +01:00
Gareth Rees
cee7c490ac
Add time series for mortality in a generation, and size of segments referencing each generation.
...
Copied from Perforce
Change: 194348
2018-07-02 15:40:42 +01:00
Gareth Rees
84b879ab56
Click on a line to find out what it is.
...
Copied from Perforce
Change: 194308
2018-06-29 12:53:00 +01:00
Gareth Rees
78fb65d63b
Synchronously decode as much of the telemetry stream as possible before launching the gui, so that errors can be emitted before creating the window.
...
Copied from Perforce
Change: 194303
2018-06-29 10:07:21 +01:00
Gareth Rees
5acfa30f9e
Add mpseventpy as a target to the xcode project.
...
Copied from Perforce
Change: 194296
2018-06-28 17:20:59 +01:00
Gareth Rees
f7e33956e9
Try to avoid "eventpy.c:164:3: error: comparison of unsigned expression < 0 is always false" from gcc 4.8.4 (the version on the travis buildbots). see https://travis-ci.org/ravenbrook/mps/jobs/397813493
...
Copied from Perforce
Change: 194282
2018-06-28 16:07:56 +01:00
Gareth Rees
9f031d9c5c
Not safe to call segsetsummary from gcsegfinish.
...
Copied from Perforce
Change: 194277
2018-06-28 14:34:58 +01:00
Gareth Rees
7a10a50136
New event segsetsummary allows the monitor to track the sizes of segments referencing particular zones.
...
Copied from Perforce
Change: 194259
2018-06-28 13:14:12 +01:00
Gareth Rees
c438e927e6
Include mpseventpy in "make install".
...
Copied from Perforce
Change: 194258
2018-06-28 13:13:06 +01:00
Gareth Rees
791308ab8f
Try to open the telemetry file before creating the gui and thread, so that the error appears immediately.
...
Copied from Perforce
Change: 194234
2018-06-27 11:36:41 +01:00
Gareth Rees
76db61222d
Hide axes that don't have any lines.
...
Copied from Perforce
Change: 194233
2018-06-27 11:33:18 +01:00
Gareth Rees
a82d40af6e
Need to check the stop signal if there were no batches.
...
Copied from Perforce
Change: 194228
2018-06-27 10:32:34 +01:00
Gareth Rees
46517c51ff
Stop decoding messages when application exits.
...
Copied from Perforce
Change: 194223
2018-06-27 10:28:21 +01:00
Gareth Rees
f134e5afb9
Fix alignment of event structures.
...
Copied from Perforce
Change: 194220
2018-06-27 10:11:50 +01:00
Gareth Rees
fd7a40c59b
Decode the events in another thread to avoid the need for non-blocking i/o and so make the code portable to windows.
...
Copied from Perforce
Change: 194215
2018-06-27 09:10:30 +01:00
Gareth Rees
9ebafea5ab
Better approach to averaging the cpu usage.
...
Copied from Perforce
Change: 194210
2018-06-27 08:51:17 +01:00
Gareth Rees
2c494e9878
New events arenapollbegin and arenapollend.
...
Measure fraction of CPU time in polling.
Represent the units of each TimeSeries.
Draw graphs for up to two different units using Axes.twinx.
Copied from Perforce
Change: 194204
2018-06-26 16:21:48 +01:00
Gareth Rees
6152f3449b
Refactor the code so that the sorting and time interpolation takes place in the event decoder.
...
Record the problem with clocks wrapping round on 32-bit systems.
Tooltips for time series.
Read and ignore unknown event codes.
Copied from Perforce
Change: 194199
2018-06-26 14:12:37 +01:00
Gareth Rees
4a8c38e599
Setfixedwidth responds better when image resized.
...
Copied from Perforce
Change: 194178
2018-06-26 11:07:26 +01:00
Gareth Rees
ee7d0e06e7
Pause/unpause during live animation.
...
Zooming/panning automatically pauses.
Copied from Perforce
Change: 194177
2018-06-26 11:05:43 +01:00
Gareth Rees
4fc9c32342
Make the list of line checkboxes scrollable.
...
Copied from Perforce
Change: 194172
2018-06-26 09:59:44 +01:00
Gareth Rees
afc5738022
Improved name.
...
Copied from Perforce
Change: 194154
2018-06-25 15:54:57 +01:00
Gareth Rees
48780b4780
Record the tsc wrap-around non-issue.
...
Copied from Perforce
Change: 194151
2018-06-25 15:49:23 +01:00
Gareth Rees
0ffeaadc7b
Linearly interpolate clocks for each batch once.
...
Copied from Perforce
Change: 194150
2018-06-25 15:43:49 +01:00
Gareth Rees
0799ee0ca0
Command+w shortcut for closing the application.
...
Copied from Perforce
Change: 194145
2018-06-25 15:00:26 +01:00
Gareth Rees
6d50284823
Integrate with qt5.
...
Checkboxes control display of time series.
Copied from Perforce
Change: 194140
2018-06-25 14:12:22 +01:00
Gareth Rees
f63972ad0d
Live monitoring via a named pipe.
...
Copied from Perforce
Change: 194123
2018-06-23 19:24:37 +01:00
Gareth Rees
c339f63320
Endianness support allows you to (theoretically) run the monitor on a different platform.
...
Copied from Perforce
Change: 194118
2018-06-23 16:01:26 +01:00
Gareth Rees
49b2c3606f
Documentation for event header fields.
...
Copied from Perforce
Change: 194113
2018-06-23 15:51:26 +01:00
Gareth Rees
aea2ed3811
Handle deletion of arenas and pools (they often get recreated at the same addresses so this is vital).
...
Sort the events in batches so that, for example, we get PoolFinish before ArenaDestroy.
Emit ArenaDestroy event after finishing all its pools.
Add arena parameter to PoolFinish event.
Restore top-down logging of events (no need to order them the telemetry output, since the monitor sorts them).
Add comments for all the events used by the monitor.
Include the arena's name in the pool's name when there are multiple arenas.
Copied from Perforce
Change: 194112
2018-06-23 15:37:11 +01:00
Gareth Rees
ffd2c479e4
Preparation for animation.
...
Copied from Perforce
Change: 194101
2018-06-22 17:28:10 +01:00
Gareth Rees
6fa5c92f83
Check version.
...
Convert cycle counters to seconds by piecewise linear interpolation.
Copied from Perforce
Change: 194096
2018-06-22 15:59:35 +01:00
Gareth Rees
bb5034594d
Event alignment doesn't need to be mps_pf_align (that's wasteful on windows).
...
Copied from Perforce
Change: 194091
2018-06-22 14:09:56 +01:00
Gareth Rees
c3a7104eff
Label the time series in the monitor.
...
In telemetry output, distinguish between labelling of (client) addresses and (MPS-internal) pointers, to avoid transgressing the distinction.
Add arena grain size, class, and serial number to ArenaCreate* events.
Add pool class and serial number to PoolInit event.
Copied from Perforce
Change: 194086
2018-06-22 11:05:46 +01:00
Gareth Rees
6fd9abf9bd
Rename monitor.py to monitor for consistency with other python applications.
...
Copied from Perforce
Change: 194069
2018-06-21 20:48:22 +01:00
Gareth Rees
6ebfdb2a10
Avoid "dereferencing type-punned pointer will break strict-aliasing rules" from gcc 4.8.
...
Copied from Perforce
Change: 194061
2018-06-21 17:30:51 +01:00
Gareth Rees
2a76ea526d
First draft of mps model, time series, and plot.
...
Copied from Perforce
Change: 194056
2018-06-21 14:19:37 +01:00
Gareth Rees
14ce806a0c
Emit events in time order (per kind for now) in order to support telemetry consumers that run in real time.
...
Copied from Perforce
Change: 194051
2018-06-21 14:00:05 +01:00
Gareth Rees
e961c80ff9
Arenafree event needs to include the pool so that telemetry-consuming applications can update pool statistics without having to remember the addresses of all the allocations.
...
Copied from Perforce
Change: 194050
2018-06-21 13:57:42 +01:00
Gareth Rees
07f77d6c1b
Generate events as namedtuples.
...
Copied from Perforce
Change: 194045
2018-06-21 09:52:03 +01:00
Gareth Rees
7b735041ab
Better handling of intern events.
...
Copied from Perforce
Change: 194040
2018-06-21 09:16:06 +01:00
Gareth Rees
d3eff9ff45
Since we changed the major version number, we might as well fix the type of the ok parameter of the commitlimitset event.
...
Copied from Perforce
Change: 194033
2018-06-20 16:09:57 +01:00
Gareth Rees
5cc5bb5922
Don't store booleans as bit-fields in event structures: this makes it impossible to automatically unpack them using python's struct module. (the only event where this actually saved any space was poolinitmvff!)
...
Update event format to 2.0.0 since telemetry format changed.
New macro EVENT_ANY_FIELDS allows consumers to determine the layout of the event header.
mpseventpy now analyzes the event layout (including padding bytes) and emits struct format specifications.
New program tool/monitor.py reads and unpacks a stream of telemetry events.
Copied from Perforce
Change: 194026
2018-06-20 15:51:38 +01:00
Gareth Rees
3599e8e255
Branching master to branch/2018-06-20/monitor.
...
Copied from Perforce
Change: 194022
2018-06-20 15:39:19 +01:00
Gareth Rees
2e63bc2b64
Bring design.mps.sp.sol.depth.analysis up to date.
...
Copied from Perforce
Change: 194012
2018-06-20 12:55:45 +01:00
Gareth Rees
6d3b228200
Fix issues identified in review by apt.
...
Copied from Perforce
Change: 193982
2018-06-19 14:51:56 +01:00
Gareth Rees
4d52bf19c5
Forktest passes without the need for polling.
...
Copied from Perforce
Change: 193964
2018-06-19 08:59:00 +01:00
Gareth Rees
c6af54572d
No need for empty atfork handlers, can pass null to pthread_atfork.
...
Copied from Perforce
Change: 193963
2018-06-19 08:57:26 +01:00