1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-02 12:22:00 -07:00
Commit graph

93 commits

Author SHA1 Message Date
Bruce Mitchener
0f6e2f7a20 Fix typos. 2023-02-13 23:27:57 +07:00
Gareth Rees
f47c389a52 Fix indentation of second clause of license. 2020-08-30 10:13:06 +01:00
Gareth Rees
af0f431eda Use https: instead of http: when linking to the ravenbrook web site. 2020-08-30 10:13:03 +01:00
Peter Jackson
4de2606846 Publish licence updates in code directory.
Publish minor changes to readme and configure files in main directory.
Main directory and code directory licence texts are now fully updated.

Copied from Perforce
 Change: 196994
2020-06-11 17:05:40 +01:00
Gareth Rees
4eda4e85c7 Use tags with dots; regularize design references from code.
Copied from Perforce
 Change: 195761
2018-11-29 17:12:29 +00:00
Gareth Rees
1ec8c4a141 Improve handling of telemetry events on the critical path:
1. Being on the critical path is a property of the code location where the event is emitted, not of the event type, so indicate this using EVENT_CRITICAL macros rather than a field in the event table.
2. Compile out events on the critical path in hot varieties.
3. Remove TraceFixWhite event (redundant with TraceFixSeg).
4. No need for special handling of PoolFree event -- this are already skipped in hot varieties by dispatching directly to the pool class via PoolFreeMacro.

Copied from Perforce
 Change: 195261
2018-10-15 14:22:16 +01:00
Gareth Rees
cbf9885146 Document the event parameters.
Split event ArenaAccess into ArenaAccessBegin and ArenaAccessEnd to avoid the need for the count field.
New events SegReclaim and SegScan.
Delete some redundant events: AMCFinish (PoolFinish), AMCFix, AMCFixForward, AMCFixInPlace (TraceFix), AMCGenCreate (GenInit), AMCGenDestroy (GenFinish), AMCInit (PoolInitAMC), AMCReclaim (SegReclaim), AMCScanBegin, AMCScanEnd (SegScan), ArenaWriteFaults (ArenaAccessBegin), PoolInitMV, TraceScanSeg (SegScan).
Add result code field to events ArenaAllocFail, CommitLimitSet, SegAllocFail.
Remove arena field from events PoolInitAMS, PoolInitMFS, PoolInitMVFF (already appeared in generic PoolInit event).

Copied from Perforce
 Change: 195247
2018-10-14 14:04:40 +01:00
Gareth Rees
77506b67e7 There's no point keeping the definitions of old events, especially since we have changed the event format. name events consistently with initial capital letters and put them in alphabetical order.
Copied from Perforce
 Change: 195231
2018-10-12 13:01:12 +01:00
Gareth Rees
882d86bac1 Remove call to pause_end from tracedestroy; see <https://info.ravenbrook.com/mail/2018/10/12/10-20-07/0/>
The MPS passes the number of system pools to the monitor via the ArenaCreate events, to avoid the monitor having to know how many this is.

Copied from Perforce
 Change: 195227
2018-10-12 12:35:55 +01:00
Gareth Rees
d2d2895c03 Catch-up merge from master sources at changelevel 194022 to branch/2018-06-20/monitor.
Copied from Perforce
 Change: 195071
2018-09-15 21:29:28 +01:00
Gareth Rees
bcb24de010 Catch-up merge from master sources at changelevel 194869 to branch/2016-03-04/spare-fraction.
Copied from Perforce
 Change: 194872
2018-08-02 15:14:23 +01:00
Nick Barnes
6b6c6f253a Integrate recent monitor improvements from cet custom monitor branch.
Copied from Perforce
 Change: 194738
2018-07-26 14:40:31 +01:00
Nick Barnes
27f47f5472 Integrate various monitor improvements from cet custom branch. see changelist 194730.
Copied from Perforce
 Change: 194731
2018-07-24 16:30:30 +01:00
Gareth Rees
08beb998fd 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
13f5b95ddb 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
9fe19e67fb Add time series for per-trace mortality.
Copied from Perforce
 Change: 194538
2018-07-09 16:29:37 +01:00
Gareth Rees
2564ffcb61 Avoid emitting poolalloc and poolfree events in the hot variety, so that they not affected asymmetrically by the poolfree macro.
Copied from Perforce
 Change: 194410
2018-07-04 16:51:13 +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
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
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
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
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
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
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
587a3efb20 Remove unused pool class methods tracebegin and traceend.
Remove unused event AMCTraceEnd.
The fixEmergency method must have the same type as the fix method because of how they are used.

Copied from Perforce
 Change: 192636
 ServerID: perforce.ravenbrook.com
2016-10-19 14:07:20 +01:00
Gareth Rees
e38b71547d Catch-up merge from branch/2016-04-12/job004000 to branch/2016-04-13/mortality.
Copied from Perforce
 Change: 191513
 ServerID: perforce.ravenbrook.com
2016-04-21 18:20:54 +01:00
Gareth Rees
612a45423d Remove tracestatcondemn event -- contains no information not already emitted by the tracestart event.
Copied from Perforce
 Change: 191185
 ServerID: perforce.ravenbrook.com
2016-04-16 12:41:38 +01:00
Gareth Rees
3174eba71e Maintain a moving average of the mortality of each generation.
Copied from Perforce
 Change: 191081
 ServerID: perforce.ravenbrook.com
2016-04-13 15:19:50 +01:00
Richard Brooksby
44f80af1ec Merging branch mps/branch/2016-03-13/without-reservation into master sources.
Copied from Perforce
 Change: 190106
 ServerID: perforce.ravenbrook.com
