1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-26 07:11:34 -08:00
Commit graph

75 commits

Author SHA1 Message Date
Gareth Rees
967b61398d Replace mv debug with mvff debug.
Remove some remaining occurrences of mpscvm.h.

Copied from Perforce
 Change: 194865
2018-08-02 14:20:23 +01:00
Gareth Rees
4e8de8d42e Replace deprecatd mv with mvff in test cases.
Delete eventrep and replay modules -- these have been broken for a long time. 

Copied from Perforce
 Change: 194843
2018-08-01 13:10:09 +01:00
Gareth Rees
bc919b5d42 Update mmqa tests to cope with the removal of mv:
* Fix typo in argerr/41.c.
* Delete argerr/43.c and argerr/44.c: MVFF doesn't take a maximum size argument so we can't test for erroneous values of this argument.
* Fix assertion condition in conerr/59.c.
* In function/136.c, need to specify extend-by for second pool, now that it's an MVFF pool.
* function/224.c now passes (fragmentation is avoided because MVFF allocations can cross extent boundaries).

Copied from Perforce
 Change: 194712
2018-07-23 11:05:31 +01:00
Gareth Rees
f2242fcb64 Ensure that mmqa tests require either a pass or a specified failure.
Copied from Perforce
 Change: 194668
2018-07-16 12:57:42 +01:00
Gareth Rees
b742e99f96 Mmqa tests function/{7,21,22}.c now pass on 32-bit platforms.
MMQA tests function/{8,98}.c now pass on 64-bit platforms.

Copied from Perforce
 Change: 194599
2018-07-11 16:24:47 +01:00
Gareth Rees
ca11ef7be4 Avoid "warning c4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)" from microsoft visual c.
Copied from Perforce
 Change: 194586
2018-07-11 13:13:17 +01:00
Gareth Rees
2248184124 Check that traces with no condemned objects can be started and finished without error in each automatic pool class. regression test for job004086.
Copied from Perforce
 Change: 194475
2018-07-06 14:26:54 +01:00
Gareth Rees
f4ec71167c Fix issues identified in review https://info.ravenbrook.com/mail/2018/07/03/10-10-11/0/
Copied from Perforce
 Change: 194382
2018-07-03 13:04:21 +01:00
Gareth Rees
e55abc2b62 Avoid "conversion from 'size_t' to 'unsigned long', possible loss of data" warnings from microsoft visual c.
Copied from Perforce
 Change: 192462
 ServerID: perforce.ravenbrook.com
2016-09-26 16:59:35 +01:00
Gareth Rees
6226b8677e Avoid parentheses in parameters so that the test case passes on windows.
Copied from Perforce
 Change: 192457
 ServerID: perforce.ravenbrook.com
2016-09-26 16:17:38 +01:00
Gareth Rees
5f3e5f5ed3 Platform alignment is 16 on w3i6mv, so use mps_pf_align to avoid alignment failure.
Copied from Perforce
 Change: 192456
 ServerID: perforce.ravenbrook.com
2016-09-26 16:13:39 +01:00
Gareth Rees
a4b15a8371 Avoid warnings from gcc 4.2 on freebsd.
Copied from Perforce
 Change: 192310
 ServerID: perforce.ravenbrook.com
2016-09-12 14:39:55 +01:00
Gareth Rees
61606942e1 Use area roots (instead of a thread root) to ensure that objects are finalized reliably even in the hot variety.
Copied from Perforce
 Change: 192235
 ServerID: perforce.ravenbrook.com
2016-09-08 10:57:07 +01:00
Gareth Rees
563a07a392 The awl pool contains only weak references to objects that died, so the mps may be able to deduce (via its summary) that it does not need to be condemned, even to collect the world.
Copied from Perforce
 Change: 192226
 ServerID: perforce.ravenbrook.com
2016-09-07 10:20:39 +01:00
Gareth Rees
fd3136bb30 Fix mmqa function test cases so that they run on windows. in detail:
1. On w3i6mv, int and long are 32 bits, so these types can't be used to hold a size_t or an mps_word_t. See 26.c, 38.c, 47.c, 66.c, 123.c, 136.c, 164.c, 165.c, 200.c, 203.c, 204.c, 205.c, 206.c, 207.c, 215.c, 223.c.
2. The Windows command line doesn't cope with parentheses. See 170.c.
3. The natural platform alignment is 16 bytes on w3i6mv, so allocations into pools using the default alignment need to be rounded up. See 21.c, 22.c, 203.c, 204.c, 205.c.
4. Microsoft Visual C/C++ is fussy about signed/unsigned comparison. See 226.c.
5. windows.h defines a SIZE macro so you can't use it as a parameter. See 232.c.

Copied from Perforce
 Change: 191569
 ServerID: perforce.ravenbrook.com
2016-04-22 15:44:58 +01:00
Gareth Rees
0616a12652 Arenacompact can be called via tracedestroyinit too.
Copied from Perforce
 Change: 190949
 ServerID: perforce.ravenbrook.com
