Gareth Rees
1c4ff669ac
Remove diag facility.
...
Copied from Perforce
Change: 182553
ServerID: perforce.ravenbrook.com
2013-06-05 18:35:40 +01:00
Richard Brooksby
5c6785b815
Catch-up merge from custom/cet/main to master.
...
Includes installable assertion handler, events in circular memory buffers, LARGEADDRESSAWARE, etc.
Copied from Perforce
Change: 182176
ServerID: perforce.ravenbrook.com
2013-05-24 19:42:46 +01:00
Richard Brooksby
a3d15bbdb0
Catch up merge from mps master to keyword arguments development branch.
...
Copied from Perforce
Change: 181890
ServerID: perforce.ravenbrook.com
2013-05-17 14:37:48 +01:00
Richard Brooksby
bb02f55b62
Making clear the size of the array of args passed to varargs conversion methods.
...
Copied from Perforce
Change: 181845
ServerID: perforce.ravenbrook.com
2013-05-16 03:12:11 +01:00
Gareth Rees
dfce35a35b
Make forward declarations of various functions consistent with their actual declarations.
...
Copied from Perforce
Change: 181788
ServerID: perforce.ravenbrook.com
2013-05-15 14:18:28 +01:00
Gareth Rees
cce6ee29c8
New macro mps_arg and revised macro mps_args_add mean that client programs no longer need to know which keyword argument goes in which field. revise documentation accordingly.
...
Copied from Perforce
Change: 181736
ServerID: perforce.ravenbrook.com
2013-05-12 17:21:03 +01:00
Richard Brooksby
688b5bf73d
Converting varags on buffer and ap creation into keyword argument lists.
...
Copied from Perforce
Change: 181680
ServerID: perforce.ravenbrook.com
2013-05-09 18:25:53 +01:00
Richard Brooksby
af44d1241f
Replacing varargs passed to seginit with keyword argument list.
...
Copied from Perforce
Change: 181679
ServerID: perforce.ravenbrook.com
2013-05-09 17:34:01 +01:00
Richard Brooksby
f4416c7efc
Changing required keyword arguments to cause an assertion rather than return a status code, and removing repetition in how this is expressed.
...
Copied from Perforce
Change: 181674
ServerID: perforce.ravenbrook.com
2013-05-09 15:15:40 +01:00
Richard Brooksby
80e84d09a5
Adding macros to make keyword argument list formation more convenient and robust.
...
Copied from Perforce
Change: 181666
ServerID: perforce.ravenbrook.com
2013-05-09 14:04:23 +01:00
Richard Brooksby
71b7e4f70a
Pushing varargs decoding into a pool class method. much simpler.
...
Copied from Perforce
Change: 181642
ServerID: perforce.ravenbrook.com
2013-05-08 22:43:51 +01:00
Richard Brooksby
8504a81cf3
Eliminating mps_key_varargs and instead decoding deprecated varargs in one place in mpsi.c, so that each pool or other class doesn't have to deal with them.
...
Copied from Perforce
Change: 181638
ServerID: perforce.ravenbrook.com
2013-05-08 17:24:11 +01:00
Richard Brooksby
07f446a450
Converting pools to use keyword arguments, mostly, and so far inconsistently, but at least it compiles.
...
Copied from Perforce
Change: 181635
ServerID: perforce.ravenbrook.com
2013-05-08 16:21:12 +01:00
Nick Barnes
1c9b2296e1
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
b31cda511d
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
2350b83b6b
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
7645b348a4
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
d743f8b510
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
99bca8b5e2
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
88bcefa962
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
41eb36869e
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
cb8f0ea514
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
885154e8ed
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
7c52cf1fc8
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
85f3d6bbb4
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
5a604a2f51
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
78d5f049f0
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
858e4ac0ac
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
27c6706791
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
89a685f164
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
4009b8a559
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
2f11fd7b65
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
9bf482ea08
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
4ee202d5cf
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
61890da12b
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
08483ecb8e
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
b7de7f621a
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
3bb221f479
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
7c06dd2ad6
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
a3424d7131
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
f92b19173e
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
93a64fb781
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
e655cda7ab
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
3c478a2aa1
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
c3bcfc86c9
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
09480c095f
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
ff40ad8c7b
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
bf80a3a11d
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
23bd972843
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
c52f391ddd
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