Commit graph

1215 commits

Author SHA1 Message Date
Richard Brooksby
deb3237c44 Allowing splayfindfirst to continue to search even if the treetest is not precise, allowing the arena allocator to search for free areas using a zone preference.
Copied from Perforce
 Change: 184129
 ServerID: perforce.ravenbrook.com
2014-01-26 14:01:37 +00:00
Richard Brooksby
115af8c270 Catch-up merge from master to pick up improvements to segment iteration.
Copied from Perforce
 Change: 184122
 ServerID: perforce.ravenbrook.com
2014-01-25 17:01:57 +00:00
Richard Brooksby
56d48bbd1d iterating over segments using the pool and segment rings, rather than scanning the tract table, which may be full of irrelevant tracts, especially when non-gc pools are large. see <https://info.ravenbrook.com/mail/2014/01/25/12-16-09/0/>.
Copied from Perforce
 Change: 184120
 ServerID: perforce.ravenbrook.com
2014-01-25 15:33:10 +00:00
Richard Brooksby
893ac1da13 Adding a rash configuration to xcode builds.
Copied from Perforce
 Change: 184117
 ServerID: perforce.ravenbrook.com
2014-01-25 15:25:52 +00:00
Richard Brooksby
a788a9efdd Ignoring a.out (default output from cc).
Copied from Perforce
 Change: 184116
 ServerID: perforce.ravenbrook.com
2014-01-25 15:24:28 +00:00
Richard Brooksby
a72f6fb94f Catch-up merges from master to pick up xcode profiling tweak.
Copied from Perforce
 Change: 184112
 ServerID: perforce.ravenbrook.com
2014-01-24 16:09:28 +00:00
Richard Brooksby
f91a987e32 Inclusion order mysteriously prevents profiling under xcode.
Copied from Perforce
 Change: 184111
 ServerID: perforce.ravenbrook.com
2014-01-24 16:00:49 +00:00
Richard Brooksby
52a83b4393 Catch-up merge from master to pick up "dj" benchmark.
Copied from Perforce
 Change: 184110
 ServerID: perforce.ravenbrook.com
2014-01-24 15:59:05 +00:00
Richard Brooksby
8ef0ecb155 Merging the "dj" benchmark from the benchmarking development branch.
Copied from Perforce
 Change: 184106
 ServerID: perforce.ravenbrook.com
2014-01-24 15:29:28 +00:00
Richard Brooksby
199ef9ca11 Catch-up merge from master.
Copied from Perforce
 Change: 184103
 ServerID: perforce.ravenbrook.com
2014-01-24 14:22:27 +00:00
Richard Brooksby
cd4a12047f Non-working preferential allocation within a block of the cbs.
This doesn't work because the splay tree can't cope with homing in on a node (that appears big enough) then being told that it isn't suitable (because it doesn't have space in the right zone).  The splay tree summary condition must be precise, as stated in the design.  The splay tree isn't suited to this kind of search.

Copied from Perforce
 Change: 184073
 ServerID: perforce.ravenbrook.com
2014-01-21 16:29:30 +00:00
Richard Brooksby
69895308e5 Hacky clean-up of the cbs' mfs tracts so that the arena can shut down successfully.
Copied from Perforce
 Change: 184072
 ServerID: perforce.ravenbrook.com
2014-01-21 16:10:16 +00:00
Richard Brooksby
be42effdb3 First draft of freeing into the arena's freecbs.
Copied from Perforce
 Change: 184052
 ServerID: perforce.ravenbrook.com
2014-01-18 18:24:07 +00:00
Richard Brooksby
32d8c32b6d Making the reservoir use arenaalloc and arenafree like a good citizen, rather than bypassing them, so that it correctly gets memory from the freecbs.
Copied from Perforce
 Change: 184051
 ServerID: perforce.ravenbrook.com
2014-01-18 17:45:56 +00:00
Richard Brooksby
6954977079 First draft of allocating using the freecbs. arenaalloc finds a free address range in the cbs and asks the arena class to mark it allocated, rather than the arena class doing the search. plenty still missing. no freeing.
Copied from Perforce
 Change: 184050
 ServerID: perforce.ravenbrook.com
2014-01-18 17:16:10 +00:00
Richard Brooksby
44de7246e5 Creating and tearing down the arena freecbs that will hold free address ranges.
Copied from Perforce
 Change: 184049
 ServerID: perforce.ravenbrook.com
2014-01-18 16:25:08 +00:00
Richard Brooksby
3e1d93b97d Part of changelist 184047. oops.
Copied from Perforce
 Change: 184048
 ServerID: perforce.ravenbrook.com
2014-01-18 15:46:18 +00:00
Richard Brooksby
d04bf862b9 Poolmfs can take a zero extendby so that it never extends itself, and have memory added using mfsextend. this allows the mfs pool to be used to store blocks for the arena's cbs before the tract allocator exists.
Copied from Perforce
 Change: 184047
 ServerID: perforce.ravenbrook.com
