1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 08:41:47 -07:00
Commit graph

1216 commits

Author SHA1 Message Date
Richard Brooksby
a3e2e6bac3 Optimising splaytreeneighbours by observing that once one neighbour is found, the other neighbour is already in our hand in one of the side trees. this reduces the number of splays when coalescing.
Copied from Perforce
 Change: 184443
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
26f8f1ddcd Specialising left and right splay tree searches where no comparisons are necessary.
Copied from Perforce
 Change: 184442
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
be51fa6829 Adding tree integrity check debugging function.
Copied from Perforce
 Change: 184441
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
2a60898a04 Eliminating redundant passing of tree keys by adding a method to extract the key from a tree node.
Copied from Perforce
 Change: 184440
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
d6d382cc34 Avoid dropping children of found node in non-update case. oops.
Copied from Perforce
 Change: 184439
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
4c1c0009f8 Lifting out pointer-reversed updates.
Copied from Perforce
 Change: 184438
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
959bc6b460 Generalising pointer reversal of tree spines.
Copied from Perforce
 Change: 184437
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
4b18c932d8 Reducing excessive punctuation and removing unnecessary goto cases in splaysplay.
Copied from Perforce
 Change: 184436
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
8fccc81c82 Avoiding general compare when searching for first and last nodes in a tree.
Copied from Perforce
 Change: 184435
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
262de4e219 Fixing splaytreefind on empty tree. oops.
Regression test: xc/Debug/fbmtest 215526357

Copied from Perforce
 Change: 184434
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
50146c866f Splaysplay returns a compare to indicate the relationship of the new tree root to the key, eliminating some redundant tests, and making it more like treefind.
Allowing SplayTreeNext to deal with modification during iteration, so that iteration can be used to delete trees, for example.

Copied from Perforce
 Change: 184433
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
a97757482b Fixing abuses of res and resfail in the splay tree interface.
Copied from Perforce
 Change: 184432
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
e7c3417c87 Generalising splayrotate operations into treerotates.
Copied from Perforce
 Change: 184431
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
63d579da73 Replacing null with treeempty where that is intended.
Copied from Perforce
 Change: 184430
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
0b3372d1d2 Distinguishing tree keys (treekey) from generic void *.
Copied from Perforce
 Change: 184429
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
07ece0b4b3 Unifying splaycomparemethod with treecompare.
Copied from Perforce
 Change: 184428
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
a0435161f2 Simplifying splay tree update prototype and removing special null case.
Copied from Perforce
 Change: 184427
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
8a7f2671f4 Replacing splaynode with tree generally.
Copied from Perforce
 Change: 184426
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
b5f1710b3b Replacing splaynodestruct with treestruct and basic tree navigation operations in the splay tree implementation.
Copied from Perforce
 Change: 184425
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
cedb0c1c9b 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
fbb0d3be44 Adding basic generic binary tree datatype.
Copied from Perforce
 Change: 184423
 ServerID: perforce.ravenbrook.com
2014-02-23 10:41:07 +00:00
Gareth Rees
ce1ce29f74 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
Richard Brooksby
f85124fac3 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
ba1a4f78cb 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
9d0644c05e 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
7e219e4284 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
e4e59aa9bb 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
199a1261ed 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
c915c5abe7 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
7f590df09d 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
ad8e5e5cd4 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
4ce753ec45 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
b4c03d0ef1 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
0833d101a0 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
763c6af2bc 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
d3f9686d30 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
3077840ff8 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
2b5e126c48 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
40e4e93dec 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
60ada86df4 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
4329661aca 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
8b4c551f70 Bump version and copyright.
Copied from Perforce
 Change: 184275
 ServerID: perforce.ravenbrook.com
2014-01-31 16:41:37 +00:00
Richard Brooksby
c3a3429a2f 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
483133a19d 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
d206bd35b9 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
f2c70fe37a Clarifying a comment.
Copied from Perforce
 Change: 184262
 ServerID: perforce.ravenbrook.com
2014-01-31 13:50:16 +00:00
Richard Brooksby
e5f2846a2d 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
8861cdcb2b 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
b937a0b8fc 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
ecc0ab3dfe 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