1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 00:34:17 -07:00
Commit graph

95 commits

Author SHA1 Message Date
Nick Barnes
f9beff6889 Fix job003454: when an amc pool is in the finish ramp mode, it should stay there until it can transition to collecting. also update the ramp part of design/poolamc.
Copied from Perforce
 Change: 181325
 ServerID: perforce.ravenbrook.com
2013-04-04 16:22:39 +01:00
Gareth Rees
d695d3cc2c Undo changes 180370 and 180390 (which supported interior pointers by checking all nails in an object), as these changes are not suitable for release. work around job003359 for the example scheme interpreter by setting the compilation option -fno-inline-functions.
Copied from Perforce
 Change: 180941
 ServerID: perforce.ravenbrook.com
2013-02-08 15:36:50 +00:00
Gareth Rees
81c3657b37 Use a typedef for the type of the function passed to mps_amc_apply to make the documentation clearer while remaining backwards-compatible.
(This was change 179975 but got reversed accidentally by change 180236.)

Copied from Perforce
 Change: 180431
 ServerID: perforce.ravenbrook.com
2012-11-09 11:15:16 +00:00
Gareth Rees
59d1ac152b Amcnailrangeisunmarked needs to take arguments as client pointers and look at the nails for the corresponding base pointers.
Copied from Perforce
 Change: 180390
 ServerID: perforce.ravenbrook.com
2012-11-07 17:17:05 +00:00
Gareth Rees
5fb7359d34 Support ambiguous interior pointers in amc by checking to see if any grain in an object is nailed (not just the first grain).
AMCSegDescribe shows which grains are nailed.

Copied from Perforce
 Change: 180370
 ServerID: perforce.ravenbrook.com
2012-11-06 15:47:21 +00:00
Gareth Rees
e11e83d909 Amc can't omit the guard "segrankset(seg) != ranksetempty" for calling segsetgrey, because amcz uses segments with an empty rank set.
It's OK to call SegSetGrey on a segment with an empty rank set so long as you are not actually setting it to be grey for any traces, so correct the AVER accordingly.

Copied from Perforce
 Change: 180236
 ServerID: perforce.ravenbrook.com
2012-11-01 17:21:57 +00:00
Gareth Rees
8aa08a81b8 Use a typedef for the type of the function passed to mps_amc_apply to make the documentation clearer while remaining backwards-compatible.
Copied from Perforce
 Change: 179975
 ServerID: perforce.ravenbrook.com
2012-10-19 19:34:05 +01:00
Richard Brooksby
7baf794761 Converting more "@@@@" markers to notes or action-oriented todos.
Copied from Perforce
 Change: 179692
 ServerID: perforce.ravenbrook.com
2012-09-25 23:46:28 +01:00
Richard Brooksby
5bd983c745 Removing unnecessary unused declarations since changelist 179690.
Copied from Perforce
 Change: 179691
 ServerID: perforce.ravenbrook.com
2012-09-25 23:34:20 +01:00
Richard Brooksby
de57ef9b83 Merging improvements from version 1.110 branch.
Copied from Perforce
 Change: 179643
 ServerID: perforce.ravenbrook.com
2012-09-23 18:04:49 +01:00
Richard Brooksby
37ae27ae4e Suppress warning about pageretstruct_zero being unused.
Copied from Perforce
 Change: 179568
 ServerID: perforce.ravenbrook.com
2012-09-19 21:12:30 +01:00
Richard Brooksby
5df2620e49 Short-circuit the cases where we set the greyness or summary of a segment to the same as it was before in all cases, rather than just in a few restricted cases in amc.
This was the result of noticing a large number of SetSetGrey events that set the segment to the same greyness when scanning ambiguous references.

Copied from Perforce
 Change: 179567
 ServerID: perforce.ravenbrook.com
2012-09-19 20:04:41 +01:00
Richard Brooksby
dd039bfbdc Fixing bugs introduced by type puns passed through scanning methods, discovered by offsetting mps_ss_s from the beginning of scanstatestruct.
Adding a pseudo-target "find-puns" which, on FreeBSD mostly, prints useful warnings about strict aliasing rule violations.
Fixing more strict aliasing rule violations found by the above.

Copied from Perforce
 Change: 179358
 ServerID: perforce.ravenbrook.com
