aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPekka Pirinen2000-09-25 18:04:44 +0100
committerPekka Pirinen2000-09-25 18:04:44 +0100
commitdfd26e7a4dc170cdbac4a1ad82f32e31a0e5f77a (patch)
tree41a649e5c4e83c9f825ea64c9c9dd854cd8bd563
parent46ea0a7343ec76aeb27198bb6aca9a60af3680d4 (diff)
downloademacs-dfd26e7a4dc170cdbac4a1ad82f32e31a0e5f77a.tar.gz
emacs-dfd26e7a4dc170cdbac4a1ad82f32e31a0e5f77a.zip
Smaller size
Copied from Perforce Change: 21541 ServerID: perforce.ravenbrook.com
-rw-r--r--mps/src/apss.c67
1 files changed, 28 insertions, 39 deletions
diff --git a/mps/src/apss.c b/mps/src/apss.c
index b92b7e5a2d6..8020c4fe81f 100644
--- a/mps/src/apss.c
+++ b/mps/src/apss.c
@@ -1,7 +1,7 @@
1/* impl.c.apss: AP MANUAL ALLOC STRESS TEST 1/* impl.c.apss: AP MANUAL ALLOC STRESS TEST
2 * 2 *
3 * $HopeName: !apss.c(trunk.4) $ 3 * $HopeName: MMsrc!apss.c(MMconfigura_eval_fast.1) $
4 * Copyright (C) 1999 Harlequin Group plc. All rights reserved. 4 * Copyright (C) 2000 Harlequin Limited. All rights reserved.
5 */ 5 */
6 6
7 7
@@ -9,15 +9,9 @@
9#include "mpscmvff.h" 9#include "mpscmvff.h"
10#include "mpslib.h" 10#include "mpslib.h"
11#include "mpsavm.h" 11#include "mpsavm.h"
12#include "mps.h"
13 12
14#include "testlib.h" 13#include "testlib.h"
15 14
16#include <stdio.h>
17#include "mpstd.h"
18#ifdef MPS_OS_SU
19#include "ossu.h"
20#endif
21#include <stdlib.h> 15#include <stdlib.h>
22#include <stdarg.h> 16#include <stdarg.h>
23#ifdef MPS_OS_IA 17#ifdef MPS_OS_IA
@@ -29,7 +23,7 @@ struct itimerspec; /* stop complaints from time.h */
29#define TRUE 1 23#define TRUE 1
30#define FALSE 0 24#define FALSE 0
31 25
32#define testArenaSIZE ((((size_t)64)<<20) - 4) 26#define testArenaSIZE ((((size_t)3)<<23) - 4)
33#define testSetSIZE 200 27#define testSetSIZE 200
34#define testLOOPS 10 28#define testLOOPS 10
35 29
@@ -51,7 +45,7 @@ static mps_res_t make(mps_addr_t *p, mps_ap_t ap, size_t size)
51static mps_res_t stress(mps_class_t class, mps_arena_t arena, 45static mps_res_t stress(mps_class_t class, mps_arena_t arena,
52 size_t (*size)(int i), ...) 46 size_t (*size)(int i), ...)
53{ 47{
54 mps_res_t res; 48 mps_res_t res = MPS_RES_OK;
55 mps_pool_t pool; 49 mps_pool_t pool;
56 mps_ap_t ap; 50 mps_ap_t ap;
57 va_list arg; 51 va_list arg;
@@ -73,14 +67,10 @@ static mps_res_t stress(mps_class_t class, mps_arena_t arena,
73 67
74 res = make((mps_addr_t *)&ps[i], ap, ss[i]); 68 res = make((mps_addr_t *)&ps[i], ap, ss[i]);
75 if (res != MPS_RES_OK) 69 if (res != MPS_RES_OK)
76 return res; 70 goto allocFail;
77 if (ss[i] >= sizeof(ps[i])) 71 if (ss[i] >= sizeof(ps[i]))
78 *ps[i] = 1; /* Write something, so it gets swap. */ 72 *ps[i] = 1; /* Write something, so it gets swap. */
79
80 if (i && i%4==0) putchar('\n');
81 printf("%8lX %6lX ", (unsigned long)ps[i], (unsigned long)ss[i]);
82 } 73 }
83 putchar('\n');
84 74
85 mps_pool_check_fenceposts(pool); 75 mps_pool_check_fenceposts(pool);
86 76
@@ -107,18 +97,16 @@ static mps_res_t stress(mps_class_t class, mps_arena_t arena,
107 for (i=testSetSIZE/2; i<testSetSIZE; ++i) { 97 for (i=testSetSIZE/2; i<testSetSIZE; ++i) {
108 ss[i] = (*size)(i); 98 ss[i] = (*size)(i);
109 res = make((mps_addr_t *)&ps[i], ap, ss[i]); 99 res = make((mps_addr_t *)&ps[i], ap, ss[i]);
110 if (res != MPS_RES_OK) return res; 100 if (res != MPS_RES_OK)
111 101 goto allocFail;
112 if (i && i%4==0) putchar('\n');
113 printf("%8lX %6lX ", (unsigned long)ps[i], (unsigned long)ss[i]);
114 } 102 }
115 putchar('\n');
116 } 103 }
117 104
105allocFail:
118 mps_ap_destroy(ap); 106 mps_ap_destroy(ap);
119 mps_pool_destroy(pool); 107 mps_pool_destroy(pool);
120 108
121 return MPS_RES_OK; 109 return res;
122} 110}
123 111
124 112
@@ -136,21 +124,25 @@ static size_t randomSize8(int i)
136 124
137static mps_pool_debug_option_s debugOptions = { (void *)"postpost", 8 }; 125static mps_pool_debug_option_s debugOptions = { (void *)"postpost", 8 };
138 126
139static int testInArena(mps_arena_t arena) 127static void testInArena(mps_arena_t arena)
140{ 128{
129 mps_res_t res;
130
141 printf("MVFF\n\n"); 131 printf("MVFF\n\n");
142 die(stress(mps_class_mvff(), arena, randomSize8, 132 res = stress(mps_class_mvff(), arena, randomSize8,
143 (size_t)65536, (size_t)32, (size_t)4, TRUE, TRUE, TRUE), 133 (size_t)65536, (size_t)32, (size_t)4, TRUE, TRUE, TRUE);
144 "stress MVFF"); 134 if (res == MPS_RES_COMMIT_LIMIT) return;
135 die(res, "stress MVFF");
145 printf("MV debug\n\n"); 136 printf("MV debug\n\n");
146 die(stress(mps_class_mv_debug(), arena, randomSize8, 137 res = stress(mps_class_mv_debug(), arena, randomSize8,
147 &debugOptions, (size_t)65536, (size_t)32, (size_t)65536), 138 &debugOptions, (size_t)65536, (size_t)32, (size_t)65536);
148 "stress MV debug"); 139 if (res == MPS_RES_COMMIT_LIMIT) return;
140 die(res, "stress MV debug");
149 printf("MV\n\n"); 141 printf("MV\n\n");
150 die(stress(mps_class_mv(), arena, randomSize8, 142 res = stress(mps_class_mv(), arena, randomSize8,
151 (size_t)65536, (size_t)32, (size_t)65536), 143 (size_t)65536, (size_t)32, (size_t)65536);
152 "stress MV"); 144 if (res == MPS_RES_COMMIT_LIMIT) return;
153 return 0; 145 die(res, "stress MV");
154} 146}
155 147
156 148
@@ -160,18 +152,15 @@ int main(int argc, char **argv)
160 152
161 randomize(argc, argv); 153 randomize(argc, argv);
162 154
163 die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), 155 die(mps_arena_create(&arena, mps_arena_class_vm(), 2*testArenaSIZE),
164 "mps_arena_create"); 156 "mps_arena_create");
165 157 mps_arena_commit_limit_set(arena, testArenaSIZE);
166 testInArena(arena); 158 testInArena(arena);
167
168 mps_arena_destroy(arena); 159 mps_arena_destroy(arena);
169 160
170 die(mps_arena_create(&arena, mps_arena_class_vmnz(), testArenaSIZE), 161 die(mps_arena_create(&arena, mps_arena_class_vmnz(), 2*testArenaSIZE),
171 "mps_arena_create"); 162 "mps_arena_create");
172
173 testInArena(arena); 163 testInArena(arena);
174
175 mps_arena_destroy(arena); 164 mps_arena_destroy(arena);
176 165
177 return 0; 166 return 0;