1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-24 22:40:51 -08:00
Commit graph

5057 commits

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