1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-05-18 19:06:18 -07:00
Commit graph

5082 commits

Author SHA1 Message Date
Gareth Rees
c1ef37731a Refactor the computation of the chunk size into its own function, thus avoiding an "unreachable code" error from clang.
Copied from Perforce
 Change: 184482
 ServerID: perforce.ravenbrook.com
2014-02-24 21:32:22 +00:00
Gareth Rees
09dd8e7027 Avoid use of unreachable code in protcatchthread on os x.
Copied from Perforce
 Change: 184478
 ServerID: perforce.ravenbrook.com
2014-02-24 18:07:14 +00:00
Richard Brooksby
372b8de373 Adding missing keyword expansion to c source files.
Copied from Perforce
 Change: 184462
 ServerID: perforce.ravenbrook.com
2014-02-23 20:42:38 +00:00
David Lovemore
c34562d0d4 Add pin-leaf option to gcbench.
Remove default chain from gcbench.

Copied from Perforce
 Change: 184454
 ServerID: perforce.ravenbrook.com
2014-02-23 13:44:54 +00:00
Gareth Rees
8d956f1dc9 Add missing mps_args_done.
Copied from Perforce
 Change: 184404
 ServerID: perforce.ravenbrook.com
2014-02-20 16:10:55 +00:00
Gareth Rees
19fa48cba5 Catch-up merge from master sources to nailboard branch.
Copied from Perforce
 Change: 184402
 ServerID: perforce.ravenbrook.com
2014-02-20 14:48:39 +00:00
Gareth Rees
426561a8b3 Avoid "discard qualifiers" error from xcode.
Copied from Perforce
 Change: 184401
 ServerID: perforce.ravenbrook.com
2014-02-20 14:45:10 +00:00
Gareth Rees
a889f62ded Merge change 184399 (avoid warnings from xcode) from scheme.c to scheme-advanced.c.
Copied from Perforce
 Change: 184400
 ServerID: perforce.ravenbrook.com
2014-02-20 14:41:05 +00:00
Gareth Rees
b9b8bdd231 Avoid warnings from xcode when compiling scheme.c.
Copied from Perforce
 Change: 184399
 ServerID: perforce.ravenbrook.com
2014-02-20 14:38:53 +00:00
Gareth Rees
12ea27d7e2 Merge change 184105 (addition of const) from scheme.c to scheme-advanced.c.
Copied from Perforce
 Change: 184397
 ServerID: perforce.ravenbrook.com
2014-02-20 14:20:41 +00:00
Richard Brooksby
005a9d56da Detaching buffers from segments before freeing them in mvt.
Copied from Perforce
 Change: 184389
 ServerID: perforce.ravenbrook.com
2014-02-19 13:58:37 +00:00
Richard Brooksby
2efd201955 Declaring result codes using a relational macro, so that tests can print more meaningful output, and to eliminate redundant code.
Copied from Perforce
 Change: 184382
 ServerID: perforce.ravenbrook.com
2014-02-19 11:55:43 +00:00
Richard Brooksby
d1e7a30752 Removing unused variable discovered by gcc.
Copied from Perforce
 Change: 184380
 ServerID: perforce.ravenbrook.com
2014-02-19 10:55:10 +00:00
Richard Brooksby
978c89c271 Merging spare-ring branch into master, from //info.ravenbrook.com/project/mps/branch/2014-01-25/spare-ring/...
Copied from Perforce
 Change: 184359
 ServerID: perforce.ravenbrook.com
2014-02-17 17:05:37 +00:00
Richard Brooksby
daca17fe7e Changes outside the code directory that should have been in changelist 184342. oops.
Copied from Perforce
 Change: 184358
 ServerID: perforce.ravenbrook.com
2014-02-17 17:04:23 +00:00
Richard Brooksby
121113c697 Fixing up the build on freebsd (fri3gc)
Copied from Perforce
 Change: 184356
 ServerID: perforce.ravenbrook.com
2014-02-17 17:00:08 +00:00
Richard Brooksby
4fc8971802 Minor updates in response to review. see https://info.ravenbrook.com/mail/2014/02/17/16-27-18/0/
Copied from Perforce
 Change: 184354
 ServerID: perforce.ravenbrook.com
