Richard Brooksby
f9f740e63a
Eliminating tractp use from mfs pool class.
...
Copied from Perforce
Change: 190086
ServerID: perforce.ravenbrook.com
2016-03-15 11:16:08 +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
55afaa1f21
Fixing segment split and merge to maintain segment tree, fixing assertions in segsmss.
...
Copied from Perforce
Change: 190077
ServerID: perforce.ravenbrook.com
2016-03-15 11:16:07 +00:00
Richard Brooksby
42e76b8d9f
Implementing segofaddr with a splay tree of segments as a step to eliminating tracts.
...
Copied from Perforce
Change: 190076
ServerID: perforce.ravenbrook.com
2016-03-15 11:16:07 +00:00
Richard Brooksby
fe2784d961
Breaking direct connection from segments to tracts.
...
Copied from Perforce
Change: 190074
ServerID: perforce.ravenbrook.com
2016-03-15 11:16:07 +00:00
Richard Brooksby
26da5b46b0
Catch-up merge from master sources to branch/2014-10-13/format.
...
Copied from Perforce
Change: 190060
ServerID: perforce.ravenbrook.com
2016-03-15 10:02:21 +00:00
Richard Brooksby
d4a055f70b
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
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
ca7dcd913e
Basic removal of the reservoir pool from code and design.
...
Copied from Perforce
Change: 190000
ServerID: perforce.ravenbrook.com
2016-03-13 20:32:24 +00:00
Richard Brooksby
e89429df8b
Can't use count as a bitfield.
...
Copied from Perforce
Change: 189965
ServerID: perforce.ravenbrook.com
2016-03-13 14:23:41 +00:00
Richard Brooksby
47dbed0eee
Tidying up naming of write barrier deferral.
...
Copied from Perforce
Change: 189960
ServerID: perforce.ravenbrook.com
2016-03-13 13:26:24 +00:00
Richard Brooksby
06af849502
Integrating write barrier deferral changes from branch/2014-08-18/non-incremental.
...
p4 integrate branch/2014-08-18/non-incremental/...@186975,186988 branch/2016-03-13/defer-write-barrier/...
Copied from Perforce
Change: 189943
ServerID: perforce.ravenbrook.com
2016-03-13 11:27:21 +00:00
Gareth Rees
31de518300
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
f9041d9a20
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
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
Richard Brooksby
9c1d2bfb44
Catch-up merge from master sources to branch/2014-10-26/sc.
...
Copied from Perforce
Change: 189865
ServerID: perforce.ravenbrook.com
2016-03-11 14:56:59 +00:00
Richard Brooksby
733b4e2072
Catch-up merge from master sources to branch/2016-03-01/mvff-control.
...
Copied from Perforce
Change: 189783
ServerID: perforce.ravenbrook.com
2016-03-08 18:29:37 +00:00
Richard Brooksby
56f72bd918
Catch-up merge from master sources to branch/2016-03-04/spare-fraction.
...
Copied from Perforce
Change: 189782
ServerID: perforce.ravenbrook.com
2016-03-08 18:26:51 +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
57cec90d6a
Renaming design.mps.ss to design.mps.stack-scan.
...
Copied from Perforce
Change: 189607
ServerID: perforce.ravenbrook.com
2016-03-04 11:54:19 +00:00
Richard Brooksby
b1d3bc40e3
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
Richard Brooksby
275adfe651
Storing the pointer to the stack frame where setjmp was invoked, rather than the address of the jump buffer, as the hot end of the mutator state, because callee-save registered might be stored on either side of the jump buffer by the compiler.
...
Removing the unnecessary assumption that the stack ends are word-aligned.
Copied from Perforce
Change: 189582
ServerID: perforce.ravenbrook.com
2016-03-03 17:12:43 +00:00
Richard Brooksby
50384dd478
Fixing terminology from "top" to "hot end" of stack.
...
Copied from Perforce
Change: 189530
ServerID: perforce.ravenbrook.com
2016-03-02 10:16:44 +00:00
Richard Brooksby
fbe3ddcbb6
Removing poolmv.h and redundant code now that mv has no internal clients.
...
Copied from Perforce
Change: 189465
ServerID: perforce.ravenbrook.com
2016-03-01 01:55:39 +00:00
Richard Brooksby
f0b5e7d44a
Replacing mv with mvff as the arena control pool.
...
Copied from Perforce
Change: 189459
ServerID: perforce.ravenbrook.com
2016-03-01 01:38:28 +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
acc5857820
Catch-up merge from master sources.
...
Copied from Perforce
Change: 189445
ServerID: perforce.ravenbrook.com
2016-02-12 14:54:04 +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
Richard Brooksby
eac348d664
Catch-up merge from masters.
...
Copied from Perforce
Change: 188921
ServerID: perforce.ravenbrook.com
2016-01-19 16:22:39 +00: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
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
511ec1c025
Catch-up merge from branch/2015-08-10/arena-create to branch/2015-08-06/config.
...
Copied from Perforce
Change: 188104
ServerID: perforce.ravenbrook.com
2015-08-10 12:49:36 +01:00
Gareth Rees
6359b0ed98
Merge branch/2014-09-29/reserved into the master sources.
...
Copied from Perforce
Change: 188090
ServerID: perforce.ravenbrook.com
2015-08-07 16:33:43 +01:00
Gareth Rees
703c1ee5f5
New function mps_arena_configure provides keyword argument interface to changing the properties of an arena.
...
New keyword arguments MPS_KEY_ARENA_COMMIT_LIMIT and MPS_KEY_SPARE_ARENA_COMMIT_LIMIT can be passed to mps_arena_create_k or mps_arena_configure.
Deprecate mps_arena_commit_limit_set and mps_arena_spare_commit_limit_set.
Copied from Perforce
Change: 188085
ServerID: perforce.ravenbrook.com
2015-08-06 17:02:51 +01:00
Gareth Rees
4126fe1d73
Save mutator context on entry to the mps.
...
Copied from Perforce
Change: 187412
ServerID: perforce.ravenbrook.com
2014-10-26 22:18:57 +00:00
Gareth Rees
abbdcfc59f
Assert if a thread dies while registered, but make a best effort to continue working after the assertion, by marking the thread as dead and moving it to a ring of dead threads.
...
Copied from Perforce
Change: 187393
ServerID: perforce.ravenbrook.com
2014-10-25 17:41:42 +01:00
Gareth Rees
4ce030ad13
Use a reference count to discover cases where a format is deleted when a pool is still using it, as suggested by rb < https://info.ravenbrook.com/mail/2014/10/16/13-35-06/0/ >.
...
Copied from Perforce
Change: 187279
ServerID: perforce.ravenbrook.com
2014-10-16 22:59:00 +01:00
Gareth Rees
72a38afb68
Remove unused pool {fill,empty}{mutator,internal}size statistics.
...
Copied from Perforce
Change: 187270
ServerID: perforce.ravenbrook.com
2014-10-14 22:37:55 +01:00
Gareth Rees
f65f1db83e
Attach the pools using a format to a ring in the format, so that when we destroy the format, we can check that no pools are using it.
...
Copied from Perforce
Change: 187253
ServerID: perforce.ravenbrook.com
2014-10-13 22:44:20 +01:00
Gareth Rees
9dc8bd1e70
Because of the requirement to make popped objects dead in a timely fashion, we can only implement lightweight pops to an address in the buffer. in particular we can't support pending pops, which means that there's no need for the fields in the allocation point that support pending pops.
...
Copied from Perforce
Change: 187232
ServerID: perforce.ravenbrook.com
2014-10-13 12:46:28 +01:00
Gareth Rees
72209444c0
Store reserved address space associated with chunk in a field in the chunkstruct, as suggested by rb in < https://info.ravenbrook.com/mail/2014/10/01/13-55-44/0/ >.
...
Copied from Perforce
Change: 187104
ServerID: perforce.ravenbrook.com
2014-10-01 21:40:50 +01:00
Gareth Rees
53c5301a9e
Instead of iterating over the chunks to compute the total reserved address space, maintain a running total in arenachunkinsert and (new function) arenachunkremoved.
...
New arena class method chunkReserved handles the class-specific computation of the reserved size of a chunk.
Copied from Perforce
Change: 187089
ServerID: perforce.ravenbrook.com
2014-09-29 22:50:46 +01:00
Gareth Rees
21f6addf6c
Rename mps_class_t to mps_pool_class_t for clarity.
...
Retain a typedef for mps_class_t for backwards compatibility.
Copied from Perforce
Change: 187065
ServerID: perforce.ravenbrook.com
2014-09-27 13:37:38 +01:00
Gareth Rees
7c2e271e60
Rename segpref to locuspref -- this structure describes preferences for the placement of any kind of address, not just segments.
...
Add LocusPrefDescribe and use it in MVFFDescribe.
Copied from Perforce
Change: 187061
ServerID: perforce.ravenbrook.com
2014-09-27 11:27:00 +01:00
David Lovemore
b4460043e6
Added more control over write barrier. in particular separated scans after a hit.
...
Copied from Perforce
Change: 186988
ServerID: perforce.ravenbrook.com
2014-08-27 11:21:18 +01:00
David Lovemore
46d723c9dc
Added experimental control over write barrier eagerness.
...
The write barrier is only raised after three unnecessary scans.
Copied from Perforce
Change: 186975
ServerID: perforce.ravenbrook.com
2014-08-21 15:53:57 +01:00
David Lovemore
8c9353fe34
Add mps_key_arena_incremental option.
...
Avoid read and write barrier in non-incremental mode.
Add --non-incremental option to gcbench
Copied from Perforce
Change: 186969
ServerID: perforce.ravenbrook.com
2014-08-20 13:03:20 +01:00
Gareth Rees
a13a1aa1df
Catch-up merge from master sources @186564 to branch/2014-06-11/grain.
...
Copied from Perforce
Change: 186572
ServerID: perforce.ravenbrook.com
2014-06-13 15:30:46 +01:00
Gareth Rees
100405cac2
Restore the chunk ring.
...
Copied from Perforce
Change: 186558
ServerID: perforce.ravenbrook.com
2014-06-13 12:31:47 +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