2016-04-11 19:47:52 +01:00
Gareth Rees
b8ea44a99f Catch-up merge from master sources to branch/2015-08-11/compact.
Copied from Perforce
 Change: 190901
 ServerID: perforce.ravenbrook.com
2016-04-11 14:40:44 +01:00
Gareth Rees
f1fe190638 Remove mmqa test cases for the reservoir.
Copied from Perforce
 Change: 190018
 ServerID: perforce.ravenbrook.com
2016-03-13 22:44:49 +00:00
Gareth Rees
56778dd360 Avoid unused variable warnings.
Copied from Perforce
 Change: 189978
 ServerID: perforce.ravenbrook.com
2016-03-13 14:58:09 +00:00
Gareth Rees
dfa7354873 Avoid warnings when compiling argerr/{146,147,148}.c with gcc.
Test cases conerr/{53,54}.c rely on junk in uninitialized local variables, so ensure that there is some.
Test case function/72.c relies on an object moving, but it might be pinned by an ambiguous reference from the stack, so don't register the stack as a root.

Copied from Perforce
 Change: 189964
 ServerID: perforce.ravenbrook.com
2016-03-13 14:16:39 +00:00
Gareth Rees
89a83ac39e A few more mmqa speedups.
Copied from Perforce
 Change: 189948
 ServerID: perforce.ravenbrook.com
2016-03-13 11:42:53 +00:00
Gareth Rees
c2e71054c9 Speed up more mmqa test cases. on my laptop, the whole mmqa test suite (or at least the passing subset) now takes 5 minutes in the hot variety and 11 minutes in the cool variety.
Copied from Perforce
 Change: 189947
 ServerID: perforce.ravenbrook.com
2016-03-13 11:42:32 +00:00
Gareth Rees
d8c8e00f3e Speed up mmqa test cases by reducing iterations. additionally:
* Take test options as parameters=.
* Rename BLAH to VERBOSE.
* Clearer reporting of slotHigh, arenaHigh, firstFit options to MVFF.
* Report times in seconds (not centiseconds).
* Reduce the commit limit exponentially and stop when too small.
* Ramp entering/leaving probabilities are scaled by iterations.

Copied from Perforce
 Change: 189899
 ServerID: perforce.ravenbrook.com
2016-03-12 18:27:38 +00:00
Gareth Rees
8afda3c709 Move blatting to a function so that its local variables don't remain on the stack and pin down objects.
Copied from Perforce
 Change: 189714
 ServerID: perforce.ravenbrook.com
2016-03-07 17:31:55 +00:00
Richard Brooksby
080d135eec Catch up merge from master sources.
Copied from Perforce
 Change: 189088
 ServerID: perforce.ravenbrook.com
2016-02-03 16:56:04 +00:00
Richard Brooksby
d4e54ba17e Backing out the introduction of mps_arena_configure. see <https://info.ravenbrook.com/mail/2016/01/15/11-56-45/0>.
Copied from Perforce
 Change: 189081
 ServerID: perforce.ravenbrook.com
2016-02-03 15:52:05 +00:00
Richard Brooksby
5dccd2e006 Catch-up merge from masters.
Copied from Perforce
 Change: 188928
 ServerID: perforce.ravenbrook.com
2016-01-20 11:04:09 +00:00
Richard Brooksby
7f7fd743dd Catch up merge from master sources.
Adding instructions for running tests on OS X.

Copied from Perforce
 Change: 188917
 ServerID: perforce.ravenbrook.com
2016-01-18 15:16:41 +00:00
Gareth Rees
537af4b0dc Rename mps_key_arena_commit_limit and mps_key_arena_spare_commit_limit as mps_key_commit_limit and mps_key_spare_commit_limit respectively, as suggested by nb in review.
Copied from Perforce
 Change: 188286
 ServerID: perforce.ravenbrook.com
2015-09-08 16:21:27 +01:00
Gareth Rees
f8a402fa0f New macro arenachunkring encapsulates getting the chunk ring for an arena.
RingLength now returns Count, not Size.
New test case checks that chunks are added and removed from the arena as memory is allocated and freed.

Copied from Perforce
 Change: 188133
 ServerID: perforce.ravenbrook.com
2015-08-11 12:03:45 +01:00
Gareth Rees
7dee7f10ea New test case 231: create/configure arena with too-small commit limit.
Copied from Perforce
 Change: 188118
 ServerID: perforce.ravenbrook.com
2015-08-10 20:29:21 +01:00
Gareth Rees
8d2ed22908 Apply commit limit (and spare commit limit) during arena creation, to avoid exceeding the limit and then discovering that we've done so.
Add test case for arena hitting commit limit during creation.

Copied from Perforce
 Change: 188106
 ServerID: perforce.ravenbrook.com