2014-02-17 16:45:12 +00:00
Richard Brooksby
d8cb7e9a01 Catch-up merge from master, mainly to pick up chain-zones merge.
Copied from Perforce
 Change: 184343
 ServerID: perforce.ravenbrook.com
2014-02-14 15:23:36 +00:00
Richard Brooksby
e6ff3a648f Merging branch //info.ravenbrook.com/project/mps/branch/2014-01-29/mps-chain-zones/... into master.
Copied from Perforce
 Change: 184342
 ServerID: perforce.ravenbrook.com
2014-02-14 15:15:07 +00:00
Richard Brooksby
2b0f94df6c Responding to review comments. see <https://info.ravenbrook.com/mail/2014/02/14/14-38-07/0/>.
Copied from Perforce
 Change: 184340
 ServerID: perforce.ravenbrook.com
2014-02-14 15:05:18 +00:00
Richard Brooksby
8679bb210f Catch-up merge from master, mainly to pick up gcbench.
Copied from Perforce
 Change: 184335
 ServerID: perforce.ravenbrook.com
2014-02-12 17:39:31 +00:00
Richard Brooksby
bc47522ae2 Abstracting partially mapped page tables into a sparsearray abstract datatype, removing a great deal of complexity from the vm arena, and some unnecessary double-initialisation and scanning loops during allocation.
Copied from Perforce
 Change: 184333
 ServerID: perforce.ravenbrook.com
2014-02-12 17:32:20 +00:00
Richard Brooksby
e0c2c23d00 Clarifying how the beginning of the page table gets unmapped.
Copied from Perforce
 Change: 184332
 ServerID: perforce.ravenbrook.com
2014-02-12 15:06:04 +00:00
Richard Brooksby
e9f3f70cce Responding to review comments. see <https://info.ravenbrook.com/mail/2014/02/12/11-30-00/0/>.
Copied from Perforce
 Change: 184331
 ServerID: perforce.ravenbrook.com
2014-02-12 11:31:00 +00:00
Richard Brooksby
e59678ecf9 Purging half of the spare memory, rather than just enough to get under the limit, so that there aren’t many small unmaps, and many scans for spare pages.
Copied from Perforce
 Change: 184326
 ServerID: perforce.ravenbrook.com
2014-02-11 18:26:00 +00:00
Richard Brooksby
9e057d1bcc Fixing boundary cases for unmapping page table pages when there aren’t a nice whole number of descriptors on each page.
Copied from Perforce
 Change: 184325
 ServerID: perforce.ravenbrook.com
2014-02-11 17:18:21 +00:00
Richard Brooksby
f1d5750639 Adding a cache of free pages per zone to the arena, so that we recycle single pages fast, especially after each reclaim.
Copied from Perforce
 Change: 184324
 ServerID: perforce.ravenbrook.com
2014-02-11 15:23:32 +00:00
Richard Brooksby
9bc635b24d Further tidying up of the page descriptor and naming.
Copied from Perforce
 Change: 184323
 ServerID: perforce.ravenbrook.com
2014-02-11 14:14:16 +00:00
Richard Brooksby
f9e9805b39 Encoding the page state in the bottom two bits of the first field, rather than using up a whole word, in order to make room for a free list pointer.
Copied from Perforce
 Change: 184322
 ServerID: perforce.ravenbrook.com
2014-02-11 13:41:57 +00:00
David Lovemore
14a09c99a3 Add gcbench, a parameterizable benchmark for gc pools.
Copied from Perforce
 Change: 184312
 ServerID: perforce.ravenbrook.com
2014-02-11 11:54:27 +00:00
Richard Brooksby
f8ac78ba0f Improving commentary on page table unmapping code in response to review. see <https://info.ravenbrook.com/mail/2014/01/31/17-26-12/0/>.
Copied from Perforce
 Change: 184291
 ServerID: perforce.ravenbrook.com
2014-02-04 16:56:36 +00:00
Gareth Rees
ad5b956475 Bump version and copyright.
Copied from Perforce
 Change: 184275
 ServerID: perforce.ravenbrook.com
