1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-18 03:40:47 -08:00
Commit graph

248 commits

Author SHA1 Message Date
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