2015-08-10 15:27:26 +01:00
Gareth Rees
511ec1c025 Catch-up merge from branch/2015-08-10/arena-create to branch/2015-08-06/config.
Copied from Perforce
 Change: 188104
 ServerID: perforce.ravenbrook.com
2015-08-10 12:49:36 +01:00
Gareth Rees
afb5ff33c1 Correct the test for too-small client arena sizes.
Add automated test case for client arenas with small sizes.

Copied from Perforce
 Change: 188099
 ServerID: perforce.ravenbrook.com
2015-08-10 11:41:58 +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
1f95ffbe53 Tweak order of operations so that stack temporary doesn't keep many objects alive.
Copied from Perforce
 Change: 187953
 ServerID: perforce.ravenbrook.com
2015-06-16 10:44:09 +01:00
Gareth Rees
24c0e9500f Arguments to the varargs function mps_pool_create must be cast, otherwise the default c promotion rules will result in a constant value lke 64 being protomoted to int (4 bytes) but decoded (wrongly) as size_t (8 bytes).
Copied from Perforce
 Change: 187943
 ServerID: perforce.ravenbrook.com
2015-06-15 19:34:45 +01:00
Gareth Rees
25d29beacb 100 pools are not enough to exceed the commit limit; try 1000 instead.
Copied from Perforce
 Change: 187941
 ServerID: perforce.ravenbrook.com
2015-06-15 18:26:36 +01:00
Gareth Rees
c96e19b7c8 Change file type to ktext so that qa reports the correct test name.
Copied from Perforce
 Change: 187936
 ServerID: perforce.ravenbrook.com
2015-06-15 17:05:39 +01:00
Gareth Rees
9926492d9a Add a section to the guide explaining how to implement malloc and free.
Copied from Perforce
 Change: 187399
 ServerID: perforce.ravenbrook.com
2014-10-25 22:31:07 +01:00
Gareth Rees
eced8cbdad Mmqa test function/227.c now passes.
Update test README to mention which function to breakpoint.

Copied from Perforce
 Change: 187397
 ServerID: perforce.ravenbrook.com
2014-10-25 20:03:44 +01:00
Gareth Rees
42633ca624 Turn off the spare memory on the mvff pool so that it returns freed memory to the arena immediately.
Free the initial allocations so that the result determination is accurate.

Copied from Perforce
 Change: 187206
 ServerID: perforce.ravenbrook.com
2014-10-11 00:57:28 +01:00
Gareth Rees
34c8efce22 Specifying assertcond rather than assertline is likely to be more robust against code changes.
Copied from Perforce
 Change: 187203
 ServerID: perforce.ravenbrook.com
2014-10-10 22:55:48 +01:00
Gareth Rees
18a618cfe1 Need to take spare committed memory into account when checking that memory usage hasn't gone up after a collection.
Copied from Perforce
 Change: 187202
 ServerID: perforce.ravenbrook.com
2014-10-10 22:43:07 +01:00
Gareth Rees
f49ea829b9 In function/45.c, read from ambig[i] to prevent the compiler from optimizing away the array and so allowing p[i] to die.
In function/12.c, add a garbage collection to check that the allocation point protocol is being followed. Ensure there's an ambiguous reference to reserved objects before committin them.

Copied from Perforce
 Change: 187200
 ServerID: perforce.ravenbrook.com
2014-10-10 22:14:22 +01:00
Gareth Rees
28ceede8dc Job003495 is fixed, so mmqa test function/171.c now passes.
Reduce workload in function/171.c by a factor of 10 so that it completes in a reasonable amount of time.

Copied from Perforce
 Change: 187194
 ServerID: perforce.ravenbrook.com
2014-10-10 17:35:59 +01:00
Gareth Rees
faf6789c71 Cast arguments to the correct type to avoid them being decoded incorrectly by the varargs interface.
Copied from Perforce
 Change: 187190
 ServerID: perforce.ravenbrook.com
2014-10-10 17:14:09 +01:00
Gareth Rees
712b443baf Make mmqa test suite compile and run on linux (specifically lii6ll).
Avoid compiler warnings about unused variables and bad casts.

Copied from Perforce
 Change: 187188
 ServerID: perforce.ravenbrook.com
2014-10-10 16:58:01 +01:00
Gareth Rees
dddab0caf3 Fix mmqa test function/136.c:
* Turn off the spare memory on the MVFF pool so that it returns freed memory to the arena immediately.
* Allocate something in the MV pool initially so that the span and block pools have some capacity.
* Stop the test if there isn't room in the MVFF to allocate 2 big blocks.
* Change the test success criterion so that it passes on 64-bit.

Copied from Perforce
 Change: 187182
 ServerID: perforce.ravenbrook.com
2014-10-10 14:04:41 +01:00
Gareth Rees
db01741686 Turn off the spare memory on the mvff pool so that it returns freed memory to the arena immediately.
Copied from Perforce
 Change: 187177
 ServerID: perforce.ravenbrook.com
2014-10-10 12:30:17 +01:00