2014-01-31 16:41:37 +00:00
Gareth Rees
6d30195657 Better user documentation for generation chains:
* In the pool class properties table, note whether a pool class uses generational garbage collection.
* The arena has a default generation chain.
* The MPS_KEY_CHAIN keyword argument is now optional when creating an AMC, AMCZ or AMS pool.
* The pool classes AWL and LO now take an optional MPS_KEY_CHAIN keyword argument.
* The pool classes AMS, AWL and LO now take an optional MPS_KEY_GEN keyword argument specifying the generation for new objects.
* Remove material about generation chains from the user guide (just use the arena's default generation chain).

Copied from Perforce
 Change: 184273
 ServerID: perforce.ravenbrook.com
2014-01-31 16:23:04 +00:00
Richard Brooksby
8a3dc7c98a Fixing gcc warnings found in https://travis-ci.org/ravenbrook/mps-temporary/jobs/17977403
Copied from Perforce
 Change: 184271
 ServerID: perforce.ravenbrook.com
2014-01-31 15:49:14 +00:00
Richard Brooksby
9cec005f66 Fixing awl and lo to actually allocate in the generation requested.
Copied from Perforce
 Change: 184269
 ServerID: perforce.ravenbrook.com
2014-01-31 15:27:51 +00:00
Richard Brooksby
66a05e1f05 Changes from review comments made in <https://info.ravenbrook.com/mail/2014/01/31/13-40-25/0/>.
ArenaSpareCommitExceeded changed to ArenaPurgeSpare so that the arena can properly reduce the amount of spare memory when setting the commit limit etc.
pagesMarkAllocated promptly unmaps page table pages in its error path.
Miscellaneous clarifications and extra checking.

Copied from Perforce
 Change: 184267
 ServerID: perforce.ravenbrook.com
2014-01-31 15:21:21 +00:00
Richard Brooksby
34f5aece3d Clarifying a comment.
Copied from Perforce
 Change: 184262
 ServerID: perforce.ravenbrook.com
2014-01-31 13:50:16 +00:00
Richard Brooksby
7526f5abe8 Keeping a single ring of spare chunks in the vm arena, in lru order, so that spare pages are unmapped closer to lru.
Copied from Perforce
 Change: 184251
 ServerID: perforce.ravenbrook.com
2014-01-31 09:36:42 +00:00
Richard Brooksby
2b08236430 Using a more robust page table unmapping method that catches pages previously left mapped in the error page of pagesmarkallocated.
Test run passes.

Copied from Perforce
 Change: 184250
 ServerID: perforce.ravenbrook.com
2014-01-31 02:05:11 +00:00
Richard Brooksby
43602ffd58 Attempting to correct the unmapping of the page table. still doesn’t quite work.
Copied from Perforce
 Change: 184249
 ServerID: perforce.ravenbrook.com
2014-01-31 00:03:32 +00:00
Richard Brooksby
ce329f192e Abolishing the spare pages bit table.
Not quite working yet. This code fails to unmap unused page table pages, and so triggers an assertion at chunk finish.

Copied from Perforce
 Change: 184246
 ServerID: perforce.ravenbrook.com
2014-01-30 19:58:36 +00:00
Richard Brooksby
0296f9c04a Adding spare pages to a ring within each chunk, so that they can be found without a bit table scan.
Spare pages are returned to the OS using the ring in roughly LRU order.
Only enough spare pages are returned to maintain hysteresis, rather than all of them.
Nearly ready to strip out the noSparePages bit table.

Copied from Perforce
 Change: 184245
 ServerID: perforce.ravenbrook.com
2014-01-30 19:58:36 +00:00
Richard Brooksby
4f843ac4f4 Branching to improve efficiency of spare page search using a ring rather than a bit table scan.
Copied from Perforce
 Change: 184243
 ServerID: perforce.ravenbrook.com
2014-01-30 19:48:55 +00:00
Richard Brooksby
f0ca8855e3 Converting some ancient “@@@@“ marked items into todo marked actions.
Copied from Perforce
 Change: 184261
 ServerID: perforce.ravenbrook.com
2014-01-30 19:33:14 +00:00
Gareth Rees
61c4d8488e Fix the formatting.
Copied from Perforce
 Change: 184236
 ServerID: perforce.ravenbrook.com
2014-01-30 15:34:32 +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