2014-01-18 15:45:22 +00:00
Richard Brooksby
c71a9513e0 Adding a free address space cbs to the arena, initialising and finishing it, but not using it yet.
Moved CBSStruct to mpmst.h so that it can be included inline in ArenaStruct without circularity problems.

Copied from Perforce
 Change: 184044
 ServerID: perforce.ravenbrook.com
2014-01-17 16:15:13 +00:00
Richard Brooksby
9eeaa3a388 Inlining the mfs block pool's structure into its parent mfs, to avoid allocating in the control pool when initialising a cbs. this will allow the cbs to be used before the control pool exists.
Copied from Perforce
 Change: 184043
 ServerID: perforce.ravenbrook.com
2014-01-17 15:48:12 +00:00
Gareth Rees
1ccc6908a6 Remove obsolete file osxc.h.
Copied from Perforce
 Change: 183954
 ServerID: perforce.ravenbrook.com
2014-01-12 21:57:54 +00:00
Gareth Rees
f6160d9720 Test case libcbt.c is obsolete: mpslibcb mechanism was removed in change 179279.
Copied from Perforce
 Change: 183952
 ServerID: perforce.ravenbrook.com
2014-01-12 21:29:53 +00:00
Gareth Rees
997f5a914e Clarify decision to preserve/reclaim in amcreclaimnailed, avoiding ternary operator inside the if condition.
Copied from Perforce
 Change: 183948
 ServerID: perforce.ravenbrook.com
2014-01-12 11:21:21 +00:00
Gareth Rees
5ddfd0dbcd Remove unused (and unusable) macros arenarootring() and arenatracering().
Copied from Perforce
 Change: 183947
 ServerID: perforce.ravenbrook.com
2014-01-12 11:19:35 +00:00
Gareth Rees
f316e646b3 Ignore build products for new platform lii6ll.
Ignore telemetry database mpiso*.sql.

Copied from Perforce
 Change: 183942
 ServerID: perforce.ravenbrook.com
2014-01-11 21:37:19 +00:00
Gareth Rees
3afb84b7b5 Rename spi3.c to spw3i3mv.c as it is windows- and microsoft- specific.
Copied from Perforce
 Change: 183939
 ServerID: perforce.ravenbrook.com
2014-01-10 20:51:13 +00:00
Gareth Rees
d917eb1d0c Merge branch/2013-05-17/emergency into the master sources.
This change refactors MVTBufferFill and makes related improvements to improve the clarity of the code.

Copied from Perforce
 Change: 183935
 ServerID: perforce.ravenbrook.com
2014-01-10 18:52:08 +00:00
Gareth Rees
c5bce746b1 Change result type of abqpush, abqpop and abqpeek to bool.
Copied from Perforce
 Change: 183934
 ServerID: perforce.ravenbrook.com
2014-01-10 18:44:46 +00:00
Gareth Rees
b14f5a51d7 Make improvements (mostly to comments) based on reviews:
https://info.ravenbrook.com/mail/2014/01/10/15-57-50/0/
https://info.ravenbrook.com/mail/2014/01/10/15-40-47/0/

Copied from Perforce
 Change: 183932
 ServerID: perforce.ravenbrook.com
