Speedup sbrk tst a bit (forking 100Mbyte processes is slow)
This commit is contained in:
parent
6479766334
commit
11b7438b10
1 changed files with 10 additions and 4 deletions
14
usertests.c
14
usertests.c
|
@ -1238,7 +1238,7 @@ forktest(void)
|
||||||
void
|
void
|
||||||
sbrktest(void)
|
sbrktest(void)
|
||||||
{
|
{
|
||||||
int fds[2], pid, pids[32], ppid;
|
int fds[2], pid, pids[10], ppid;
|
||||||
char *a, *b, *c, *lastaddr, *oldbrk, *p, scratch;
|
char *a, *b, *c, *lastaddr, *oldbrk, *p, scratch;
|
||||||
uint amt;
|
uint amt;
|
||||||
|
|
||||||
|
@ -1310,6 +1310,13 @@ sbrktest(void)
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a = sbrk(0);
|
||||||
|
c = sbrk(-(sbrk(0) - oldbrk));
|
||||||
|
if(c != a){
|
||||||
|
printf(stdout, "sbrk downsize failed, a %x c %x\n", a, c);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
// can we read the kernel's memory?
|
// can we read the kernel's memory?
|
||||||
for(a = (char*)(KERNBASE); a < (char*) (KERNBASE+2000000); a += 50000){
|
for(a = (char*)(KERNBASE); a < (char*) (KERNBASE+2000000); a += 50000){
|
||||||
ppid = getpid();
|
ppid = getpid();
|
||||||
|
@ -1328,15 +1335,14 @@ sbrktest(void)
|
||||||
|
|
||||||
// if we run the system out of memory, does it clean up the last
|
// if we run the system out of memory, does it clean up the last
|
||||||
// failed allocation?
|
// failed allocation?
|
||||||
sbrk(-(sbrk(0) - oldbrk));
|
|
||||||
if(pipe(fds) != 0){
|
if(pipe(fds) != 0){
|
||||||
printf(1, "pipe() failed\n");
|
printf(1, "pipe() failed\n");
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
for(i = 0; i < sizeof(pids)/sizeof(pids[0]); i++){
|
for(i = 0; i < sizeof(pids)/sizeof(pids[0]); i++){
|
||||||
if((pids[i] = fork()) == 0){
|
if((pids[i] = fork()) == 0){
|
||||||
// allocate the full 640K
|
// allocate a lot of memory
|
||||||
sbrk((640 * 1024) - (uint)sbrk(0));
|
sbrk(BIG - (uint)sbrk(0));
|
||||||
write(fds[1], "x", 1);
|
write(fds[1], "x", 1);
|
||||||
// sit around until killed
|
// sit around until killed
|
||||||
for(;;) sleep(1000);
|
for(;;) sleep(1000);
|
||||||
|
|
Loading…
Reference in a new issue