1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-06 20:00:46 -08:00
Commit graph

6971 commits

Author SHA1 Message Date
Gareth Rees
df41d66de5 Don't represent capacities internally in kilobytes, convert once on initialization.
In the monitor, start average mortality time series with the initial predicted value.

Copied from Perforce
 Change: 194565
2018-07-10 13:10:00 +01:00
Gareth Rees
14b0146a31 Pass keyword arguments to axes.plot.
Plot condemned gens and size as points rather than lines.
Don't accumulate reference size if no segment information.
Keep bytes on the left axis and fraction on the right if possible.
Plot time series even with a single point (now makes sense with marker= argument).

Copied from Perforce
 Change: 194549
2018-07-10 08:32:25 +01:00
Gareth Rees
48c5579969 Add time series for total condemned memory during a trace.
Copied from Perforce
 Change: 194544
2018-07-09 17:03:53 +01:00
Gareth Rees
91efa65199 Add time series for fraction of generations condemned in chain.
Copied from Perforce
 Change: 194541
2018-07-09 16:56:16 +01:00
Gareth Rees
23cb9aa226 Add time series for per-trace mortality.
Copied from Perforce
 Change: 194538
2018-07-09 16:29:37 +01:00
Gareth Rees
34c343b96e 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
8fb0e4dcc9 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
73229fd23a Keep checkboxes sorted by name.
Copied from Perforce
 Change: 194355
2018-07-03 09:35:12 +01:00
Gareth Rees
3641c31e6b 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
22c806705d 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
249ff09f2a 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
07dfb53f25 Add mpseventpy as a target to the xcode project.
Copied from Perforce
 Change: 194296
2018-06-28 17:20:59 +01:00
Gareth Rees
5812cc3c8b 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
d33c34926a Not safe to call segsetsummary from gcsegfinish.
Copied from Perforce
 Change: 194277
2018-06-28 14:34:58 +01:00
Gareth Rees
fc6ae0978f 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
e28b4d871a Include mpseventpy in "make install".
Copied from Perforce
 Change: 194258
2018-06-28 13:13:06 +01:00
Gareth Rees
78dc964f73 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
d2b6d74ee8 Hide axes that don't have any lines.
Copied from Perforce
 Change: 194233
2018-06-27 11:33:18 +01:00
Gareth Rees
a115d05316 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
c7e6ce8c6b Stop decoding messages when application exits.
Copied from Perforce
 Change: 194223
2018-06-27 10:28:21 +01:00
Gareth Rees
1a5179863f Fix alignment of event structures.
Copied from Perforce
 Change: 194220
2018-06-27 10:11:50 +01:00
Gareth Rees
a725395bf4 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
459a02d625 Better approach to averaging the cpu usage.
Copied from Perforce
 Change: 194210
2018-06-27 08:51:17 +01:00
Gareth Rees
e323bd2e15 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
3ab13b0f27 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
44c07ace41 Setfixedwidth responds better when image resized.
Copied from Perforce
 Change: 194178
2018-06-26 11:07:26 +01:00
Gareth Rees
026af76fab Pause/unpause during live animation.
Zooming/panning automatically pauses.

Copied from Perforce
 Change: 194177
2018-06-26 11:05:43 +01:00
Gareth Rees
6e27d4f95e Make the list of line checkboxes scrollable.
Copied from Perforce
 Change: 194172
2018-06-26 09:59:44 +01:00
Gareth Rees
f62ff53c90 Improved name.
Copied from Perforce
 Change: 194154
2018-06-25 15:54:57 +01:00
Gareth Rees
6d6d5ecaaf Record the tsc wrap-around non-issue.
Copied from Perforce
 Change: 194151
2018-06-25 15:49:23 +01:00
Gareth Rees
25ee1ea3ae Linearly interpolate clocks for each batch once.
Copied from Perforce
 Change: 194150
2018-06-25 15:43:49 +01:00
Gareth Rees
fc897d90e3 Command+w shortcut for closing the application.
Copied from Perforce
 Change: 194145
2018-06-25 15:00:26 +01:00
Gareth Rees
45f5372a1e Integrate with qt5.
Checkboxes control display of time series.

Copied from Perforce
 Change: 194140
2018-06-25 14:12:22 +01:00
Gareth Rees
5eb78126a3 Live monitoring via a named pipe.
Copied from Perforce
 Change: 194123
2018-06-23 19:24:37 +01:00
Gareth Rees
9055658937 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
844d35d9ce Documentation for event header fields.
Copied from Perforce
 Change: 194113
2018-06-23 15:51:26 +01:00
Gareth Rees
1c7107fd8c 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
efa0382487 Preparation for animation.
Copied from Perforce
 Change: 194101
2018-06-22 17:28:10 +01:00
Gareth Rees
99c38a4f67 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
65d5f185f8 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
32a1c7c44f 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
6f7e356142 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
7500c714e7 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
c11e1b6c3b First draft of mps model, time series, and plot.
Copied from Perforce
 Change: 194056
2018-06-21 14:19:37 +01:00
Gareth Rees
3dc5a92860 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
4c27186bf5 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
dc3c79094c Generate events as namedtuples.
Copied from Perforce
 Change: 194045
2018-06-21 09:52:03 +01:00
Gareth Rees
f4f795cb37 Better handling of intern events.
Copied from Perforce
 Change: 194040
2018-06-21 09:16:06 +01:00
Gareth Rees
d365ccbd08 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
2e85d9a850 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