2016-03-15 13:19:27 +00:00
Richard Brooksby
cea2c8c73f Updates from review by dl <https://info.ravenbrook.com/mail/2016/03/15/12-36-53/0/>.
Copied from Perforce
 Change: 190105
 ServerID: perforce.ravenbrook.com
2016-03-15 13:02:40 +00:00
Richard Brooksby
d54be414d9 Merging branch/2016-03-12/pause into the master sources.
Copied from Perforce
 Change: 190053
 ServerID: perforce.ravenbrook.com
2016-03-15 06:31:08 +00:00
Richard Brooksby
cf77c160a4 Removing reservoir-related events.
Copied from Perforce
 Change: 190041
 ServerID: perforce.ravenbrook.com
2016-03-15 04:54:19 +00:00
Gareth Rees
2a3c4e0590 Address points made by rb in review <https://info.ravenbrook.com/mail/2016/03/14/18-48-19/0/>
Copied from Perforce
 Change: 190031
 ServerID: perforce.ravenbrook.com
2016-03-14 20:10:14 +00:00
Richard Brooksby
1025b28674 Eliminating withreservoirpermit and all its variants.
Copied from Perforce
 Change: 190005
 ServerID: perforce.ravenbrook.com
2016-03-13 21:04:01 +00:00
Gareth Rees
66e0d30340 Catch-up merge from branch/2015-08-25/tradeoff to branch/2016-03-12/pause (to pick up the morework value in arenapoll).
Copied from Perforce
 Change: 189918
 ServerID: perforce.ravenbrook.com
2016-03-12 20:32:41 +00:00
Gareth Rees
c05c8a5609 Documentation and interface for pause time control (no implementation yet).
Copied from Perforce
 Change: 189915
 ServerID: perforce.ravenbrook.com
2016-03-12 20:25:33 +00:00
Richard Brooksby
44e400a35a Expressing the arena spare commit limit as a fraction, not an absolute size.
Copied from Perforce
 Change: 189618
 ServerID: perforce.ravenbrook.com
2016-03-04 11:30:31 +00:00
Gareth Rees
0ff67113ae Separate the values "more work to do?" and "amount of work done" in tracepoll. previously, the code used "amount of work done > 0" when it needed "more work to do?" but that's not right, because on the last two calls to traceadvance, no "work" is done (because reclaim work is not measured), but there may still be more work to do.
Copied from Perforce
 Change: 188218
 ServerID: perforce.ravenbrook.com
2015-09-03 15:51:37 +01:00
Gareth Rees
61bae42d43 Introduce new type work representing a measure of work done by the collector. use this systematically to make the code clearer.
Copied from Perforce
 Change: 188210
 ServerID: perforce.ravenbrook.com
2015-09-03 13:01:55 +01:00
Gareth Rees
61a58b9b50 Fix problems noted by rb in review <https://info.ravenbrook.com/mail/2014/06/18/14-06-43/0/>
Copied from Perforce
 Change: 186667
 ServerID: perforce.ravenbrook.com
2014-06-18 15:36:35 +01:00
David Lovemore
3b97cae580 Catch up merge from master/...@186577
Copied from Perforce
 Change: 186582
 ServerID: perforce.ravenbrook.com
2014-06-13 16:38:20 +01:00
Gareth Rees
c8cc245e06 Some remaining occurrences of "arena alignment".
Copied from Perforce
 Change: 186513
 ServerID: perforce.ravenbrook.com
2014-06-11 22:22:02 +01:00
David Lovemore
c14a0e5e3e Amc now respects mps_key_extend_by keyword argument.
AMC also uses MPS_KEY_LARGE_SIZE keyword argument to specify what size objects need to be to live on their own segment.

Copied from Perforce
 Change: 186480
 ServerID: perforce.ravenbrook.com
2014-06-11 12:12:44 +01:00
Gareth Rees
6a71a7c730 Catch-up merge from master sources @186257 to branch/2014-04-23/awl.
Copied from Perforce
 Change: 186354
 ServerID: perforce.ravenbrook.com
2014-05-29 15:38:42 +01:00
Gareth Rees
d98336d308 Catch-up merge from master sources @186335 to branch/2014-03-30/addrset.
Copied from Perforce
 Change: 186348
 ServerID: perforce.ravenbrook.com
2014-05-29 14:58:50 +01:00
Gareth Rees
641a75cf5e Avoid the need for newsizeatcreate by emitting events for the pool generations in tracecreate instead of tracestart.
Get rid of proflow member of GenDescStruct (it was unused).
Use STATISTIC to avoid updating segs, freeSize, oldSize, and oldDeferredSize in non-checking varieties.
Add design for pool generation accounting.

Copied from Perforce
 Change: 185930
 ServerID: perforce.ravenbrook.com
2014-05-01 19:00:08 +01:00
Gareth Rees
799ecf0420 Output all the pool generation accounting information.
Copied from Perforce
 Change: 185911
 ServerID: perforce.ravenbrook.com
2014-04-30 17:39:37 +01:00
Gareth Rees
e62efa1619 Use double-entry book-keeping and bank reconciliation to ensure the soundness and completeness of the pool generation size accounting.
Copied from Perforce
 Change: 185888
 ServerID: perforce.ravenbrook.com
2014-04-30 12:14:54 +01:00
Gareth Rees
b3d827b6fb Pool generations now refer directly to their generation (not via a chain and a generation number).
Allocation into a generation now via PoolGenAlloc (not ChainAlloc).
The "top generation" logic is encapsulated in the function ChainGen.

Copied from Perforce
 Change: 185877
 ServerID: perforce.ravenbrook.com
2014-04-30 11:18:44 +01:00