2012-09-07 23:48:14 +01:00
Richard Brooksby
f748ad2b28 Eliminating type puns on scan states, location dependencies, and allocation points through the mps interface.
Now that we're recommending inlining with client code and optimising with -O2 or -O3, we can't afford any bug introduced by the strict aliasing rule.

Copied from Perforce
 Change: 179322
 ServerID: perforce.ravenbrook.com
2012-09-07 12:58:57 +01:00
Richard Brooksby
4c51d72b56 Partial merge of branch/2012-07-23/cet-transform, excluding cet-specific parts.
Copied from Perforce
 Change: 179309
 ServerID: perforce.ravenbrook.com
2012-09-06 17:17:18 +01:00
Richard Brooksby
e6e620f76c Merging branch/2012-08-21/diagnostic-telemetry.
Copied from Perforce
 Change: 179289
 ServerID: perforce.ravenbrook.com
2012-09-05 23:45:31 +01:00
Richard Brooksby
bb747e8e33 Renaming some check* macros with more accurate names, making remaining check* macros similar in function.
Copied from Perforce
 Change: 179155
 ServerID: perforce.ravenbrook.com
2012-09-01 10:18:08 +01:00
Richard Brooksby
ddcce429f4 Abolishing eventgen.pl. event structures are now expanded by the preprocessor.
Abolishing event formats.  Each event now has its own structure.
Event parameters are now written directly into the event buffer, rather than being copied twice.

Copied from Perforce
 Change: 179010
 ServerID: perforce.ravenbrook.com
2012-08-21 22:48:11 +01:00
David Lovemore
c8875ecb80 Tidy up code from unused variable warnings.
Copied from Perforce
 Change: 178787
 ServerID: perforce.ravenbrook.com
2012-07-31 14:19:26 +01:00
David Lovemore
0c22e4fb5a Fixed up long constants and shifts that needed to be cast to correct type.
Copied from Perforce
 Change: 178095
 ServerID: perforce.ravenbrook.com
2012-05-03 16:38:47 +01:00
David Lovemore
64192bbfa6 Adding casts to varargs in diagnostic output
Copied from Perforce
 Change: 178092
 ServerID: perforce.ravenbrook.com
2012-05-03 15:17:04 +01:00
Richard Brooksby
82c29cfd3e Fixing up occurences of "unsigned long" in the main mps and test code so that we no longer assume that "unsigned long" is large enough for a pointer or size, or that it's the longest available integer type, since these are not true on 64-bit windows.
Copied from Perforce
 Change: 178021
 ServerID: perforce.ravenbrook.com
2012-04-23 16:20:40 +01:00
Richard Kistruck
6c29372e90 Mps br/padding exp-168778: amclargesegpages = 8 again.
(Also: report value of AMCLargeSegPAGES in AMCTraceEnd_pageret diag output).

Copied from Perforce
 Change: 168778
 ServerID: perforce.ravenbrook.com
2009-09-28 15:02:46 +01:00
Richard Kistruck
99c93807ba Mps br/padding amc lsp: rename pagespersegmediumlimit as amclargesegpages, and make it a define in config.h. corrections in des/poolamc.
Copied from Perforce
 Change: 168704
 ServerID: perforce.ravenbrook.com
2009-09-18 16:15:50 +01:00
Richard Kistruck
f2da06ca25 Mps br/padding amctraceend_pageret: add srm and srl = segments retained medium & large
Copied from Perforce
 Change: 168689
 ServerID: perforce.ravenbrook.com
2009-09-17 17:20:16 +01:00
Richard Kistruck
68c752a037 Mps br/padding:
poolamc.c tidy up:
  neater implementation of obj1pip (amcReclaimNailed)
  neater implementation of amcResetTraceIdStats -- no need for a function any more
  delete lots of obsolete temporary diagnostic (superseded by AMCTraceEnd_pageret)
  a few more avers (especially on buffer empty)
also revert temporary diagnostic changes in arena.c, config.h, diag.c, global.c
diag.c: fix diag-buffer at 100 screenfuls (200000 chars).
zcoll.c: reinstate Make 50000 with occasional big objs.

Copied from Perforce
 Change: 168688
 ServerID: perforce.ravenbrook.com
2009-09-17 16:59:39 +01:00
Richard Kistruck
84c078b580 Mps br/padding poolamc: rename largeseg as pagespersegmediumlimit
Copied from Perforce
 Change: 168663
 ServerID: perforce.ravenbrook.com
