From 88cc09a5800b80cf45e81531014ec8e8ba44386d Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Fri, 7 Feb 2014 23:33:34 +0100 Subject: cwfs: limit memsize() to 1GB until pool can handle huge allocations --- sys/src/cmd/cwfs/malloc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'sys/src/cmd/cwfs/malloc.c') diff --git a/sys/src/cmd/cwfs/malloc.c b/sys/src/cmd/cwfs/malloc.c index ee3140bec..aed02b117 100644 --- a/sys/src/cmd/cwfs/malloc.c +++ b/sys/src/cmd/cwfs/malloc.c @@ -4,7 +4,7 @@ static ulong memsize(void) { - ulong pgsize, userpgs, userused; + ulong pgsize, pgmax, userpgs, userused; char *s, *f[2]; int n, mpcnt; Biobuf *bp; @@ -29,13 +29,18 @@ memsize(void) Bterm(bp); } if(pgsize && userused < userpgs){ + userpgs -= userused; if(s = getenv("fsmempercent")){ mpcnt = atoi(s); free(s); } if(mpcnt < 1) mpcnt = 1; - return ((userpgs-userused)*mpcnt/100)*pgsize; + userpgs = (userpgs*mpcnt)/100; + pgmax = (1024*1024*1024)/pgsize; /* 1GB max */ + if(userpgs > pgmax) + userpgs = pgmax; + return userpgs*pgsize; } return 16*MB; } -- cgit v1.2.3