Richard Brooksby
d75cfe191c
Incorporating early commit limit checking into arena allocation policy.
...
Copied from Perforce
Change: 184240
ServerID: perforce.ravenbrook.com
2014-01-30 15:44:46 +00:00
Richard Brooksby
973575140f
Abstracting the allocation policy from arenaalloc in order to implement arena extension policy.
...
Copied from Perforce
Change: 184239
ServerID: perforce.ravenbrook.com
2014-01-30 15:44:46 +00:00
Richard Brooksby
e50418ce54
Tidying up the bootstrap so that every chunk gets added to the arena’s freecbs.
...
Copied from Perforce
Change: 184238
ServerID: perforce.ravenbrook.com
2014-01-30 15:44:46 +00:00
Richard Brooksby
a1d6492998
Generalising allocation of initial page for the arena’s freecbs so that it can be used when new chunks are added.
...
Copied from Perforce
Change: 184237
ServerID: perforce.ravenbrook.com
2014-01-30 15:44:46 +00:00
Richard Brooksby
e27cf4b361
Merging from branch //info.ravenbrook.com/project/mps/branch/2014-01-29/mps-chain-zones/... in order to eliminate generational considerations from the vm arena's placement policy.
...
Copied from Perforce
Change: 184233
ServerID: perforce.ravenbrook.com
2014-01-30 15:29:46 +00:00
Richard Brooksby
4b50f3688b
Adding mps_key_gen generation keyword to pools that take a chain (except amc), so that you can specify which generation to allocate in by default. this allows some flexibility when the client can predict the lifetimes of objects.
...
The AWL and LO pools allocate into generation 1 of the arena default chain if neither MPS_KEY_CHAIN or MPS_KEY_GEN is specified, simulating the default setup before the chain-zones branch.
Copied from Perforce
Change: 184231
ServerID: perforce.ravenbrook.com
2014-01-30 14:27:09 +00:00
Richard Brooksby
17b69133b5
The ams pool no longer requires a chain argument, but defaults to the arena default chain.
...
Chains passed to the AMS pool are no longer required to contain a single generation, though the AMS will only use the first generation by default.
Copied from Perforce
Change: 184229
ServerID: perforce.ravenbrook.com
2014-01-30 13:21:45 +00:00
Richard Brooksby
63f1fcedc2
Converting ams stress test to use keyword arguments.
...
Copied from Perforce
Change: 184228
ServerID: perforce.ravenbrook.com
2014-01-30 13:18:35 +00:00
Richard Brooksby
f30fd7ef84
The chain parameter to amc is now optional, defaulting to the arena’s default chain.
...
AWL and LO accept a chain parameter, and also default to the arena’s default chain, rather than creating their own dummy chains.
Copied from Perforce
Change: 184227
ServerID: perforce.ravenbrook.com
2014-01-30 13:00:46 +00:00
Richard Brooksby
1982233b78
Adding a default chain to the arena. not used anywhere yet.
...
Copied from Perforce
Change: 184224
ServerID: perforce.ravenbrook.com
2014-01-29 18:07:43 +00:00
Richard Brooksby
e02a69f88b
The awl and lo pools were allocating their segments along with other pool’s generation 1, while accounting sizes into generation 0. in fact, this “generation 1” was really a kind of placement “clump” and the segments really lived in generation 0. however, this confused the new chainalloc because there are no longer any “clumps” maintained by the arena, causing awlut to fail. fixed awl and lo to be truthful about the generation they’re allocating in. placement concerns have been removed.
...
Copied from Perforce
Change: 184220
ServerID: perforce.ravenbrook.com
2014-01-29 17:15:31 +00:00
Richard Brooksby
eba2dc5a54
Bringing strategy design up to date with changes to zone allocation.
...
Adding design documents to Xcode project for easier editing and source control.
Copied from Perforce
Change: 184218
ServerID: perforce.ravenbrook.com
2014-01-29 15:26:04 +00:00
Richard Brooksby
8e4e0f066e
Eliminating dodgy use of *segprefdefault() which could lead to implicit calls to memcpy.
...
Copied from Perforce
Change: 184217
ServerID: perforce.ravenbrook.com
2014-01-29 15:13:22 +00:00
Richard Brooksby
f719851f50
Since the dynamic generation is shared between chains (for some reason) using its unified zone set, rather than keeping a special zone set per chain, which would’ve used up more zones.
...
Using arena->topGen->mortality for the dynamic generation’s mortality, rather than a global variable.
Copied from Perforce
Change: 184216
ServerID: perforce.ravenbrook.com
2014-01-29 13:49:42 +00:00
Richard Brooksby
f1abe0e30f
Abolishing the redundant generation to zone map in the vm arena, and replacing it with chainalloc, which allocates segments within a generation.
...
Generations from different chains will no longer share the same zone sets, and will not be collected together. To get this behaviour, use the same chain, as documented.
Copied from Perforce
Change: 184213
ServerID: perforce.ravenbrook.com
2014-01-29 12:54:05 +00:00
Richard Brooksby
c314c2d4d6
Branching to clean up the way chains allocate in zones.
...
Copied from Perforce
Change: 184211
ServerID: perforce.ravenbrook.com
2014-01-29 12:50:18 +00:00
Richard Brooksby
deb3237c44
Allowing splayfindfirst to continue to search even if the treetest is not precise, allowing the arena allocator to search for free areas using a zone preference.
...
Copied from Perforce
Change: 184129
ServerID: perforce.ravenbrook.com
2014-01-26 14:01:37 +00:00
Richard Brooksby
10e9a638e4
Fix broken hysteresis in tract mapping. only purge spare pages if it’s possible to free a chunk, rather than speculatively every reclaim. see < https://info.ravenbrook.com/mail/2014/01/25/17-37-52/0/ >.
...
Copied from Perforce
Change: 184125
ServerID: perforce.ravenbrook.com
2014-01-25 18:00:51 +00:00
Richard Brooksby
115af8c270
Catch-up merge from master to pick up improvements to segment iteration.
...
Copied from Perforce
Change: 184122
ServerID: perforce.ravenbrook.com
2014-01-25 17:01:57 +00:00
Richard Brooksby
56d48bbd1d
iterating over segments using the pool and segment rings, rather than scanning the tract table, which may be full of irrelevant tracts, especially when non-gc pools are large. see < https://info.ravenbrook.com/mail/2014/01/25/12-16-09/0/ >.
...
Copied from Perforce
Change: 184120
ServerID: perforce.ravenbrook.com
2014-01-25 15:33:10 +00:00
Richard Brooksby
893ac1da13
Adding a rash configuration to xcode builds.
...
Copied from Perforce
Change: 184117
ServerID: perforce.ravenbrook.com
2014-01-25 15:25:52 +00:00
Richard Brooksby
a788a9efdd
Ignoring a.out (default output from cc).
...
Copied from Perforce
Change: 184116
ServerID: perforce.ravenbrook.com
2014-01-25 15:24:28 +00:00
Richard Brooksby
a72f6fb94f
Catch-up merges from master to pick up xcode profiling tweak.
...
Copied from Perforce
Change: 184112
ServerID: perforce.ravenbrook.com
2014-01-24 16:09:28 +00:00
Richard Brooksby
f91a987e32
Inclusion order mysteriously prevents profiling under xcode.
...
Copied from Perforce
Change: 184111
ServerID: perforce.ravenbrook.com
2014-01-24 16:00:49 +00:00
Richard Brooksby
52a83b4393
Catch-up merge from master to pick up "dj" benchmark.
...
Copied from Perforce
Change: 184110
ServerID: perforce.ravenbrook.com
2014-01-24 15:59:05 +00:00
Richard Brooksby
8ef0ecb155
Merging the "dj" benchmark from the benchmarking development branch.
...
Copied from Perforce
Change: 184106
ServerID: perforce.ravenbrook.com
2014-01-24 15:29:28 +00:00
Richard Brooksby
59808b800d
Adding const qualifier to various strings as required by xcode.
...
Copied from Perforce
Change: 184105
ServerID: perforce.ravenbrook.com
2014-01-24 15:07:33 +00:00
Richard Brooksby
199ef9ca11
Catch-up merge from master.
...
Copied from Perforce
Change: 184103
ServerID: perforce.ravenbrook.com
2014-01-24 14:22:27 +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
69895308e5
Hacky clean-up of the cbs' mfs tracts so that the arena can shut down successfully.
...
Copied from Perforce
Change: 184072
ServerID: perforce.ravenbrook.com
2014-01-21 16:10:16 +00:00
Richard Brooksby
be42effdb3
First draft of freeing into the arena's freecbs.
...
Copied from Perforce
Change: 184052
ServerID: perforce.ravenbrook.com
2014-01-18 18:24:07 +00:00
Richard Brooksby
32d8c32b6d
Making the reservoir use arenaalloc and arenafree like a good citizen, rather than bypassing them, so that it correctly gets memory from the freecbs.
...
Copied from Perforce
Change: 184051
ServerID: perforce.ravenbrook.com
2014-01-18 17:45:56 +00:00
Richard Brooksby
6954977079
First draft of allocating using the freecbs. arenaalloc finds a free address range in the cbs and asks the arena class to mark it allocated, rather than the arena class doing the search. plenty still missing. no freeing.
...
Copied from Perforce
Change: 184050
ServerID: perforce.ravenbrook.com
2014-01-18 17:16:10 +00:00
Richard Brooksby
44de7246e5
Creating and tearing down the arena freecbs that will hold free address ranges.
...
Copied from Perforce
Change: 184049
ServerID: perforce.ravenbrook.com
2014-01-18 16:25:08 +00:00
Richard Brooksby
3e1d93b97d
Part of changelist 184047. oops.
...
Copied from Perforce
Change: 184048
ServerID: perforce.ravenbrook.com
2014-01-18 15:46:18 +00:00
Richard Brooksby
d04bf862b9
Poolmfs can take a zero extendby so that it never extends itself, and have memory added using mfsextend. this allows the mfs pool to be used to store blocks for the arena's cbs before the tract allocator exists.
...
Copied from Perforce
Change: 184047
ServerID: perforce.ravenbrook.com
2014-01-18 15:45:22 +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
Richard Brooksby
bdea108ad8
Branching to develop tract allocation using cbs.
...
Copied from Perforce
Change: 184042
ServerID: perforce.ravenbrook.com
2014-01-17 15:29:28 +00:00
Gareth Rees
22d49439b6
Turn on unicode_literals so that this runs on python 2.7.
...
Copied from Perforce
Change: 184037
ServerID: perforce.ravenbrook.com
2014-01-17 11:10:56 +00:00
Gareth Rees
75dddf45a8
Oops, python 2.7 doesn't have open(..., encoding=).
...
Copied from Perforce
Change: 184034
ServerID: perforce.ravenbrook.com
2014-01-16 18:08:24 +00:00
Gareth Rees
283d668be3
Make portable to python 3.3.
...
Copied from Perforce
Change: 184032
ServerID: perforce.ravenbrook.com
2014-01-16 17:07:56 +00:00
Gareth Rees
adee119fa2
P4 integrate, not p4 branch.
...
Copied from Perforce
Change: 184019
ServerID: perforce.ravenbrook.com
2014-01-15 11:28:02 +00:00
Gareth Rees
bdbec51a96
Missing steps (ensure branch is mapped in client; make initial commit on branch).
...
Copied from Perforce
Change: 184015
ServerID: perforce.ravenbrook.com
2014-01-15 10:19:58 +00:00
Gareth Rees
a27adf1d84
Fix date so that it is recognized as restructuredtext.
...
Copied from Perforce
Change: 184012
ServerID: perforce.ravenbrook.com
2014-01-14 20:20:19 +00:00
Gareth Rees
422f71be8d
Fix history entry.
...
Copied from Perforce
Change: 184011
ServerID: perforce.ravenbrook.com
2014-01-14 20:06:10 +00:00
Gareth Rees
641a28ffd4
Fix cross-reference.
...
Copied from Perforce
Change: 184010
ServerID: perforce.ravenbrook.com
2014-01-14 20:04:46 +00:00
Gareth Rees
99a1680632
Fix cross-references.
...
Copied from Perforce
Change: 184008
ServerID: perforce.ravenbrook.com
2014-01-14 20:00:03 +00:00
Gareth Rees
20f5586ca2
Update procedures to include git-fusion steps.
...
Copied from Perforce
Change: 184005
ServerID: perforce.ravenbrook.com
2014-01-14 17:04:59 +00:00
Gareth Rees
8c076d0619
Fix typo.
...
Copied from Perforce
Change: 183987
ServerID: perforce.ravenbrook.com
2014-01-14 10:44:17 +00:00