Richard Brooksby
0e8e2d6c39
Falling back from white hash table to segment tree if we run out of memory for the table, guaranteeing that collection can't fail due to lack of memory.
...
Copied from Perforce
Change: 190110
ServerID: perforce.ravenbrook.com
2016-03-15 14:14:17 +00:00
Richard Brooksby
6b8cf12878
Merging branch/2016-03-13/without-reservation into branch/2016-03-15/sunrise in order to remove dependency on tractp.
...
Copied from Perforce
Change: 190099
ServerID: perforce.ravenbrook.com
2016-03-15 11:48:16 +00:00
Richard Brooksby
936ff15e5f
Replacing segfirst/segnext with tree traversal in tracestart.
...
Copied from Perforce
Change: 190082
ServerID: perforce.ravenbrook.com
2016-03-15 11:16:07 +00:00
Richard Brooksby
16c70292c2
Replacing segfirst/segnext with tree traversal in arenaexposeremember.
...
Copied from Perforce
Change: 190081
ServerID: perforce.ravenbrook.com
2016-03-15 11:16:07 +00:00
Richard Brooksby
d72b8a6539
Replacing segfirst/segnext loops with tree traversals in condemn and reclaim.
...
Copied from Perforce
Change: 190080
ServerID: perforce.ravenbrook.com
2016-03-15 11:16:07 +00:00
Richard Brooksby
db8c72a427
Replace fix segment lookup with existing hash table.
...
Copied from Perforce
Change: 190079
ServerID: perforce.ravenbrook.com
2016-03-15 11:16:07 +00:00
Richard Brooksby
fb3c20e603
Eliminating segment pointer from tract, and loops over tracts when creating and destroying segments.
...
Copied from Perforce
Change: 190078
ServerID: perforce.ravenbrook.com
2016-03-15 11:16:07 +00:00
Richard Brooksby
f5778cf8c6
Removing white field from tracts.
...
Copied from Perforce
Change: 190075
ServerID: perforce.ravenbrook.com
2016-03-15 11:16:07 +00:00
Gareth Rees
e034e7aeea
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
275770ed43
Catch-up merge from master sources to branch/2015-08-25/tradeoff.
...
Copied from Perforce
Change: 189891
ServerID: perforce.ravenbrook.com
2016-03-12 15:13:15 +00:00
Gareth Rees
973f5369e1
Rename chain.h to locus.h, for consistency with other modules, where the interface has the same name as the implemention.
...
Copied from Perforce
Change: 189682
ServerID: perforce.ravenbrook.com
2016-03-06 18:56:32 +00:00
Richard Brooksby
07a1290f3e
Eliminating closure_size from area scanners and root registration functions, as it isn't all that useful.
...
Copied from Perforce
Change: 189491
ServerID: perforce.ravenbrook.com
2016-03-01 15:59:06 +00:00
Richard Brooksby
998a11b45a
Catch-up merge from master sources to branch/2015-09-04/stack.
...
Copied from Perforce
Change: 189370
ServerID: perforce.ravenbrook.com
2016-02-27 00:54:00 +00:00
Richard Brooksby
a3efd2d694
Catch-up merge from branch/2015-08-06/config to remove arenaconfigure.
...
Copied from Perforce
Change: 189335
ServerID: perforce.ravenbrook.com
2016-02-25 22:59:06 +00:00
Richard Brooksby
8a4e5ab290
Moving scanning accounting to tracescanarea and creating analogous formatscan.
...
Copied from Perforce
Change: 189325
ServerID: perforce.ravenbrook.com
2016-02-19 12:11:50 +00:00
Richard Brooksby
0f8bee3762
Detabifying code and restructuredtext files.
...
Copied from Perforce
Change: 189309
ServerID: perforce.ravenbrook.com
2016-02-18 19:58:13 +00:00
Richard Brooksby
c015827c36
Catch-up merge from master sources.
...
Copied from Perforce
Change: 189265
ServerID: perforce.ravenbrook.com
2016-02-17 11:04:51 +00:00
Richard Brooksby
6b7c5f3d74
Lifting assumptions about area scanners closer to interface.
...
Copied from Perforce
Change: 189191
ServerID: perforce.ravenbrook.com
2016-02-15 16:46:09 +00:00
Richard Brooksby
16bde84a68
Generalising tracescanarea to be a checking wrapper for all area scanners.
...
Copied from Perforce
Change: 189190
ServerID: perforce.ravenbrook.com
2016-02-15 15:44:57 +00:00
Richard Brooksby
a3fdda4678
Lifting and generalising area scanners to allow flexible tagging schemes.
...
Copied from Perforce
Change: 189189
ServerID: perforce.ravenbrook.com
2016-02-15 15:30:08 +00:00
Richard Brooksby
b6be181e15
Lifting area scanners into client-side code.
...
These versions also produce tighter loops under Clang.
Copied from Perforce
Change: 189188
ServerID: perforce.ravenbrook.com
2016-02-14 00:57:28 +00:00
Richard Brooksby
65c32e5965
Fixing misuse of format header offset to decode tagging. see < https://info.ravenbrook.com/mail/2016/02/11/17-20-12/0/ > point 5.
...
Copied from Perforce
Change: 189134
ServerID: perforce.ravenbrook.com
2016-02-11 21:32:41 +00:00
Richard Brooksby
c8fed5bb8d
Renaming tracescanareamasked to tracescanareatagged
...
Copied from Perforce
Change: 189133
ServerID: perforce.ravenbrook.com
2016-02-11 20:39:57 +00:00
Richard Brooksby
a0e001c000
Catch up merge from master sources.
...
Copied from Perforce
Change: 189130
ServerID: perforce.ravenbrook.com
2016-02-10 21:10:25 +00:00
Gareth Rees
6521d927eb
Add accesssetcheck and check accessset arguments.
...
Copied from Perforce
Change: 188251
ServerID: perforce.ravenbrook.com
2015-09-04 20:15:36 +01:00
Gareth Rees
edf30c06b4
New function mps_root_create_reg_masked applies a mask and pattern test to all words in registers and on the stack when scanning them. this supports tagged references in these locations.
...
Consistently use the type "Word *" for pointers into the stack or into saved registers.
Remove TraceScanAreaTagged.
Copied from Perforce
Change: 188231
ServerID: perforce.ravenbrook.com
2015-09-04 12:22:03 +01:00
Gareth Rees
7bf1664f5e
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
851e35bcff
Move the arenaemergency test up to policypollagain.
...
Copied from Perforce
Change: 188217
ServerID: perforce.ravenbrook.com
2015-09-03 15:39:39 +01:00
Gareth Rees
ef62affc6d
Move the clearing of the emergency flag down into tracedestroy{init,finish}.
...
Copied from Perforce
Change: 188216
ServerID: perforce.ravenbrook.com
2015-09-03 15:35:38 +01:00
Gareth Rees
b4db3bd09f
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
bea6e91d73
Accumulate trace metrics in arenapark.
...
Copied from Perforce
Change: 188208
ServerID: perforce.ravenbrook.com
2015-09-03 11:50:28 +01:00
Gareth Rees
3b0e0c2aa5
Don't start a trace unless there's work to do.
...
Copied from Perforce
Change: 188204
ServerID: perforce.ravenbrook.com
2015-09-02 21:55:24 +01:00
Gareth Rees
9a303f6935
Refactor tracequantum into tracepoll and traceadvance. (tracequantum was formerly called from arenapark, but that doesn't care about the quantum size.)
...
Copied from Perforce
Change: 188198
ServerID: perforce.ravenbrook.com
2015-09-02 10:50:00 +01:00
Gareth Rees
eee7ccb60c
New function policystarttrace decides whether to start a trace.
...
Copied from Perforce
Change: 188154
ServerID: perforce.ravenbrook.com
2015-08-20 16:57:33 +01:00
Gareth Rees
f3cf67c792
New constant rankmin gives the minimum rank. use this (rather than 0 or rankambig) to better express the intention.
...
Copied from Perforce
Change: 187156
ServerID: perforce.ravenbrook.com
2014-10-07 22:31:12 +01:00
Gareth Rees
c968255f1e
Ensure that code of the form if (condition) statement; is split over two lines, so that it is possible to set a breakpoint on the statement in a debugger.
...
This change was agreed in 1997 (see <https://info.ravenbrook.com/project/mps/mail/1997/08/19/13-44/0.txt >), so it's about time it was implemented.
Copied from Perforce
Change: 187071
ServerID: perforce.ravenbrook.com
2014-09-27 22:57:02 +01:00
Gareth Rees
08f341fcc9
Catch-up merge from master sources @186540 to branch/2014-05-17/chunk-tree.
...
Copied from Perforce
Change: 186546
ServerID: perforce.ravenbrook.com
2014-06-12 17:55:16 +01:00
Gareth Rees
cb629746ea
Catch-up merge from masters sources @186519 to branch/2014-04-17/describe.
...
Copied from Perforce
Change: 186526
ServerID: perforce.ravenbrook.com
2014-06-12 13:45:22 +01:00
Gareth Rees
cf75884793
Refer to rb's e-mail for potential optimization.
...
Copied from Perforce
Change: 186524
ServerID: perforce.ravenbrook.com
2014-06-12 12:18:30 +01:00
Gareth Rees
de2a30d207
Catch-up merge from master sources @186481 to branch/2014-05-17/chunk-tree.
...
Copied from Perforce
Change: 186491
ServerID: perforce.ravenbrook.com
2014-06-11 13:52:31 +01:00
Gareth Rees
144d1aea03
Catch-up merge from master sources @186213 to branch/2014-05-17/chunk-tree.
...
Copied from Perforce
Change: 186214
ServerID: perforce.ravenbrook.com
2014-05-20 19:11:50 +01:00
Gareth Rees
2f0ef9355d
Clarify tracefix logic by unwinding the nested conditions.
...
Change the arena's chunk tree from a splay tree to an ordinary tree (so that it's not possible to accidentally splay it and leave it unbalanced).
New function TreeFindNext allows us to implement TractFirst and TractNext without having to splay the tree.
Make sure all operations on the chunk tree leave it balanced. But don't balance the tree directly in ChunkFinish() because this is only ever called in a loop where multiple chunks are being deleted from the tre. Instead use the sequence TreeToVine -- iterate and delete -- TreeBalance. The new macro TREE_DESTROY assists with this.
No need any more for ArenaIsReservedAddr, CHUNK_OF_ADDR, TRACT_OF_ADDR.
Update design documentation.
Copied from Perforce
Change: 186212
ServerID: perforce.ravenbrook.com
2014-05-20 18:12:37 +01:00
Gareth Rees
04a44878f3
Catch-up merge from master sources @186174 to branch/2014-04-30/poolgen.
...
Copied from Perforce
Change: 186185
ServerID: perforce.ravenbrook.com
2014-05-19 14:59:19 +01:00
Gareth Rees
4d10bb418b
Catch-up merge from master sources @186077 to branch/2014-04-23/awl.
...
Copied from Perforce
Change: 186110
ServerID: perforce.ravenbrook.com
2014-05-15 10:17:41 +01:00
Gareth Rees
4c7106cd6f
Check the trace argument to tracequantum.
...
Copied from Perforce
Change: 186027
ServerID: perforce.ravenbrook.com
2014-05-12 13:35:21 +01:00
Gareth Rees
8a84937edb
Improve formatting of poolgendescribe and tracedescribe.
...
Add ArenaDescribe calls to amcss and finalcv to get coverage of PoolGenDescribe, TraceDescribe, and MRGDescribe.
Copied from Perforce
Change: 186010
ServerID: perforce.ravenbrook.com
2014-05-11 21:13:55 +01:00
Gareth Rees
30f37732a9
Catch-up merge from master sources @185999 to branch/2014-04-17/describe.
...
Copied from Perforce
Change: 186003
ServerID: perforce.ravenbrook.com
2014-05-11 18:33:02 +01:00
Gareth Rees
c77c91056d
Consistent order stream, depth.
...
Copied from Perforce
Change: 186001
ServerID: perforce.ravenbrook.com
2014-05-11 18:30:23 +01:00
Gareth Rees
2493f121dc
Correct indentation of describe output by passing depth parameter to describe functions and to writef.
...
Call Describe functions from test cases so that we get coverage.
Copied from Perforce
Change: 186000
ServerID: perforce.ravenbrook.com
2014-05-11 18:20:38 +01:00
Gareth Rees
d05197dccb
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