Gareth Rees
27ef3e0e9e
Catch-up merge from branch/2014-05-28/align to branch/2014-06-14/vm.
...
Copied from Perforce
Change: 186633
ServerID: perforce.ravenbrook.com
2014-06-14 16:20:04 +01:00
Gareth Rees
916a40c8f2
Avoid warnings from xcode for string literals that exceed the portable limit.
...
Copied from Perforce
Change: 186632
ServerID: perforce.ravenbrook.com
2014-06-14 16:18:50 +01:00
Gareth Rees
3aba0f32d9
Catch-up merge from master sources @186573 to branch/2014-05-28/align.
...
Copied from Perforce
Change: 186631
ServerID: perforce.ravenbrook.com
2014-06-14 16:11:20 +01:00
Gareth Rees
d7a8949891
Put the portable part of the vm interface in its own module.
...
Copied from Perforce
Change: 186630
ServerID: perforce.ravenbrook.com
2014-06-14 16:09:06 +01:00
Gareth Rees
5107ea0a53
Bring xcode project up to date.
...
Fix signed/unsigned integer comparison warning in Scheme example.
Copied from Perforce
Change: 186629
ServerID: perforce.ravenbrook.com
2014-06-14 16:08:31 +01:00
Gareth Rees
65243ddfdf
There's nothing special about version.c that requires it to be linked separately.
...
Copied from Perforce
Change: 186627
ServerID: perforce.ravenbrook.com
2014-06-14 15:55:21 +01:00
Gareth Rees
bcbaa67af9
Macros for vmbase etc.
...
Copied from Perforce
Change: 186626
ServerID: perforce.ravenbrook.com
2014-06-14 15:50:13 +01:00
Gareth Rees
0eb6c63a05
Catch-up merge from branch/2014-05-28/align to branch/2014-06-14/vm.
...
Copied from Perforce
Change: 186625
ServerID: perforce.ravenbrook.com
2014-06-14 15:14:54 +01:00
Gareth Rees
b1b8c84c0a
Store the vm descriptor in the vmarena and vmchunk structures.
...
Copied from Perforce
Change: 186624
ServerID: perforce.ravenbrook.com
2014-06-14 15:12:26 +01:00
Gareth Rees
0447fc9337
Fix compilation on "ansi" platform.
...
Copied from Perforce
Change: 186623
ServerID: perforce.ravenbrook.com
2014-06-14 15:11:01 +01:00
Gareth Rees
33b3eec69d
More modular to assign the primary chunk in arenachunkinsert.
...
Copied from Perforce
Change: 186621
ServerID: perforce.ravenbrook.com
2014-06-14 14:34:10 +01:00
Gareth Rees
f6fa1811ac
Catch-up merge from branch/2014-05-28/align to branch/2014-06-14/vm.
...
Copied from Perforce
Change: 186620
ServerID: perforce.ravenbrook.com
2014-06-14 13:17:58 +01:00
Gareth Rees
a167a6c166
Branching master to branch/2014-06-14/vm.
...
Copied from Perforce
Change: 186618
ServerID: perforce.ravenbrook.com
2014-06-14 13:15:33 +01:00
Gareth Rees
5268331bdd
Add landiterateanddelete method for the cbs land classes.
...
Use this to check that all memory has been returned to the arena in MVFFFinish.
Copied from Perforce
Change: 186616
ServerID: perforce.ravenbrook.com
2014-06-14 12:44:11 +01:00
Gareth Rees
2018a0e2f8
Add casts to (void*) for the benefit of gcc.
...
Copied from Perforce
Change: 186614
ServerID: perforce.ravenbrook.com
2014-06-14 12:07:44 +01:00
Gareth Rees
fb8a86c973
Fix bug in landtest: block needs to be aligned.
...
Copied from Perforce
Change: 186611
ServerID: perforce.ravenbrook.com
2014-06-14 11:21:57 +01:00
Gareth Rees
3a2f360df7
Remove obsolete comment.
...
Copied from Perforce
Change: 186607
ServerID: perforce.ravenbrook.com
2014-06-13 23:56:25 +01:00
Gareth Rees
cdee105f58
Fix defects found by coverity < https://info.ravenbrook.com/mail/2014/06/13/18-12-37/0/ >
...
Copied from Perforce
Change: 186604
ServerID: perforce.ravenbrook.com
2014-06-13 21:45:46 +01:00
Gareth Rees
1f8345de6d
Fix compilation on windows.
...
Copied from Perforce
Change: 186594
ServerID: perforce.ravenbrook.com
2014-06-13 18:18:06 +01:00
Gareth Rees
c975f64296
Improve the diff and make the vm implementations more closely parallel.
...
Copied from Perforce
Change: 186591
ServerID: perforce.ravenbrook.com
2014-06-13 17:59:37 +01:00
Gareth Rees
831f551eec
Now that we can call vmpagesize without having a vm to hand, the implementation of vmcreate can be simpler: in particular, the grain size can already be correctly rounded up.
...
Copied from Perforce
Change: 186590
ServerID: perforce.ravenbrook.com
2014-06-13 17:39:58 +01:00
Gareth Rees
88c85abc0e
Vmpagesize now takes no arguments -- this avoids suggesting (incorrectly) that it might return a different value for each vm.
...
New function ProtGranularity returns the protection granularity of the operating system. (On all currently supported operating systems this is the same as the granularity of memory mapping returned by VMPageSuze, but it's important to separate these concepts.) MPMCheck asserts that the granularity of memory mapping is a multiple of the granularity of protection.
Client arena supports MPS_KEY_ARENA_GRAIN_SIZE.
Some of the test cases set the arena grain size.
Copied from Perforce
Change: 186588
ServerID: perforce.ravenbrook.com
2014-06-13 17:19:23 +01:00
David Lovemore
fb8f7c462e
Remove reference to intentionally undocumented mps_key_large_size.
...
Copied from Perforce
Change: 186586
ServerID: perforce.ravenbrook.com
2014-06-13 17:02:36 +01:00
David Lovemore
5ae06131f3
Merge branch/2014-06-10/amc-extend-by in the master sources.
...
Copied from Perforce
Change: 186584
ServerID: perforce.ravenbrook.com
2014-06-13 16:50:42 +01:00
David Lovemore
28b4b6df92
Catch up merge from master/...@186581
...
Copied from Perforce
Change: 186583
ServerID: perforce.ravenbrook.com
2014-06-13 16:44:49 +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
9664d3c77b
Remove references to arenaalign from the design.
...
Copied from Perforce
Change: 186581
ServerID: perforce.ravenbrook.com
2014-06-13 16:36:40 +01:00
Gareth Rees
c195edeab9
Keyword argument now mps_key_arena_grain_size.
...
Copied from Perforce
Change: 186580
ServerID: perforce.ravenbrook.com
2014-06-13 16:29:13 +01:00
Gareth Rees
8ecf6264f4
Configurable grain size for client arenas.
...
Copied from Perforce
Change: 186579
ServerID: perforce.ravenbrook.com
2014-06-13 16:24:55 +01:00
Gareth Rees
8b012960dc
Some assertions with && crept back in. split them up so that we get as much information as possible from an assertion failure.
...
Copied from Perforce
Change: 186577
ServerID: perforce.ravenbrook.com
2014-06-13 15:52:50 +01:00
David Lovemore
0fd1dda937
Remove documentation for mps_key_large_size.
...
Copied from Perforce
Change: 186576
ServerID: perforce.ravenbrook.com
2014-06-13 15:43:30 +01:00
Gareth Rees
a7c6cd3600
Catch-up merge from master sources @186573 to branch/2014-05-28/align.
...
Copied from Perforce
Change: 186574
ServerID: perforce.ravenbrook.com
2014-06-13 15:37:20 +01:00
Gareth Rees
1aa6ae8e2f
Merge branch/2014-06-11/grain into the master sources.
...
Copied from Perforce
Change: 186573
ServerID: perforce.ravenbrook.com
2014-06-13 15:34:32 +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
Gareth Rees
c02416850b
User size should be aligned up to the platform alignment (for convenience).
...
Add test cases.
Copied from Perforce
Change: 186571
ServerID: perforce.ravenbrook.com
2014-06-13 15:18:28 +01:00
Gareth Rees
0f5c639e59
Fix problems identified by rb in review < https://info.ravenbrook.com/mail/2014/06/13/13-52-14/0/ >.
...
Copied from Perforce
Change: 186570
ServerID: perforce.ravenbrook.com
2014-06-13 15:16:02 +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
David Lovemore
22216fc2ce
Correcting wrong pseudo code pages -> size.
...
Copied from Perforce
Change: 186567
ServerID: perforce.ravenbrook.com
2014-06-13 15:02:34 +01:00
David Lovemore
59eb0b3ca3
Updating design doc to talk about extend by and large size instead of arenaalign() and large seg pages.
...
Copied from Perforce
Change: 186565
ServerID: perforce.ravenbrook.com
2014-06-13 14:55:26 +01:00
Gareth Rees
e2f9ead969
Merge branch/2014-05-17/chunk-tree into the master sources.
...
Copied from Perforce
Change: 186564
ServerID: perforce.ravenbrook.com
2014-06-13 14:31:31 +01:00
Gareth Rees
0379d5bf52
Catch-up merge from master sources @186554 to branch/2014-05-17/chunk-tree.
...
Copied from Perforce
Change: 186563
ServerID: perforce.ravenbrook.com
2014-06-13 14:25:09 +01:00
Gareth Rees
1dd8a0fa26
Merge branch/2014-06-11/grain into branch/2014-05-28/align.
...
Copied from Perforce
Change: 186561
ServerID: perforce.ravenbrook.com
2014-06-13 13:35:14 +01:00
Gareth Rees
100405cac2
Restore the chunk ring.
...
Copied from Perforce
Change: 186558
ServerID: perforce.ravenbrook.com
2014-06-13 12:31:47 +01:00
David Lovemore
4731440031
Remove requirement that mps_key_extend_by argument to amc is aligned to arena alignment.
...
Copied from Perforce
Change: 186557
ServerID: perforce.ravenbrook.com
2014-06-13 12:19:26 +01:00
Gareth Rees
4dcd8cacaa
Avoid local variable "free" shadowing standard c function free().
...
Copied from Perforce
Change: 186554
ServerID: perforce.ravenbrook.com
2014-06-13 11:17:28 +01:00
Gareth Rees
816c61ecfe
"copy method" is obsolete.
...
Copied from Perforce
Change: 186552
ServerID: perforce.ravenbrook.com
2014-06-12 23:52:27 +01:00
Gareth Rees
8c9de5f775
New function arenachunktreetraverse ensures that calls to chunkofaddr are reliably detected.
...
Copied from Perforce
Change: 186550
ServerID: perforce.ravenbrook.com
2014-06-12 20:28:50 +01:00
Gareth Rees
4538221eb1
Remove obsolete macro arenachunkring.
...
Copied from Perforce
Change: 186549
ServerID: perforce.ravenbrook.com
2014-06-12 19:52:43 +01:00
Gareth Rees
b240945cb9
Tract iteration interface is only used by the arena coverage test, so move it out of tract.c and into arenacv.c.
...
Copied from Perforce
Change: 186548
ServerID: perforce.ravenbrook.com
2014-06-12 19:06:10 +01:00
Gareth Rees
1d9afa915f
Fix arenadescribetracts:
...
* Return value from TreeVisitor is Bool, not Res, so pass Res back via a closure.
* Can't use TRACT_TRACT_FOR while iterating over the chunk tree, because that macro uses ChunkOfAddr. (A plain loop is simpler.)
* Mustn't try to describe unallocated tracts -- they might not even be mapped into memory. So consult the allocTable.
Make tract functions more robust:
* TractCheck must only check the pool if there is one (otherwise it segfaults for unallocated tracts)
* TractLimit can't look up the arena via TractPool, because the tract might not have a pool. So pass in the arena as an argument.
Copied from Perforce
Change: 186547
ServerID: perforce.ravenbrook.com
2014-06-12 18:46:49 +01:00