1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-29 09:43:56 -07:00
Commit graph

1613 commits

Author SHA1 Message Date
Gareth Rees
d9e0b8883c Awl now returns segments to the arena when they are free.
Copied from Perforce
 Change: 185906
 ServerID: perforce.ravenbrook.com
2014-04-30 16:34:40 +01:00
Gareth Rees
282b0cb830 Update comment to match design.
Copied from Perforce
 Change: 185902
 ServerID: perforce.ravenbrook.com
2014-04-30 16:30:01 +01:00
Gareth Rees
bd0e9da9ce All prottramp implementations are now the same, so there is no need for separate implementations.
Copied from Perforce
 Change: 185901
 ServerID: perforce.ravenbrook.com
2014-04-30 16:29:42 +01:00
Gareth Rees
b9ccc0af7a Fix problems identified by dl in <https://info.ravenbrook.com/mail/2014/04/30/12-47-23/0/>.
Copied from Perforce
 Change: 185897
 ServerID: perforce.ravenbrook.com
2014-04-30 15:24:26 +01:00
Gareth Rees
cd099a2aae Better names for poolgen functions.
Accounting for segment splitting and merging.
Accounting for allocation and freeing in segsmss.

Copied from Perforce
 Change: 185894
 ServerID: perforce.ravenbrook.com
2014-04-30 13:49:26 +01:00
Gareth Rees
405fde886f Revert a couple of whitespace changes to simplify the diffs.
Copied from Perforce
 Change: 185891
 ServerID: perforce.ravenbrook.com
2014-04-30 12:59:04 +01:00
Gareth Rees
25d595211a Undo seghasbuffer change, to simplify the diffs.
Copied from Perforce
 Change: 185890
 ServerID: perforce.ravenbrook.com
2014-04-30 12:56:30 +01:00
Gareth Rees
e62efa1619 Use double-entry book-keeping and bank reconciliation to ensure the soundness and completeness of the pool generation size accounting.
Copied from Perforce
 Change: 185888
 ServerID: perforce.ravenbrook.com
2014-04-30 12:14:54 +01:00
Gareth Rees
9887a1da26 Catch-up merge from branch/2014-04-30/poolgen.
Copied from Perforce
 Change: 185886
 ServerID: perforce.ravenbrook.com
2014-04-30 12:10:51 +01:00
Gareth Rees
5cacd3e0fc Pass gen parameter to amsinitinternal.
Set up segsmss with same chain as before.

Copied from Perforce
 Change: 185885
 ServerID: perforce.ravenbrook.com
2014-04-30 12:09:09 +01:00
Gareth Rees
b3d827b6fb Pool generations now refer directly to their generation (not via a chain and a generation number).
Allocation into a generation now via PoolGenAlloc (not ChainAlloc).
The "top generation" logic is encapsulated in the function ChainGen.

Copied from Perforce
 Change: 185877
 ServerID: perforce.ravenbrook.com
2014-04-30 11:18:44 +01:00
Gareth Rees
f4e63e0bdd No need for prod_checklevel_initial (was unused).
Copied from Perforce
 Change: 185876
 ServerID: perforce.ravenbrook.com
2014-04-30 11:08:23 +01:00
David Lovemore
fb7363db2e Rename bool(v) to boolof(v) to fix clash with the windows header file windows.h
Copied from Perforce
 Change: 185841
 ServerID: perforce.ravenbrook.com
2014-04-28 13:14:04 +01:00
Gareth Rees
54ee6e4292 Fix amsss.
Copied from Perforce
 Change: 185813
 ServerID: perforce.ravenbrook.com
2014-04-26 11:12:45 +01:00
Gareth Rees
28a6bfe289 Explain traceaddwhite failure logic as requested by nb in <https://info.ravenbrook.com/mail/2014/04/24/12-10-09/0/>.
Copied from Perforce
 Change: 185800
 ServerID: perforce.ravenbrook.com
2014-04-25 17:41:56 +01:00
Gareth Rees
fb56a08e49 Tracecondemnzones could leave the white set inconsistent if traceaddwhite failed. add an assertion to cover this case (corresponding to the similar assertion in tracecondemnall).
Copied from Perforce
 Change: 185765
 ServerID: perforce.ravenbrook.com
2014-04-23 20:22:19 +01:00
Gareth Rees
1821ccc309 Test all 8 combinations of debug, chain, ambig.
Copied from Perforce
 Change: 185763
 ServerID: perforce.ravenbrook.com
2014-04-23 19:42:27 +01:00
Gareth Rees
294c4a97cd Test the arena default chain. set the commit limit to make sure that the collector can make progress.
Copied from Perforce
 Change: 185749
 ServerID: perforce.ravenbrook.com
