diff options
| author | Pekka Pirinen | 2000-09-25 18:04:44 +0100 |
|---|---|---|
| committer | Pekka Pirinen | 2000-09-25 18:04:44 +0100 |
| commit | dfd26e7a4dc170cdbac4a1ad82f32e31a0e5f77a (patch) | |
| tree | 41a649e5c4e83c9f825ea64c9c9dd854cd8bd563 | |
| parent | 46ea0a7343ec76aeb27198bb6aca9a60af3680d4 (diff) | |
| download | emacs-dfd26e7a4dc170cdbac4a1ad82f32e31a0e5f77a.tar.gz emacs-dfd26e7a4dc170cdbac4a1ad82f32e31a0e5f77a.zip | |
Smaller size
Copied from Perforce
Change: 21541
ServerID: perforce.ravenbrook.com
| -rw-r--r-- | mps/src/apss.c | 67 |
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) | |||
| 51 | static mps_res_t stress(mps_class_t class, mps_arena_t arena, | 45 | static 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 | ||
| 105 | allocFail: | ||
| 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 | ||
| 137 | static mps_pool_debug_option_s debugOptions = { (void *)"postpost", 8 }; | 125 | static mps_pool_debug_option_s debugOptions = { (void *)"postpost", 8 }; |
| 138 | 126 | ||
| 139 | static int testInArena(mps_arena_t arena) | 127 | static 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; |