Gareth Rees
b8f0a9195c
Clarify decision to preserve/reclaim in amcreclaimnailed, avoiding ternary operator inside the if condition.
...
Copied from Perforce
Change: 183948
ServerID: perforce.ravenbrook.com
2014-01-12 11:21:21 +00:00
Gareth Rees
bcfad58d3c
Merge custom cet mainline into the master sources. this includes fixes for job003519 (clock values in text telemetry logs on windows have top 32 bits zero), job003536 (cet office can't replicate 100k snowmen in reasonable time), job003651 (stack overflows are not reliably handled).
...
Copied from Perforce
Change: 183926
ServerID: perforce.ravenbrook.com
2014-01-10 14:16:08 +00:00
Gareth Rees
1e97a6a193
Turn on -wextra -wwrite-strings when compiling with gcc or clang.
...
Add missing initializer to mps_args_none.
Change "char *" to "const char *" where necessary.
Copied from Perforce
Change: 183494
ServerID: perforce.ravenbrook.com
2013-09-30 17:18:52 +01:00
Gareth Rees
4e22988865
Remove diag facility.
...
Copied from Perforce
Change: 182553
ServerID: perforce.ravenbrook.com
2013-06-05 18:35:40 +01:00
Richard Brooksby
8a9d451ff8
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
690db0f51d
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
a2c89c2c40
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
e76d53158f
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
10c13b2a54
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
a9ed62e39a
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
8b430778b6
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
b4e1f173db
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
b18ec007a9
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
e67939cabb
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
fcef8c8a63
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
a8afd8e6f4
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
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