1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-25 08:12:11 -07:00
Commit graph

6434 commits

Author SHA1 Message Date
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