Gareth Rees
e6cf907567
Add landiterateanddelete method for the cbs land classes.
...
Use this to check that all memory has been returned to the arena in MVFFFinish.
Copied from Perforce
Change: 186616
ServerID: perforce.ravenbrook.com
2014-06-14 12:44:11 +01:00
Gareth Rees
bb44aa1f51
Catch-up merge from master sources @186528 to branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186534
ServerID: perforce.ravenbrook.com
2014-06-12 15:59:39 +01:00
Gareth Rees
c71e35f3c1
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
3c486bd581
Fix problems identified by rb in review < https://info.ravenbrook.com/mail/2014/06/04/15-13-24/0/ >.
...
Copied from Perforce
Change: 186449
ServerID: perforce.ravenbrook.com
2014-06-08 20:28:33 +01:00
Gareth Rees
75e502fc7b
Catch-up merge from master sources @186352 to branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186355
ServerID: perforce.ravenbrook.com
2014-05-29 16:03:34 +01:00
Gareth Rees
b8c39883ea
Pass and check special closure values unused_pointer, unused_size instead of null, 0.
...
Copied from Perforce
Change: 186352
ServerID: perforce.ravenbrook.com
2014-05-29 15:28:33 +01:00
Gareth Rees
224afa61a8
Fix problems identified by rb in review < https://info.ravenbrook.com/mail/2014/05/29/13-01-02/0/ >.
...
Copied from Perforce
Change: 186347
ServerID: perforce.ravenbrook.com
2014-05-29 14:50:36 +01:00
Gareth Rees
e35f3b1b6c
Fix problems identified by dl in review < https://info.ravenbrook.com/mail/2014/05/23/12-44-54/0/ >.
...
Copied from Perforce
Change: 186300
ServerID: perforce.ravenbrook.com
2014-05-25 20:49:22 +01:00
Gareth Rees
5f848d0404
Split land iteration into two functions, one which deletes ranges, the other which does not.
...
Copied from Perforce
Change: 186298
ServerID: perforce.ravenbrook.com
2014-05-25 19:26:48 +01:00
Gareth Rees
9c3eb68f97
Landiterate now returns a bool indicating whether all visitor calls returned true.
...
Copied from Perforce
Change: 186165
ServerID: perforce.ravenbrook.com
2014-05-18 22:46:16 +01:00
Gareth Rees
a25521dbe9
Catch-up merge from branch/2014-03-30/addrset to branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186082
ServerID: perforce.ravenbrook.com
2014-05-13 16:27:17 +01:00
Gareth Rees
883f4a4c3f
Catch-up merge from master sources @186077 to branch/2014-03-30/addrset.
...
Copied from Perforce
Change: 186081
ServerID: perforce.ravenbrook.com
2014-05-13 16:21:39 +01:00
Gareth Rees
7818a73504
Merge branch/2014-02-23/mvff-tune into branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186079
ServerID: perforce.ravenbrook.com
2014-05-13 16:10:51 +01:00
Gareth Rees
089b66635c
Assert that size > 0 in cbsfindlargest. (merged from change 184496.)
...
Copied from Perforce
Change: 186075
ServerID: perforce.ravenbrook.com
2014-05-13 13:44:42 +01:00
Gareth Rees
2678554475
Fixed a bug in cbsfindlargest where it always deleted the entire range found even when finddeletelow or finddeletehigh were passed. (merged from change 184493.)
...
Copied from Perforce
Change: 186074
ServerID: perforce.ravenbrook.com
2014-05-13 13:33:46 +01:00
Gareth Rees
4cc791616e
Bug fix. ensuring cbsfinddeleterange returns oldrangereturn even if it doesn’t delete a block. (merged from change 184485.)
...
Copied from Perforce
Change: 186070
ServerID: perforce.ravenbrook.com
2014-05-13 12:30:23 +01:00
Gareth Rees
32cd7e343b
Remove mps_key_cbs_extend_by and mfsextendself keyword arguments to cbsinit. these were unused and obsoleted by cbsblockpool.
...
Copied from Perforce
Change: 186006
ServerID: perforce.ravenbrook.com
2014-05-11 19:09:44 +01:00
Gareth Rees
2b41ec58db
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
add3e4bf93
Consistent order stream, depth.
...
Copied from Perforce
Change: 186001
ServerID: perforce.ravenbrook.com
2014-05-11 18:30:23 +01:00
Gareth Rees
c44f2d6a20
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
4ed8190265
Back out change 185626 (violates the design.mps.writef.snazzy).
...
Copied from Perforce
Change: 185941
ServerID: perforce.ravenbrook.com
2014-05-02 12:44:31 +01:00
Gareth Rees
4c655eba6a
Fix rash build on os x by adding the unused attribute to functions declared static that are not called in the rash variety.
...
Copied from Perforce
Change: 185915
ServerID: perforce.ravenbrook.com
2014-05-01 12:18:00 +01:00
Gareth Rees
d83fbf6b09
Correct indentation of describe output.
...
Copied from Perforce
Change: 185626
ServerID: perforce.ravenbrook.com
2014-04-17 13:36:42 +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
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
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
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
b70e268929
Fix problems found by coverity. see < https://info.ravenbrook.com/mail/2014/04/10/23-23-42/0/ > for full analysis.
...
Copied from Perforce
Change: 185445
ServerID: perforce.ravenbrook.com
2014-04-11 00:26:48 +01:00
Gareth Rees
3d1db4eab6
Use cbs subclasses to implement the fast-find and find-in-zones features. this avoids the need to control behaviour by passing booleans, and it means that there is no wasted space in the cbs block structure when these features are not used.
...
Bring splay tree design up to date; add missing diagrams; move it to the "current" section of the manual.
Copied from Perforce
Change: 185294
ServerID: perforce.ravenbrook.com
2014-04-07 15:36:18 +01:00
Gareth Rees
0c2cd2ab6d
Catch-up merge from master sources to branch/2014-03-30/addrset.
...
Copied from Perforce
Change: 185288
ServerID: perforce.ravenbrook.com
2014-04-07 15:02:09 +01:00
Gareth Rees
0ffc9ec788
Can't use checkd_nosig(tree, ...) because treeempty is null.
...
arena->enabledMessageTypes might be NULL.
Copied from Perforce
Change: 185271
ServerID: perforce.ravenbrook.com
2014-04-07 10:14:40 +01:00
Gareth Rees
bcea6812fc
Improve control over checking:
...
1. Where Type is a pointer type with a signature, replace CHECKL(TypeCheck(val)) with CHECKD(Type, val).
2. Where Type is a pointer type with no signature, replace CHECKL(TypeCheck(val)) with CHECKD_NOSIG(Type, val).
3. Where Type is a pointer type with a signature, but the structure is not visible at point of checking, replace CHECKL(TypeCheck(val)) with CHECKD_NOSIG(Type, val). Reference <design/check/#.hidden-type>
4. Make BTCheck extern and use it where possible.
5. Replace AVER(TypeCheck(val)) with AVERT(Type, val).
Copied from Perforce
Change: 185263
ServerID: perforce.ravenbrook.com
2014-04-06 22:51:05 +01:00
Gareth Rees
b9e2c81084
Test the failover module (both always and never failing over).
...
Fix result code bug in failoverInsert.
Test all result codes in fotest.
Tidy up code and documentation.
Copied from Perforce
Change: 185207
ServerID: perforce.ravenbrook.com
2014-04-03 14:46:58 +01:00
Gareth Rees
a3055d56c0
New module failover implements a fail-over allocator as a land class.
...
Use Failover in MVT and MVFF.
Test Failover in landtest.
Implementation of LandFindInZones for Freelist (untested).
Remove signature from RangeStruct so we can embed it without a space cost.
Copied from Perforce
Change: 185196
ServerID: perforce.ravenbrook.com
2014-04-03 12:52:23 +01:00
Gareth Rees
6ef8e57b1f
Turn freelist into a land class.
...
Copied from Perforce
Change: 185155
ServerID: perforce.ravenbrook.com
2014-04-02 14:01:18 +01:00
Gareth Rees
042f9c5f14
First pass at implementation of lands (collections of address ranges). 100% boilerplate!
...
Copied from Perforce
Change: 185131
ServerID: perforce.ravenbrook.com
2014-04-01 19:51:55 +01:00
Richard Brooksby
6cfc226ebd
Implementing top-down (last fit) allocation in zones.
...
Copied from Perforce
Change: 184771
ServerID: perforce.ravenbrook.com
2014-03-13 12:06:28 +00:00
Richard Brooksby
2a7fd3c326
Incomplete response to code review. see < https://info.ravenbrook.com/mail/2014/03/07/11-21-03/0/ >.
...
Copied from Perforce
Change: 184735
ServerID: perforce.ravenbrook.com
2014-03-11 16:39:11 +00:00
Richard Brooksby
098eb9e6d7
Catch-up merge from master.
...
Copied from Perforce
Change: 184732
ServerID: perforce.ravenbrook.com
2014-03-11 16:30:47 +00:00
Richard Brooksby
4a27ce10f0
Catch-up merge from branch/2014-02-22/splay-tune to pick up code review changes.
...
Copied from Perforce
Change: 184727
ServerID: perforce.ravenbrook.com
2014-03-11 16:07:19 +00:00
Richard Brooksby
0cb5069ea8
Responding to code review < https://info.ravenbrook.com/mail/2014/03/07/22-40-36/0/ >.
...
Using TREE_ELT where appropriate.
Using AVERT consistently on Tree, but see job003691.
Copied from Perforce
Change: 184724
ServerID: perforce.ravenbrook.com
2014-03-11 15:46:51 +00:00
Richard Brooksby
519f208a46
Responding to code review. see < https://info.ravenbrook.com/mail/2014/03/04/12-02-27/0/ >.
...
Copied from Perforce
Change: 184669
ServerID: perforce.ravenbrook.com
2014-03-07 15:00:54 +00:00
Richard Brooksby
0112bd03b6
Resolving questions left behind in fixmes.
...
Copied from Perforce
Change: 184609
ServerID: perforce.ravenbrook.com
2014-02-28 14:42:44 +00:00
Richard Brooksby
c0e96f9f3c
Merging branch/2014-02-22/splay-tune to pick up splay tree improvements.
...
Copied from Perforce
Change: 184606
ServerID: perforce.ravenbrook.com
2014-02-28 14:27:40 +00:00
Richard Brooksby
a2aa56447c
Fixing res/bool confusion found by “xc/debug/fbmtest 244032167”
...
Copied from Perforce
Change: 184595
ServerID: perforce.ravenbrook.com
2014-02-28 10:53:07 +00:00
Richard Brooksby
cd19bda000
Tidying up interfaces to cbsinit and cbsfindinzones.
...
Documenting assumptions about CBS block allocation used by the arena.
Copied from Perforce
Change: 184593
ServerID: perforce.ravenbrook.com
2014-02-28 10:30:32 +00:00
Richard Brooksby
0c16e904f5
Simplifying the interface to cbsfindinzones.
...
Speeding up CBSFindInZones a bit.
Copied from Perforce
Change: 184589
ServerID: perforce.ravenbrook.com
2014-02-28 01:25:18 +00:00
Richard Brooksby
fc720aff46
Eliminating complex zonedcbs adt and reintroducing a cbs with zone summaries. removing the default “high” segment preference, that caused the cbs trees to unbalance, and isn’t required outside of ep. considerable reduction in code and speed up, now at parity with master on test xc/release/gcbench -x 1234 amc
...
Copied from Perforce
Change: 184587
ServerID: perforce.ravenbrook.com
2014-02-28 00:35:05 +00:00
Richard Brooksby
9dff6e6d1d
Searching the freecbs now respects the “high” preference, though not yet within blocks.
...
Copied from Perforce
Change: 184574
ServerID: perforce.ravenbrook.com
2014-02-26 19:29:05 +00:00
Richard Brooksby
a06ba218b6
Fixing cbsfindfirstinzones to return a res, because it can fail when it can’t allocate a cbs block, unlike cbsfindfirst.
...
Fixing related corner case in arenaAllocFindInFreeCBS when it thought it couldn’t find a block when it was in fact running out of nodes. This was revealed by “gcbench --npass 1 --arena-size 1M --seed 945632066 --niter 1 amc”.
Fixing draft ArenaFreeCBSDelete after exercising it.
Copied from Perforce
Change: 184568
ServerID: perforce.ravenbrook.com
2014-02-26 17:40:39 +00:00