2014-01-10 18:18:06 +00:00
Gareth Rees
ea9df0b2b7 Merge custom cet mainline into the master sources. this includes fixes for job003519 (clock values in text telemetry logs on windows have top 32 bits zero), job003536 (cet office can't replicate 100k snowmen in reasonable time), job003651 (stack overflows are not reliably handled).
Copied from Perforce
 Change: 183926
 ServerID: perforce.ravenbrook.com
2014-01-10 14:16:08 +00:00
Gareth Rees
2044d82a77 Clarify comment above bufferisreset: by "all pointers into the region" it actually means "the base, init, alloc, and limit pointers".
Copied from Perforce
 Change: 183637
 ServerID: perforce.ravenbrook.com
2013-11-04 15:31:58 +00:00
Gareth Rees
73fa242bb1 Improve documentation of thread- and exception-safety precautions.
Copied from Perforce
 Change: 183635
 ServerID: perforce.ravenbrook.com
2013-11-04 15:14:47 +00:00
Gareth Rees
ba0e8c1b8b Put testsetsize back to its original value of 200, so that randomsizealigned does not invoke undefined behaviour by right-shifting by more than the word width.
Copied from Perforce
 Change: 183617
 ServerID: perforce.ravenbrook.com
2013-10-31 09:39:09 +00:00
Gareth Rees
8f9423a8c3 Add comments and assertions to make it clearer how btfindresrange and btfindresrangehigh work. in particular, explain why the possible unsigned integer underflow in btfindresrangehigh is safe.
Copied from Perforce
 Change: 183613
 ServerID: perforce.ravenbrook.com
2013-10-30 15:53:19 +00:00
Gareth Rees
b87ce7680f Don't call mvtsegfree from mvtfinish: we don't know whether or not there was any fragmented (unavailable) space in this segment, and so we can't keep the accounting correct. add assertion in mvtsegfree that detects incorrect accounting.
Copied from Perforce
 Change: 183610
 ServerID: perforce.ravenbrook.com
2013-10-30 13:15:09 +00:00
Gareth Rees
73350475ed The next release of the mps will be 1.112.0, so update version.c.
Update the version creating procedure: version.c is now the only file containing the release number.

Copied from Perforce
 Change: 183548
 ServerID: perforce.ravenbrook.com
2013-10-10 14:29:31 +01:00
Gareth Rees
5824d8a73f Improve wording of comment.
Copied from Perforce
 Change: 183526
 ServerID: perforce.ravenbrook.com
2013-10-04 11:50:19 +01:00
Gareth Rees
d2c28e7deb Fix broken mps_key_pool_debug_options keyword argument.
Copied from Perforce
 Change: 183524
 ServerID: perforce.ravenbrook.com
2013-10-04 11:05:56 +01:00
Gareth Rees
e522a0b273 Document that you can specify mps_key_rank when creating an allocation point on an ams pool. make mps_key_rank default to mps_rank_exact().
Copied from Perforce
 Change: 183515
 ServerID: perforce.ravenbrook.com
2013-10-02 15:44:34 +01:00
Gareth Rees
692489dd2b Make keyword mps_key_ams_support_ambiguous optional, with default value false. update documentation accordingly.
Copied from Perforce
 Change: 183513
 ServerID: perforce.ravenbrook.com
2013-10-02 15:14:57 +01:00
Gareth Rees
fab773659d Use macro nonnegative so that we can keep asserting that values are >= 0 without provoking "unsigned comparison >= 0 is always true" warnings from gcc.
Copied from Perforce
 Change: 183505
 ServerID: perforce.ravenbrook.com
2013-10-01 14:27:52 +01:00
Gareth Rees
544a160559 Merge branch/2013-08-21/lii6ll/... into the master sources, adding new supported platform lii6ll (linux, x86-64, clang/llvm).
Copied from Perforce
 Change: 183503
 ServerID: perforce.ravenbrook.com
2013-10-01 14:04:36 +01:00
Gareth Rees
51a97f1c37 Avoid comparison of unsigned >= 0 so that we can compile without warnings under gcc -wextra.
Copied from Perforce
 Change: 183501
 ServerID: perforce.ravenbrook.com
2013-10-01 11:10:59 +01:00
Gareth Rees
af06b04a77 Raise an error if variety is something other than rash, hot, or cool.
Copied from Perforce
 Change: 183499
 ServerID: perforce.ravenbrook.com
2013-10-01 10:53:09 +01:00
Gareth Rees
949578bac4 Avoid warnings when compiling with -wwrite-strings:
* Use const char * in places where we want to assign string constants.
Avoid warnings when compiling with -Wextra:
* Avoid if statement with empty body in amcsshe.c
* Avoid comparison of unsigned >= 0.

Copied from Perforce
 Change: 183498
 ServerID: perforce.ravenbrook.com
2013-10-01 10:52:45 +01:00
Gareth Rees
a3c7ed0cab Turn on -wextra -wwrite-strings when compiling with gcc or clang.
Add missing initializer to mps_args_none.
Change "char *" to "const char *" where necessary.

Copied from Perforce
 Change: 183494
 ServerID: perforce.ravenbrook.com
2013-09-30 17:18:52 +01:00
Gareth Rees
b59ba75674 New supported platform lii6ll (linux, x86-64, clang/llvm).
Copied from Perforce
 Change: 183414
 ServerID: perforce.ravenbrook.com
2013-09-11 10:27:22 +01:00
Gareth Rees
1d39ec5b87 Make the mps compilable under clang/llvm 3.0 with the -ansi -pedantic options:
Avoid if with empty body by adding NOOP.
Avoid extended offsetof in expansion of PageOfTract, linkOfMessage, linkOfRing, and Pool2AMST macros.

Copied from Perforce
 Change: 183413
 ServerID: perforce.ravenbrook.com
2013-09-11 10:21:12 +01:00
Gareth Rees
7bc31bced8 Don't detect the compiler as gcc when it's actually clang. emit an error instead.
Copied from Perforce
 Change: 183334
 ServerID: perforce.ravenbrook.com
2013-08-20 17:10:36 +01:00
Richard Brooksby
35dd801372 Fixing up build for test platform xci3gc, broken by os x threads development.
Enabling amcssth and awlutth tests for all platforms, since I believe these were fixed by OS X threads development.

Copied from Perforce
 Change: 183118
 ServerID: perforce.ravenbrook.com
2013-07-17 16:49:31 +01:00