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
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
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
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
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
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
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
Gareth Rees
08f341fcc9
Catch-up merge from master sources @186540 to branch/2014-05-17/chunk-tree.
...
Copied from Perforce
Change: 186546
ServerID: perforce.ravenbrook.com
2014-06-12 17:55:16 +01:00
Gareth Rees
5806105a17
Fix the build on windows.
...
Copied from Perforce
Change: 186544
ServerID: perforce.ravenbrook.com
2014-06-12 17:27:38 +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
e50888e0c5
Fix problems identified by dl in review < https://info.ravenbrook.com/mail/2014/06/12/15-04-02/0/ >.
...
Copied from Perforce
Change: 186542
ServerID: perforce.ravenbrook.com
2014-06-12 17:11:09 +01:00
Gareth Rees
12e55f7b05
Merged branch/2014-05-15/size into the master sources.
...
Copied from Perforce
Change: 186540
ServerID: perforce.ravenbrook.com
2014-06-12 16:51:34 +01:00
Gareth Rees
5e11b7034a
Catch-up merge from master sources @186536 to branch/2014-05-15/size.
...
Copied from Perforce
Change: 186539
ServerID: perforce.ravenbrook.com
2014-06-12 16:46:36 +01:00
Gareth Rees
00a5b8e436
Fix problems noted by rb in review < https://info.ravenbrook.com/mail/2014/06/11/15-16-51/0/ >.
...
Copied from Perforce
Change: 186537
ServerID: perforce.ravenbrook.com
2014-06-12 16:24:39 +01:00
Gareth Rees
bb917243ac
Merge branch/2014-04-15/mvffnoseg into the master sources.
...
Copied from Perforce
Change: 186536
ServerID: perforce.ravenbrook.com
2014-06-12 16:20:20 +01:00
Gareth Rees
9268a0adc8
Catch-up merge from master sources @186528 to branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186534
ServerID: perforce.ravenbrook.com
2014-06-12 15:59:39 +01:00
Gareth Rees
36fe212dba
Fix problems noted by nb in review < https://info.ravenbrook.com/mail/2014/06/11/20-47-37/0/ >
...
Copied from Perforce
Change: 186533
ServerID: perforce.ravenbrook.com
2014-06-12 15:53:55 +01:00
Gareth Rees
15df9bb6de
Use xyzpool macros systematically as suggested by nb in < https://info.ravenbrook.com/mail/2014/06/11/20-47-37/0/ >
...
Copied from Perforce
Change: 186529
ServerID: perforce.ravenbrook.com
2014-06-12 14:25:00 +01:00
Gareth Rees
d482c85929
Fix rash build.
...
Copied from Perforce
Change: 186527
ServerID: perforce.ravenbrook.com
2014-06-12 13:49:57 +01:00
Gareth Rees
cb629746ea
Catch-up merge from masters sources @186519 to branch/2014-04-17/describe.
...
Copied from Perforce
Change: 186526
ServerID: perforce.ravenbrook.com
2014-06-12 13:45:22 +01:00
Gareth Rees
cf75884793
Refer to rb's e-mail for potential optimization.
...
Copied from Perforce
Change: 186524
ServerID: perforce.ravenbrook.com
2014-06-12 12:18:30 +01:00
Gareth Rees
b0470a6298
Some remaining occurrences of "arena alignment".
...
Copied from Perforce
Change: 186513
ServerID: perforce.ravenbrook.com
2014-06-11 22:22:02 +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
018747665f
Use a single page for the vm descriptor, not a whole grain.
...
Don't lie about reserved size.
Copied from Perforce
Change: 186508
ServerID: perforce.ravenbrook.com
2014-06-11 17:38:04 +01:00
Gareth Rees
83fa3cbd70
Add missing variable grainsize.
...
Copied from Perforce
Change: 186507
ServerID: perforce.ravenbrook.com
2014-06-11 17:35:24 +01:00
Gareth Rees
d897119121
Rename grainsizecheck as arenagrainsizecheck.
...
Copied from Perforce
Change: 186506
ServerID: perforce.ravenbrook.com
2014-06-11 17:33:10 +01:00
Gareth Rees
57412df08b
One last occurrence of arena->alignment.
...
Copied from Perforce
Change: 186504
ServerID: perforce.ravenbrook.com
2014-06-11 17:27:25 +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
f7234cc119
Catch-up merge from master sources @186481 to branch/2014-05-28/align.
...
Copied from Perforce
Change: 186499
ServerID: perforce.ravenbrook.com
2014-06-11 14:23:59 +01:00
Gareth Rees
1707089319
Oops, fumbled the merge.
...
Copied from Perforce
Change: 186493
ServerID: perforce.ravenbrook.com
2014-06-11 14:02:22 +01:00
Gareth Rees
a331b13075
Use unused_pointer and unused_size now we have 'em.
...
Copied from Perforce
Change: 186492
ServerID: perforce.ravenbrook.com
2014-06-11 13:59:02 +01:00
Gareth Rees
de2a30d207
Catch-up merge from master sources @186481 to branch/2014-05-17/chunk-tree.
...
Copied from Perforce
Change: 186491
ServerID: perforce.ravenbrook.com
2014-06-11 13:52:31 +01:00
Gareth Rees
b0d4fb39be
Fix incorrect merges.
...
Copied from Perforce
Change: 186490
ServerID: perforce.ravenbrook.com
2014-06-11 13:32:25 +01:00
Gareth Rees
577c0a0ca0
Restore assertions on spare keyword argument, accidentally removed in change 186484.
...
Copied from Perforce
Change: 186488
ServerID: perforce.ravenbrook.com
2014-06-11 13:29:01 +01:00
Gareth Rees
5969ae2114
Catch-up merge from branch/2014-04-15/mvffnoseg @186485 to branch/2014-05-15/size.
...
Copied from Perforce
Change: 186487
ServerID: perforce.ravenbrook.com
2014-06-11 13:17:14 +01:00
Gareth Rees
0253f20ede
Rename mvtfailover to mvtfreeland, as suggested by rb in review.
...
Copied from Perforce
Change: 186485
ServerID: perforce.ravenbrook.com
2014-06-11 12:47:13 +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
Gareth Rees
c96e7a2d84
Merge mps/branch/2014-04-08/align into the master sources.
...
Copied from Perforce
Change: 186481
ServerID: perforce.ravenbrook.com
2014-06-11 12:18:40 +01:00
Gareth Rees
8237372301
Fix the build on windows:
...
* Alignments need casts to avoid a warning from MSVC.
* MFS has alignment MPS_PF_ALIGN, not sizeof(void *).
Copied from Perforce
Change: 186477
ServerID: perforce.ravenbrook.com
2014-06-11 11:57:15 +01:00
Gareth Rees
8a55ba5d29
Remove unused variable baseindex (obsoleted by accounting reform).
...
Copied from Perforce
Change: 186465
ServerID: perforce.ravenbrook.com
2014-06-09 19:59:04 +01:00