Gareth Rees
6a965b5ff0
Handle partial allocation failure by marking allocated pages spare and purging, as suggested by rb in review.
...
Copied from Perforce
Change: 195997
2022-01-17 20:19:08 +00:00
Gareth Rees
71b05de30f
Eliminate pagestate and pagepoolunion: spare pages are now represented by the spare page land, and free/allocated pages can be distinguished using the pool pointer.
...
Copied from Perforce
Change: 195991
2022-01-17 20:19:08 +00:00
Gareth Rees
49a20700a7
Can't assert that res == reslimit since it may be an injected memory allocation failure from fotest.
...
Copied from Perforce
Change: 195988
2022-01-17 20:19:07 +00:00
Gareth Rees
b0a1af5c05
Represent the spare memory as a land.
2022-01-17 20:19:07 +00:00
Gareth Rees
f47c389a52
Fix indentation of second clause of license.
2020-08-30 10:13:06 +01:00
Gareth Rees
af0f431eda
Use https: instead of http: when linking to the ravenbrook web site.
2020-08-30 10:13:03 +01:00
Peter Jackson
4de2606846
Publish licence updates in code directory.
...
Publish minor changes to readme and configure files in main directory.
Main directory and code directory licence texts are now fully updated.
Copied from Perforce
Change: 196994
2020-06-11 17:05:40 +01:00
Gareth Rees
4eda4e85c7
Use tags with dots; regularize design references from code.
...
Copied from Perforce
Change: 195761
2018-11-29 17:12:29 +00:00
Gareth Rees
77506b67e7
There's no point keeping the definitions of old events, especially since we have changed the event format. name events consistently with initial capital letters and put them in alphabetical order.
...
Copied from Perforce
Change: 195231
2018-10-12 13:01:12 +01:00
Gareth Rees
882d86bac1
Remove call to pause_end from tracedestroy; see < https://info.ravenbrook.com/mail/2018/10/12/10-20-07/0/ >
...
The MPS passes the number of system pools to the monitor via the ArenaCreate events, to avoid the monitor having to know how many this is.
Copied from Perforce
Change: 195227
2018-10-12 12:35:55 +01:00
Gareth Rees
d2d2895c03
Catch-up merge from master sources at changelevel 194022 to branch/2018-06-20/monitor.
...
Copied from Perforce
Change: 195071
2018-09-15 21:29:28 +01:00
Gareth Rees
77ed9d9f4f
Address points 1-10, 13-14 from < https://info.ravenbrook.com/mail/2018/08/03/10-09-09/0/ >
...
Copied from Perforce
Change: 194942
2018-08-13 08:10:55 +01:00
Gareth Rees
bcb24de010
Catch-up merge from master sources at changelevel 194869 to branch/2016-03-04/spare-fraction.
...
Copied from Perforce
Change: 194872
2018-08-02 15:14:23 +01:00
Gareth Rees
f482816cea
Undo change 194718 (merge branch/2016-03-31/page-sparering-elim into the master sources) because of performance regression < https://info.ravenbrook.com/mail/2018/07/29/16-19-19/0/ >
...
Copied from Perforce
Change: 194755
2018-07-29 19:37:31 +01:00
Gareth Rees
33f0739638
Correct comment following review by dl < https://info.ravenbrook.com/mail/2018/07/19/09-55-18/0/ >
...
Copied from Perforce
Change: 194709
2018-07-23 10:58:30 +01:00
Gareth Rees
f8e8c3b35c
Catch-up merge from master sources at changelevel 194475 to branch/2016-03-31/page-sparering-elim.
...
Copied from Perforce
Change: 194478
2018-07-06 14:45:20 +01:00
Gareth Rees
7a0ffd56fd
Fix issues identified in review by gdr < https://info.ravenbrook.com/mail/2018/07/06/09-16-30/0/ >
...
Copied from Perforce
Change: 194464
2018-07-06 10:40:23 +01:00
Gareth Rees
aea2ed3811
Handle deletion of arenas and pools (they often get recreated at the same addresses so this is vital).
...
Sort the events in batches so that, for example, we get PoolFinish before ArenaDestroy.
Emit ArenaDestroy event after finishing all its pools.
Add arena parameter to PoolFinish event.
Restore top-down logging of events (no need to order them the telemetry output, since the monitor sorts them).
Add comments for all the events used by the monitor.
Include the arena's name in the pool's name when there are multiple arenas.
Copied from Perforce
Change: 194112
2018-06-23 15:37:11 +01:00
Gareth Rees
c3a7104eff
Label the time series in the monitor.
...
In telemetry output, distinguish between labelling of (client) addresses and (MPS-internal) pointers, to avoid transgressing the distinction.
Add arena grain size, class, and serial number to ArenaCreate* events.
Add pool class and serial number to PoolInit event.
Copied from Perforce
Change: 194086
2018-06-22 11:05:46 +01:00
Gareth Rees
17c1449096
Check that segment classes override sets of related methods.
...
Add missing finish functions amcSegFinish, mrgLinkSegFinish, mrgRefSegFinish, sncSegFinish.
Check all class constructor results.
Copied from Perforce
Change: 193055
ServerID: perforce.ravenbrook.com
2017-03-30 11:37:41 +01:00
Gareth Rees
d8c32f0d3f
New functions mps_arena_busy and mps_arena_postmortem, plus test coverage.
...
Copied from Perforce
Change: 192247
ServerID: perforce.ravenbrook.com
2016-09-08 13:55:43 +01:00
Richard Brooksby
2065bf5351
Renaming class fields called "protocol" to "instclassstruct" in line with usual mps convention.
...
Copied from Perforce
Change: 191685
ServerID: perforce.ravenbrook.com
2016-04-27 14:25:54 +01:00
Richard Brooksby
139c44155b
Converting arena finish and describe methods to specialize instfinish and instdescribe.
...
Copied from Perforce
Change: 191614
ServerID: perforce.ravenbrook.com
2016-04-23 16:31:26 +01:00
Gareth Rees
10f07e4e0b
The computed chunk size is the smallest size with a given number of usable bytes -- the actual chunk may be one grain larger.
...
Copied from Perforce
Change: 191574
ServerID: perforce.ravenbrook.com
2016-04-22 17:04:50 +01:00
Richard Brooksby
71db43d79b
Minor comment fix.
...
Copied from Perforce
Change: 191481
ServerID: perforce.ravenbrook.com
2016-04-21 15:27:42 +01:00
Richard Brooksby
f288d65473
Removing bogus arenatrivdescribe and turning arenadescribe the right way in.
...
Copied from Perforce
Change: 191480
ServerID: perforce.ravenbrook.com
2016-04-21 15:27:41 +01:00
Richard Brooksby
efb1d94578
Catch-up merge from master sources to branch/2016-04-08/protidying.
...
Copied from Perforce
Change: 191471
ServerID: perforce.ravenbrook.com
2016-04-21 14:46:10 +01:00
Gareth Rees
7e8d63a21c
Merge branch/2016-04-11/job003998.
...
Copied from Perforce
Change: 191388
ServerID: perforce.ravenbrook.com
2016-04-20 17:56:59 +01:00
Richard Brooksby
af570f18f9
Eliminating vmarena2arena and arena2vmarena in favour of mustbea.
...
Copied from Perforce
Change: 191306
ServerID: perforce.ravenbrook.com
2016-04-19 23:00:02 +01:00
Richard Brooksby
f1af541a95
Removing a note about initialization order that no longer applies.
...
Copied from Perforce
Change: 191305
ServerID: perforce.ravenbrook.com
2016-04-19 23:00:02 +01:00
Richard Brooksby
32250731d7
Avoid using "class" as an identifier, since tools like lldb parse expressions as c++, and it can't be named.
...
Copied from Perforce
Change: 191304
ServerID: perforce.ravenbrook.com
2016-04-19 23:00:02 +01:00
Gareth Rees
6b580943b2
Make it clear where tags are defined and where they are referenced, as suggested by rb in review.
...
Copied from Perforce
Change: 191288
ServerID: perforce.ravenbrook.com
2016-04-19 19:24:46 +01:00
Richard Brooksby
c708f93154
Eliminating classdef.h by defining the class level when declaring a class.
...
Copied from Perforce
Change: 191235
ServerID: perforce.ravenbrook.com
2016-04-19 14:59:30 +01:00
Gareth Rees
939263f130
No need to declare or set vmem1 if we are not going to use it. this avoids "variable ‘vmem1’ set but not used" warning from gcc.
...
Copied from Perforce
Change: 191199
ServerID: perforce.ravenbrook.com
2016-04-16 14:14:31 +01:00
Gareth Rees
942bee5823
Compile out statistic declarations in non-statistical varieties (at the cost of some syntax checking).
...
Add some missing STATISTIC guards where statistics are used.
Add design documentation.
Avoid unnecessary distinction between STATISTIC and STATISTIC_STAT (both result in statements).
Copied from Perforce
Change: 191178
ServerID: perforce.ravenbrook.com
2016-04-16 12:07:10 +01:00
Gareth Rees
e00a008b72
When growing an arena: (i) don't create a chunk that's too small for the allocation that's going to follow; (ii) don't create a chunk that's larger than necessary.
...
Copied from Perforce
Change: 190952
ServerID: perforce.ravenbrook.com
2016-04-11 20:33:38 +01:00
Richard Brooksby
12d4dfda16
Eliminating generated classof* and setclassof* functions in favour of checked poly macros.
...
Copied from Perforce
Change: 190938
ServerID: perforce.ravenbrook.com
2016-04-11 18:06:47 +01:00
Richard Brooksby
5307650059
Implementing nextmethod and replacing all uses of superclass with it.
...
Copied from Perforce
Change: 190935
ServerID: perforce.ravenbrook.com
2016-04-11 16:54:39 +01:00
Richard Brooksby
a38d6e7178
Making all static next-method calls look similar.
...
Copied from Perforce
Change: 190934
ServerID: perforce.ravenbrook.com
2016-04-11 16:35:43 +01:00
Richard Brooksby
c4ef464d0e
Using superclass init and finish in the arena bootstrap and teardown.
...
Copied from Perforce
Change: 190895
ServerID: perforce.ravenbrook.com
2016-04-11 13:35:16 +01:00
Richard Brooksby
43b3f1a5cb
Generating a static superclass mapping and eliminating other superclass macros.
...
Copied from Perforce
Change: 190827
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:20 +01:00
Richard Brooksby
1d28eaff07
Eliminating the concept of "alias classes" in favour of "kinds".
...
Copied from Perforce
Change: 190825
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:20 +01:00
Richard Brooksby
2e191a810e
Referring to classes by their base identifiers.
...
Copied from Perforce
Change: 190823
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:20 +01:00
Richard Brooksby
ed1782a479
Removing unused offset field in arena classes.
...
Copied from Perforce
Change: 190818
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:19 +01:00
Richard Brooksby
e041841a88
Moving common fields into the base class, starting with the class name.
...
Copied from Perforce
Change: 190816
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:19 +01:00
Richard Brooksby
c1abe0e9fd
Abstracting class declarations and references to classes.
...
Copied from Perforce
Change: 190812
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:19 +01:00
Richard Brooksby
282a5eceee
Moving the vm arena's spare ring nodes into the spare pages themselves, allowing the size of page descriptors to be reduced.
...
Copied from Perforce
Change: 190590
ServerID: perforce.ravenbrook.com
2016-03-31 19:38:31 +01:00
Richard Brooksby
e3d69095db
Catch-up merge from master sources to branch/2016-03-01/closure-size.
...
Copied from Perforce
Change: 189728
ServerID: perforce.ravenbrook.com
2016-03-08 09:13:35 +00:00
Richard Brooksby
7f6ef1e12f
Fixing compiler warning on lii6gc.
...
Copied from Perforce
Change: 189661
ServerID: perforce.ravenbrook.com
2016-03-05 15:25:56 +00:00
Richard Brooksby
4d0e518142
Looping until spare commit limit is reached, because we can't know in advance how much page table sparse array will be freed by vmpurgespare, reducing committed memory.
...
Copied from Perforce
Change: 189619
ServerID: perforce.ravenbrook.com
2016-03-04 13:15:31 +00:00