2014-04-22 23:18:42 +01:00
Gareth Rees
5b54651076 Fix indentation.
Copied from Perforce
 Change: 185746
 ServerID: perforce.ravenbrook.com
2014-04-22 21:57:16 +01:00
Gareth Rees
932d72770b Separate jobs for lo and awl finalization.
Copied from Perforce
 Change: 185743
 ServerID: perforce.ravenbrook.com
2014-04-22 21:40:59 +01:00
Gareth Rees
e7d41a8fde Fix bugs in condemn logic:
1. TraceStartCollectAll now condemns all segments in pools with AttrGC (not just pools attached to generation zero of some chain, as before).
2. ChainDeferral now looks at all generations in the chain, so that the chain is condemned if any generation's new size is greater than its capacity (not just generation zero, as before).
3. ChainCondemnAuto now condemns all generations up to and including the highest generation whose new size is greater than its capacity (rather than, as before, up to and excluding the lowest generation whose new size is lower than its capacity).
Update finaltest.c so that it has a mode in which it allocates in generation 1 of a chain and with the arena released so that the above fixes are tested. Remove the MPS_KEY_GEN workarounds from awlut and awluthe as these are no longer needed.

Copied from Perforce
 Change: 185741
 ServerID: perforce.ravenbrook.com
2014-04-22 17:53:47 +01:00
Gareth Rees
230ee1f936 Use freelistend instead of null as the special value.
Copied from Perforce
 Change: 185617
 ServerID: perforce.ravenbrook.com
2014-04-17 00:19:45 +01:00
Gareth Rees
1e43258933 Explain reasoning in amsbufferempty, as requested by rb <https://info.ravenbrook.com/mail/2014/04/16/12-42-33/0/>.
Copied from Perforce
 Change: 185603
 ServerID: perforce.ravenbrook.com
2014-04-16 13:59:33 +01:00
Gareth Rees
bca0a066fb Avoid avers with side effects, as requested by rb in <https://info.ravenbrook.com/mail/2014/04/16/11-47-22/0/>
Copied from Perforce
 Change: 185595
 ServerID: perforce.ravenbrook.com
2014-04-16 13:23:56 +01:00
Gareth Rees
66554a8b42 Put cbsfindinzones back where it was (moving it broke the build).
Copied from Perforce
 Change: 185584
 ServerID: perforce.ravenbrook.com
2014-04-16 11:19:55 +01:00
Gareth Rees
4ac5e3a9ce Oops: sense of test was wrong way round.
Copied from Perforce
 Change: 185581
 ServerID: perforce.ravenbrook.com
2014-04-16 10:55:39 +01:00
Gareth Rees
02c40ddb7e Use x and x_none for x ∈ {lock, plinth, remembered_set, shield} to match the other settings (aver_and_check, event, statistics).
Copied from Perforce
 Change: 185580
 ServerID: perforce.ravenbrook.com
2014-04-16 10:48:21 +01:00
Gareth Rees
acccc01ec4 Move cbsfindinzones so that diff is cleaner.
Copied from Perforce
 Change: 185578
 ServerID: perforce.ravenbrook.com
2014-04-16 10:24:26 +01:00
Gareth Rees
1099dbaeb5 Mvff no longer uses segments, but instead maintains the address ranges it has acquired from the arena in a cbs.
Copied from Perforce
 Change: 185574
 ServerID: perforce.ravenbrook.com
2014-04-15 17:52:14 +01:00
Gareth Rees
960c2960a8 Integrate addrset branch to mvffnoseg branch to pick up land size improvements.
Copied from Perforce
 Change: 185570
 ServerID: perforce.ravenbrook.com
2014-04-15 16:38:51 +01:00
Gareth Rees
a94cc2ed78 New generic function landsize returns the total size of ranges in a land (if the land supports it). implement it for all land classes.
The MVFF pool class doesn't have to maintain its free size any more: it can just call LandSize.
Move re-entrancy protection from CBS to Land. This allows us to remove some CBS functions. (But requires some adjustment in failoverDelete.)
In MVFF, do more checking of mvff->total.

Copied from Perforce
 Change: 185569
 ServerID: perforce.ravenbrook.com
2014-04-15 16:35:34 +01:00
Gareth Rees
d0881bf1e1 Lands maintain the total size of the address ranges they maintain. (this avoids the need to do free size accounting in mvff.)
Copied from Perforce
 Change: 185567
 ServerID: perforce.ravenbrook.com