2009-09-14 17:22:45 +01:00
Richard Kistruck
8f7d39135d Mps br/padding amctraceend_pageret: only output if pret >= pretmin, currently 100 pages.
Also: say page size and pRetMin in diags; more AVERs

Copied from Perforce
 Change: 168614
 ServerID: perforce.ravenbrook.com
2009-09-09 17:00:28 +01:00
Richard Kistruck
5ccbb6a909 Mps br/padding amctraceend: rename pcmx as scm (= insurance cost avoided, upper bound); add scl (= insurance cost paid, upper bound); better comments; use poolalignment accessor
Copied from Perforce
 Change: 168573
 ServerID: perforce.ravenbrook.com
2009-09-04 16:39:19 +01:00
Richard Kistruck
9a4c8e0335 Mps br/padding poolamc: (tidy) avoid diag-only variable outside diag macro in amctraceend
Copied from Perforce
 Change: 168564
 ServerID: perforce.ravenbrook.com
2009-09-03 17:40:17 +01:00
Richard Kistruck
efbefd8b66 Mps br/padding poolamc: simplify amcreclaimnailed accounting to use preservedinplacecount for segfree decision and obj1 statistics, instead of bool emptyseg
Copied from Perforce
 Change: 168563
 ServerID: perforce.ravenbrook.com
2009-09-03 17:35:38 +01:00
Richard Kistruck
24594df596 Mps br/padding poolamc: pageretstruct -- page-based diags about page retention,
emitted as diag AMCTraceEnd_pageret.

Copied from Perforce
 Change: 168562
 ServerID: perforce.ravenbrook.com
2009-09-03 17:17:50 +01:00
Richard Kistruck
6465ba2828 Mps br/padding: lsp tweaks and diag
zcoll:
  - parameterize BigdropSmall for big-obj size and small-obj ref-type, eg "BigdropSmall(big 28000, small A)"
  - Park, to avoid all those minor collections.  Explanatory comments.
poolamc.c:
  - diags: AMCTraceEnd, AMCTraceEnd_perc (new), AMCTraceEnd_pad_med (new),
  - AMCTraceEnd: c Segs/Pages Whiten/Reclaim, cPagesRet(ained)
  - AMCTraceEnd_perc: percentage of condemned pages retained by ambig refs
  - AMCTraceEnd_pad_med: over-detailed calculations of Gain & Loss for Medium segs,
    requiring knowledge of size of obj1 in each seg.
diag.c:
  - Just show AMCTraceEnd_perc and AMCTraceEnd_pad_med, for zcoll/BigdropSmall's purposes.
Note: poolamc.c now has several episodes of experimental diagnostic in it.
It's time to re-baseline it from an un-hacked version.

Copied from Perforce
 Change: 168512
 ServerID: perforce.ravenbrook.com
