Richard Brooksby
cae4514c1b
Merging branch/2016-03-13/defer-write-barrier into master sources.
...
Copied from Perforce
Change: 190380
ServerID: perforce.ravenbrook.com
2016-03-24 12:07:20 +00:00
Richard Brooksby
7a7913786c
Responding to review by gdr < https://info.ravenbrook.com/mail/2016/03/21/20-20-15/0/ >.
...
Copied from Perforce
Change: 190307
ServerID: perforce.ravenbrook.com
2016-03-22 16:32:10 +00:00
Richard Brooksby
b97bd74013
Renaming shield cache to shield queue.
...
Copied from Perforce
Change: 190220
ServerID: perforce.ravenbrook.com
2016-03-20 00:46:59 +00:00
Richard Brooksby
2469f09e6e
Improving design document with references and separating ideas from current implementation.
...
Copied from Perforce
Change: 190214
ServerID: perforce.ravenbrook.com
2016-03-19 23:31:00 +00:00
Richard Brooksby
fde3757bac
Tidying up and adding cross references to shiny new design document.
...
Copied from Perforce
Change: 190213
ServerID: perforce.ravenbrook.com
2016-03-19 23:07:53 +00:00
Richard Brooksby
7ab4a5c7cf
Catch-up merge from master sources to branch/2016-03-13/defer-write-barrier.
...
Copied from Perforce
Change: 190175
ServerID: perforce.ravenbrook.com
2016-03-17 20:14:47 +00:00
Richard Brooksby
91a08048b7
Design documentation, commentary, and code tidying.
...
Copied from Perforce
Change: 190172
ServerID: perforce.ravenbrook.com
2016-03-17 20:04:26 +00:00
Richard Brooksby
8df13d0bff
Shield cache that grows. improving commentary.
...
Copied from Perforce
Change: 190160
ServerID: perforce.ravenbrook.com
2016-03-17 16:55:14 +00:00
Richard Brooksby
641cdc164c
Catch-up merge from master sources to branch/2016-03-11/shield-coalesce.
...
Copied from Perforce
Change: 190150
ServerID: perforce.ravenbrook.com
2016-03-17 13:53:40 +00:00
Richard Brooksby
069dbc4e97
Justifying the default pause time.
...
Copied from Perforce
Change: 190049
ServerID: perforce.ravenbrook.com
2016-03-15 06:04:42 +00:00
Richard Brooksby
47dbed0eee
Tidying up naming of write barrier deferral.
...
Copied from Perforce
Change: 189960
ServerID: perforce.ravenbrook.com
2016-03-13 13:26:24 +00:00
Richard Brooksby
06af849502
Integrating write barrier deferral changes from branch/2014-08-18/non-incremental.
...
p4 integrate branch/2014-08-18/non-incremental/...@186975,186988 branch/2016-03-13/defer-write-barrier/...
Copied from Perforce
Change: 189943
ServerID: perforce.ravenbrook.com
2016-03-13 11:27:21 +00:00
Gareth Rees
167408b7e0
Implement pause time control.
...
Copied from Perforce
Change: 189921
ServerID: perforce.ravenbrook.com
2016-03-12 22:08:26 +00:00
Gareth Rees
31de518300
Catch-up merge from branch/2015-08-25/tradeoff to branch/2016-03-12/pause (to pick up the morework value in arenapoll).
...
Copied from Perforce
Change: 189918
ServerID: perforce.ravenbrook.com
2016-03-12 20:32:41 +00:00
Gareth Rees
f9041d9a20
Documentation and interface for pause time control (no implementation yet).
...
Copied from Perforce
Change: 189915
ServerID: perforce.ravenbrook.com
2016-03-12 20:25:33 +00:00
David Lovemore
dbbea04f7f
Bigger shield cache, to make coalescing more useful.
...
Copied from Perforce
Change: 189872
ServerID: perforce.ravenbrook.com
2016-03-11 17:05:45 +00:00
Richard Brooksby
c015827c36
Catch-up merge from master sources.
...
Copied from Perforce
Change: 189265
ServerID: perforce.ravenbrook.com
2016-02-17 11:04:51 +00:00
Gareth Rees
aa6a027c68
Catch-up merge from branch/2015-08-11/policy to branch/2015-08-25/tradeoff.
...
Copied from Perforce
Change: 188250
ServerID: perforce.ravenbrook.com
2015-09-04 19:13:28 +01:00
Gareth Rees
b43a56f9b5
Move arenadefaultzoneset to be adjacent to its todo.
...
Add comments for ArenaDefaultZONESET and LocusPrefDEFAULT.
Copied from Perforce
Change: 188237
ServerID: perforce.ravenbrook.com
2015-09-04 15:24:14 +01:00
Gareth Rees
b4db3bd09f
Introduce new type work representing a measure of work done by the collector. use this systematically to make the code clearer.
...
Copied from Perforce
Change: 188210
ServerID: perforce.ravenbrook.com
2015-09-03 13:01:55 +01:00
Gareth Rees
1f6522bd04
Catch-up merge from branch/2015-08-11/policy to branch/2015-08-25/tradeoff.
...
Copied from Perforce
Change: 188176
ServerID: perforce.ravenbrook.com
2015-08-25 19:35:03 +01:00
Gareth Rees
d506458eea
New function policycollectiontime estimates the time needed to collect the arena. mysterious constants are given names and moved to config.h.
...
Copied from Perforce
Change: 188160
ServerID: perforce.ravenbrook.com
2015-08-21 15:27:14 +01:00
Gareth Rees
703c1ee5f5
New function mps_arena_configure provides keyword argument interface to changing the properties of an arena.
...
New keyword arguments MPS_KEY_ARENA_COMMIT_LIMIT and MPS_KEY_SPARE_ARENA_COMMIT_LIMIT can be passed to mps_arena_create_k or mps_arena_configure.
Deprecate mps_arena_commit_limit_set and mps_arena_spare_commit_limit_set.
Copied from Perforce
Change: 188085
ServerID: perforce.ravenbrook.com
2015-08-06 17:02:51 +01:00
Gareth Rees
a960f642f1
Analysis justifying the value of stackprobedepth.
...
Copied from Perforce
Change: 187380
ServerID: perforce.ravenbrook.com
2014-10-24 10:16:28 +01:00
Gareth Rees
655e78f3be
Bring ring design up to date (excepting figures).
...
Add links from design documents to mail messages imported from Harlequin.
Copied from Perforce
Change: 187067
ServerID: perforce.ravenbrook.com
2014-09-27 16:11:21 +01:00
Gareth Rees
7c2e271e60
Rename segpref to locuspref -- this structure describes preferences for the placement of any kind of address, not just segments.
...
Add LocusPrefDescribe and use it in MVFFDescribe.
Copied from Perforce
Change: 187061
ServerID: perforce.ravenbrook.com
2014-09-27 11:27:00 +01:00
David Lovemore
b4460043e6
Added more control over write barrier. in particular separated scans after a hit.
...
Copied from Perforce
Change: 186988
ServerID: perforce.ravenbrook.com
2014-08-27 11:21:18 +01:00
David Lovemore
46d723c9dc
Added experimental control over write barrier eagerness.
...
The write barrier is only raised after three unnecessary scans.
Copied from Perforce
Change: 186975
ServerID: perforce.ravenbrook.com
2014-08-21 15:53:57 +01:00
David Lovemore
8c9353fe34
Add mps_key_arena_incremental option.
...
Avoid read and write barrier in non-incremental mode.
Add --non-incremental option to gcbench
Copied from Perforce
Change: 186969
ServerID: perforce.ravenbrook.com
2014-08-20 13:03:20 +01:00
David Lovemore
6abe840d06
set control_extend_by to 32768.
...
The CONTROL_EXTEND_BY value for the extend by on the control pool was set really small (4096) on the assumption that the control pool was not heavily used. However, since we allocate Seg's in the control pool and recycle them frequently, this assumption is no longer true.
Copied from Perforce
Change: 186832
ServerID: perforce.ravenbrook.com
2014-07-04 15:27:48 +01:00
Gareth Rees
37a15e8f3e
Don't repeat generation sizes in the comments (they could get out of sync).
...
Copied from Perforce
Change: 186827
ServerID: perforce.ravenbrook.com
2014-07-04 13:58:34 +01:00
David Lovemore
358a3c5fc6
Adjust generation sizes for the default chain.
...
Add release note recommending retuning of generation sizes.
Copied from Perforce
Change: 186824
ServerID: perforce.ravenbrook.com
2014-07-04 13:32:45 +01:00
Gareth Rees
9d1cec7942
Ensure that the amcss test case uses a wide range of arena grain sizes (by scaling up the whole allocation).
...
Remove hack from rnd_grain -- this was covering up a bug.
Base the AMC "large" segment determination on the requested object size, not the (rounded up) segment size.
Assert in the case where largeSize < extendBy: this has bad space performance.
Copied from Perforce
Change: 186755
ServerID: perforce.ravenbrook.com
2014-06-30 16:07:09 +01:00
Gareth Rees
414719db23
Round up the grain size in the client arena to arena_client_grain_size (otherwise the grain might be so small that the page table uses up all the space in the chunk).
...
Copied from Perforce
Change: 186689
ServerID: perforce.ravenbrook.com
2014-06-19 14:10:30 +01:00
David Lovemore
392e6a056a
Catch up merge from master/...@186577
...
Copied from Perforce
Change: 186582
ServerID: perforce.ravenbrook.com
2014-06-13 16:38:20 +01:00
Gareth Rees
a13a1aa1df
Catch-up merge from master sources @186564 to branch/2014-06-11/grain.
...
Copied from Perforce
Change: 186572
ServerID: perforce.ravenbrook.com
2014-06-13 15:30:46 +01:00
David Lovemore
adbb265043
Updated due to gdr's review comments in mail < https://info.ravenbrook.com/mail/2014/06/13/12-46-29/0/ >
...
Copied from Perforce
Change: 186569
ServerID: perforce.ravenbrook.com
2014-06-13 15:09:49 +01:00
Gareth Rees
5aba28db8d
Rename vmgrainsize to vmpagesize (because it is in fact the operating system page size) and to avoid confusion with the arena grain size.
...
Copied from Perforce
Change: 186543
ServerID: perforce.ravenbrook.com
2014-06-12 17:18:50 +01:00
Gareth Rees
a74d906fc5
Need a definition of vman_grain_size.
...
Copied from Perforce
Change: 186509
ServerID: perforce.ravenbrook.com
2014-06-11 17:39:57 +01:00
Gareth Rees
bfb0b771dd
Rename "arena alignment" to "arena grain size" to avoid confusion with ordinary structure alignment.
...
Copied from Perforce
Change: 186503
ServerID: perforce.ravenbrook.com
2014-06-11 17:13:03 +01:00
Gareth Rees
a08139899f
Catch-up merge from master sources @186481 to branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186484
ServerID: perforce.ravenbrook.com
2014-06-11 12:42:58 +01:00
David Lovemore
84ddecde2f
Amc now respects mps_key_extend_by keyword argument.
...
AMC also uses MPS_KEY_LARGE_SIZE keyword argument to specify what size objects need to be to live on their own segment.
Copied from Perforce
Change: 186480
ServerID: perforce.ravenbrook.com
2014-06-11 12:12:44 +01:00
Gareth Rees
317cad785d
Catch-up merge from master sources @186436 to branch/2014-04-08/align.
...
Copied from Perforce
Change: 186439
ServerID: perforce.ravenbrook.com
2014-06-08 16:30:53 +01:00
Gareth Rees
3704522c58
Catch-up merge from master sources @186352 to branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186355
ServerID: perforce.ravenbrook.com
2014-05-29 16:03:34 +01:00
Gareth Rees
13ba0ef139
Add comment explaining purpose of attribute_unused.
...
Copied from Perforce
Change: 186335
ServerID: perforce.ravenbrook.com
2014-05-28 17:24:46 +01:00
Gareth Rees
383d510d31
In light of performance findings, boost the default arena size to 256 mb. add a -m option to djbench so that we can test the effect of setting the initial arena size on the manual pool classes.
...
Copied from Perforce
Change: 186224
ServerID: perforce.ravenbrook.com
2014-05-20 23:25:03 +01:00
Gareth Rees
7cd4759316
Catch-up merge from branch/2014-03-30/addrset to branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186082
ServerID: perforce.ravenbrook.com
2014-05-13 16:27:17 +01:00
Gareth Rees
f4a4f1e250
Merge branch/2014-02-23/mvff-tune into branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186079
ServerID: perforce.ravenbrook.com
2014-05-13 16:10:51 +01:00
Gareth Rees
d44862dcf7
Ansi platform compiles and passes tests on windows. in detail:
...
* Move Windows-specific modules like vmw3.c out of commpre.nmk and into the platform-specific Nmake files.
* Set StackProbeDEPTH to 0 on the ANSI platform.
* New Nmake file ananmv.nmk builds the MPS for the ANSI platform using Microsoft Visual C/C++.
Copied from Perforce
Change: 186063
ServerID: perforce.ravenbrook.com
2014-05-13 10:12:56 +01:00
Gareth Rees
691195da96
Setenv requires _gnu_source, so get the headers in the right order so that the feature macros are set up in config.h before any system header is included.
...
Don't update _XOPEN_SOURCE if it's already set to a high enough value.
Copied from Perforce
Change: 186049
ServerID: perforce.ravenbrook.com
2014-05-12 19:48:01 +01:00