2014-04-15 14:23:53 +01:00
Gareth Rees
661d48151c Integrate branch/2014-03-30/addrset to branch/2014-04-15/mvffnoseg to pick up land classes.
Copied from Perforce
 Change: 185564
 ServerID: perforce.ravenbrook.com
2014-04-15 13:16:24 +01:00
Gareth Rees
0abdd8ae47 Catch-up merge from master/...@185556 to branch/2014-03-30/addrset.
Copied from Perforce
 Change: 185563
 ServerID: perforce.ravenbrook.com
2014-04-15 13:14:50 +01:00
Gareth Rees
e933748bd6 Mvt does not actually need to use gcsegs: in fact, gcsegs create difficulties because buffers need to be detached. so switch to using ordinary segs just like mvff.
Copied from Perforce
 Change: 185556
 ServerID: perforce.ravenbrook.com
2014-04-15 12:41:10 +01:00
Gareth Rees
eeaf8b887a Revert hasty merge of branch/2014-04-15/shared -- broke xcode build.
Copied from Perforce
 Change: 185553
 ServerID: perforce.ravenbrook.com
2014-04-15 12:39:51 +01:00
Gareth Rees
992ab111d6 Build and install a shared library on unix platforms.
Copied from Perforce
 Change: 185543
 ServerID: perforce.ravenbrook.com
2014-04-15 11:02:05 +01:00
Gareth Rees
72ba071b4c Fix arenarootswalk:
1. Blacken the segments again after scanning the roots, so that the roots can be walked again.
2. Don't cast RootGrey to a RootIterateFn -- the types are not compatible.
MMQA test function/122.c now passes.

Copied from Perforce
 Change: 185530
 ServerID: perforce.ravenbrook.com
2014-04-14 23:38:54 +01:00
Gareth Rees
4e48a196e5 Check the poolring so that there is an assertion failure (not a crash) if the client fails to destroy a pool.
Copied from Perforce
 Change: 185527
 ServerID: perforce.ravenbrook.com
2014-04-14 22:31:24 +01:00
Gareth Rees
06ea755daf Move the marker down the stack so that gcc's aggressive inline won't scupper it.
Copied from Perforce
 Change: 185524
 ServerID: perforce.ravenbrook.com
2014-04-14 18:37:31 +01:00
Gareth Rees
113f2ff5d0 Simpler cast, more checking.
Copied from Perforce
 Change: 185510
 ServerID: perforce.ravenbrook.com
2014-04-14 12:32:18 +01:00
Gareth Rees
e2c67f1bb7 Simpler cast, more checking.
Copied from Perforce
 Change: 185507
 ServerID: perforce.ravenbrook.com
2014-04-14 12:13:31 +01:00
Gareth Rees
97f6f25655 Avoid warning on lii3gc.
Copied from Perforce
 Change: 185506
 ServerID: perforce.ravenbrook.com
2014-04-14 12:13:22 +01:00
Gareth Rees
da2a61ae24 Simpler casting, and more checking.
Copied from Perforce
 Change: 185505
 ServerID: perforce.ravenbrook.com
2014-04-14 12:07:14 +01:00
Gareth Rees
339cc8e364 Simpler casting and more checking.
Copied from Perforce
 Change: 185502
 ServerID: perforce.ravenbrook.com
2014-04-14 11:34:20 +01:00
Gareth Rees
2987353125 Check rings before destroying the control pool, so that you get an assertion when a ring points into space that is about to be unmapped, instead of a crash after it has been unmapped.
Copied from Perforce
 Change: 185495
 ServerID: perforce.ravenbrook.com
2014-04-13 20:51:10 +01:00
Gareth Rees
b1fd10c278 Debug options structures are incompatible with gcc -wwrite-strings.
Copied from Perforce
 Change: 185493
 ServerID: perforce.ravenbrook.com
2014-04-13 19:52:51 +01:00
Gareth Rees
6b4cfb5263 Avoid "cast discards const qualifier from pointer target type" error from gcc.
Copied from Perforce
 Change: 185491
 ServerID: perforce.ravenbrook.com
2014-04-13 19:23:33 +01:00
Gareth Rees
f7dd0b6c46 Provide a default value for mps_key_pool_debug_options.
Don't use const in the types of the debugging templates: it's infectious!

Copied from Perforce
 Change: 185489
 ServerID: perforce.ravenbrook.com
2014-04-13 18:02:10 +01:00
Gareth Rees
02e0595e2f Comment is no longer true: now handle blocks that span segments.
Copied from Perforce
 Change: 185487
 ServerID: perforce.ravenbrook.com
2014-04-13 10:28:19 +01:00