2009-08-26 17:34:56 +01:00
Richard Kistruck
280e956165 Mps br/padding poolamc.c: amcstruct stores per-traceid statistics
Currently: whitenCount & reclaimCount, for diag at AMCTraceEnd.
(These aren't interesting in themselves; next task: calculate more interesting per-trace stats).

Copied from Perforce
 Change: 168490
 ServerID: perforce.ravenbrook.com
2009-08-21 17:59:48 +01:00
Richard Kistruck
4fbe1238af Mps br/padding: new pooltraceendmethod: do end-of-trace work
Tracer calls PoolTraceEnd() when the trace is TraceFINISHED.
 AbstractPoolClass uses PoolTrivTraceEnd -- a NOOP. [mpm.h, mpmst.h, mpmtypes.h, pool.c, poolabs.c]
 AMC overrides with AMCTraceEnd, to emit diagnostic on how well the trace went! [poolamc.c]

Copied from Perforce
 Change: 168478
 ServerID: perforce.ravenbrook.com
2009-08-20 17:44:16 +01:00
Richard Kistruck
2d29a41b67 Mps br.padding: per-seg padstats; report poolsum- totals in amcdescribe.
Copied from Perforce
 Change: 167808
 ServerID: perforce.ravenbrook.com
2009-04-17 17:09:46 +01:00
Richard Kistruck
1811bafa10 Mps br/padding poolamc.c: (comments only) better comments on amcsegstruct
Copied from Perforce
 Change: 167793
 ServerID: perforce.ravenbrook.com
2009-04-16 11:24:43 +01:00
Richard Kistruck
ae056013ed Mps br/padding: diagnostics that show large-segment-padding in action.
zcoll.c: BigSmall() command -- creates small, then big, then small object.
poolamc.c: AMCDescribe(): output AMC Seg maps, showing single big object -- a pad -- at end of large-segment.
arena/config/diag: allow output of AMC Seg maps.

Copied from Perforce
 Change: 167763
 ServerID: perforce.ravenbrook.com
2009-04-09 16:01:21 +01:00
Richard Kistruck
9763512ab3 Mps br/padding poolamc.c: change amcbufferfill, so that for large requests (> 8 arenaaligns) it gives only requested size; pad the rest. see job001811. the number 8 is provisional...
Copied from Perforce
 Change: 167759
 ServerID: perforce.ravenbrook.com
2009-04-08 16:04:09 +01:00
Richard Kistruck
4acbadd6e2 Mps br/padding: more diagnostic for how padding survives a collection.
More diag:
  - new traceSetSignalEmergency;
  - new AMCFix_amcSegCreateNailboard and AMCHeaderFix_amcSegCreateNailboard
    (note: the other, unreported, route to becoming boarded is because of a (mutator) buffer);
  - in traces: show SegBase and zone;
   - in TraceStart: show genZoneSets;
   - in amcReclaimNailed: show cbpip and cbpad.
 zcoll.c:
   - sizemethod 1 to Make command: occasionally makes >1MiB objects;
   - declare root_table all MPS_RANK_AMBIG.

Copied from Perforce
 Change: 167726
 ServerID: perforce.ravenbrook.com
2009-04-02 18:29:10 +01:00
Richard Kistruck
bd4ec9d031 Mps br/padding poolamc.c: (char) casts needed for vc6.0 compiler on platform.w3i3mv
Copied from Perforce
 Change: 167698
 ServerID: perforce.ravenbrook.com
2009-04-01 17:52:55 +01:00
Richard Kistruck
5762b1d33e Mps br/padding poolamc.c: (char) casts needed for vc6.0 compiler on platform.w3i3mv
Copied from Perforce
 Change: 167697
 ServerID: perforce.ravenbrook.com
2009-04-01 17:48:49 +01:00
Richard Kistruck
cb58df57a7 Mps br/padding poolamc.c: diags for condemn and reclaim of big segs (>= 1mib)
Copied from Perforce
 Change: 167696
 ServerID: perforce.ravenbrook.com
2009-04-01 17:36:58 +01:00
Richard Kistruck
af4feae9c0 Mps br/padding poolamc.c: diags for condemn and reclaim of big segs (> 1mib)
Copied from Perforce
 Change: 167695
 ServerID: perforce.ravenbrook.com
2009-04-01 17:34:31 +01:00
Richard Kistruck
fc78b1a10a Mps br/auto_header: (cosmetic) tidy up, add aver unbuffered.
Copied from Perforce
 Change: 164884
 ServerID: perforce.ravenbrook.com
2008-04-30 16:50:12 +01:00
Richard Kistruck
e53943f8fd Mps br auto_header: cannot segfree nailed seg if it has a buffer
Copied from Perforce
 Change: 164851
 ServerID: perforce.ravenbrook.com
2008-04-29 15:09:12 +01:00
Richard Kistruck
28f802331a Mps br auto_header (not the right place for this): fix .nailboard.limitations.middle;
see mail from Configura.

Copied from Perforce
 Change: 164849
 ServerID: perforce.ravenbrook.com
2008-04-29 14:52:35 +01:00
Richard Kistruck
7aee83ee70 Mps br/auto_header: poolamc.c: [job001784] permanent fix: drop tabs, ifdef, and ephemeral diag; update copyright date
Copied from Perforce
 Change: 164503
 ServerID: perforce.ravenbrook.com
2008-03-26 14:47:57 +00:00
Richard Kistruck
c629919d2c Mps br/auto_header:
Add diagnostics to show ControlPool leak when deallocating nailboards with auto_header format.
See logfiles added in this changelist.

Copied from Perforce
 Change: 164383
 ServerID: perforce.ravenbrook.com
2008-03-11 19:53:05 +00:00
Richard Kistruck
900994b380 Mps br/auto_header: trial fix of job001784 "amc pool + auto_header format: nailboards leak controlpool memory"
Passes test_runner.py (as it did before the fix).

Copied from Perforce
 Change: 164379
 ServerID: perforce.ravenbrook.com
2008-03-11 19:18:50 +00:00