Gareth Rees
b90f8b9bcd
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
0b159dc650
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
d2cbfda452
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
2ce13f82dc
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
1e8eec530b
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
1f2cf6aa56
Responding to code review < https://info.ravenbrook.com/mail/2014/03/07/18-03-14/0/ >.
...
Updating Splay Tree design document to be reasonably consistent with the current code.
Disabling tree functions not currently in use.
Copied from Perforce
Change: 184723
ServerID: perforce.ravenbrook.com
2014-03-11 15:46:51 +00:00
Richard Brooksby
4e28809e4a
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
d8362f2cad
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
887c6e3845
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
14620f8c24
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
ddfec2c708
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
e6d1db24b6
Simplifying interface to high and low allocation in the zoned cbs.
...
Copied from Perforce
Change: 184576
ServerID: perforce.ravenbrook.com
2014-02-27 12:01:42 +00:00
Richard Brooksby
3b3e01b10f
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
6b16beb0c6
Implemented “high” preference allocation for zone stripes.
...
Copied from Perforce
Change: 184573
ServerID: perforce.ravenbrook.com
2014-02-26 18:18:20 +00:00
Richard Brooksby
dc83b10c0d
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
Richard Brooksby
02dd6ce371
Desmurfing the naming conventions in cbs.
...
Copied from Perforce
Change: 184424
ServerID: perforce.ravenbrook.com
2014-02-23 10:41:14 +00:00
Richard Brooksby
f0b07f7bbe
Added a pool argument to cbs creation so that cbss can share a pool. in particular, per-zone allocation cbss for the arena can share a single special block pool.
...
Copied from Perforce
Change: 184469
ServerID: perforce.ravenbrook.com
2014-02-18 13:53:56 +00:00
Richard Brooksby
cd4a12047f
Non-working preferential allocation within a block of the cbs.
...
This doesn't work because the splay tree can't cope with homing in on a node (that appears big enough) then being told that it isn't suitable (because it doesn't have space in the right zone). The splay tree summary condition must be precise, as stated in the design. The splay tree isn't suited to this kind of search.
Copied from Perforce
Change: 184073
ServerID: perforce.ravenbrook.com
2014-01-21 16:29:30 +00:00
Richard Brooksby
c71a9513e0
Adding a free address space cbs to the arena, initialising and finishing it, but not using it yet.
...
Moved CBSStruct to mpmst.h so that it can be included inline in ArenaStruct without circularity problems.
Copied from Perforce
Change: 184044
ServerID: perforce.ravenbrook.com
2014-01-17 16:15:13 +00:00
Richard Brooksby
9eeaa3a388
Inlining the mfs block pool's structure into its parent mfs, to avoid allocating in the control pool when initialising a cbs. this will allow the cbs to be used before the control pool exists.
...
Copied from Perforce
Change: 184043
ServerID: perforce.ravenbrook.com
2014-01-17 15:48:12 +00:00
Gareth Rees
ca36e1a147
Cbsdelete() now returns the isolated contiguous range that was found, even if the requested deletion operation cannot be performed. (this is so that the caller can try deleting the whole block instead and manage the fragments using a fallback strategy.)
...
CBSFindLargest() takes a size argument, so that the caller doesn't have to re-insert the found block if it wasn't large enough.
Copied from Perforce
Change: 182431
ServerID: perforce.ravenbrook.com
2013-06-03 16:16:04 +01:00
Gareth Rees
db9328da7a
Use range objects in the cbs interface instead of base, limit pairs. the idea is that freelist and cbs should offer similar interfaces so that the testing code can be shared.
...
Copied from Perforce
Change: 182364
ServerID: perforce.ravenbrook.com
2013-05-31 16:29:26 +01:00
Gareth Rees
934ae05ca3
Rename the enumeration cbsfinddelete to finddelete in anticipation of it being shared between cbs and new freelist module.
...
Since ABQDisposition enumeration only has two values, it's better to use Bool.
Copied from Perforce
Change: 182347
ServerID: perforce.ravenbrook.com
2013-05-31 00:09:33 +01:00
Gareth Rees
4c5bca4bd0
Fix review comments from rb in < https://info.ravenbrook.com/mail/2013/05/23/18-17-17/0/ >
...
Copied from Perforce
Change: 182149
ServerID: perforce.ravenbrook.com
2013-05-24 00:48:19 +01:00
Gareth Rees
2849a0bd33
Make the cbs module more abstract by removing cbsblock from the public interface. avoid re-entrancy problems by removing the callback interface. public interfaces like cbsiteratemethod now operate in terms of address ranges rather than cbsblocks.
...
The functions CBSInsert, CBSDelete and CBSFind* now additionally return an "old" address range which gives the former base and limit of the block that has just been updated. This gives clients enough information to update their caches if need be.
Update CBS test and design accordingly.
Copied from Perforce
Change: 182014
ServerID: perforce.ravenbrook.com
2013-05-20 20:45:26 +01:00
Gareth Rees
217831cc47
Remove "emergency" free list allocator from the cbs module (it belongs in its own module) and update clients and the design accordingly.
...
Copied from Perforce
Change: 181927
ServerID: perforce.ravenbrook.com
2013-05-19 14:27:24 +01:00
Richard Brooksby
78ef580722
Eliminating "impl" type tags and replacing them with uri-style file references.
...
Copied from Perforce
Change: 29900
ServerID: perforce.ravenbrook.com
2002-06-07 17:34:59 +01:00
Richard Brooksby
97075f7053
Updating cross references to design documents to html style, to go with master/design document tree.
...
Copied from Perforce
Change: 29897
ServerID: perforce.ravenbrook.com
2002-06-07 16:47:14 +01:00
Richard Brooksby
a0f676c8e1
Adding forward reference to licenses from copyright notices.
...
Adding licenses to a couple of files I missed.
Copied from Perforce
Change: 29837
ServerID: perforce.ravenbrook.com
2002-06-06 11:56:19 +01:00
Richard Brooksby
4301a6db0a
Adding licenses to source code files.
...
Copied from Perforce
Change: 29836
ServerID: perforce.ravenbrook.com
2002-06-06 11:44:23 +01:00
Nick Barnes
db4b3a6fa5
Remove trailing whitespace.
...
Copied from Perforce
Change: 25309
ServerID: perforce.ravenbrook.com
2001-12-17 15:18:17 +00:00
Richard Brooksby
c0bb4cd3cd
Removing hopenames from the master sources.
...
This change will be integrated but ignored (-ay) to the gg-epcore/union sources, so that they retain HopeNames.
Copied from Perforce
Change: 24911
ServerID: perforce.ravenbrook.com
2001-12-07 13:19:25 +00:00
Richard Brooksby
3d5e2ca85f
Adding hopenames back into the master sources, so that they can be included in the union sources along with the id keywords.
...
This was achieved by partially undoing changelist 24817, including an accidental corruption of eventgen.pl.
Copied from Perforce
Change: 24877
ServerID: perforce.ravenbrook.com
2001-12-06 18:14:02 +00:00
Richard Brooksby
b824e1c406
Updating copyright messages to say copyright 2001 ravenbrook throughout.
...
Adding some missing copyright messages.
Copied from Perforce
Change: 24818
ServerID: perforce.ravenbrook.com
2001-12-05 16:18:43 +00:00
Richard Brooksby
2589307099
Changing hopename keywords to id keywords throughout, to work with perforce.
...
Copied from Perforce
Change: 24817
ServerID: perforce.ravenbrook.com
2001-12-05 16:05:52 +00:00
Richard Brooksby
492dd3c684
Merging changes from union to masters. this incorporates pekka's updates: tuning and a type in amcsshe.c and some adding some missing checks in arenavm.c. it also brings our cope of their hopenames up to date.
...
Copied from Perforce
Change: 24815
ServerID: perforce.ravenbrook.com
2001-12-05 15:48:24 +00:00
Nick Barnes
7acfca905d
Branch imports for masters.
...
Copied from Perforce
Change: 23678
ServerID: perforce.ravenbrook.com
2001-10-31 14:40:56 +00:00