diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1997-02-24 12:50:29 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1997-02-24 12:50:29 +0000 |
commit | 6fb0505fc2c8797b7da79745e775e74a9fbf19e4 (patch) | |
tree | bd788bf73e175adaf711d52f1e9b54671d932dc5 | |
parent | 1f84de064087bc3f31c630ae887c54e763d3a426 (diff) |
implement BUFCACHEPERCENT and take care with kva space
-rw-r--r-- | sys/arch/powerpc/powerpc/machdep.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/sys/arch/powerpc/powerpc/machdep.c b/sys/arch/powerpc/powerpc/machdep.c index fce1130babf..0eb035ec7fb 100644 --- a/sys/arch/powerpc/powerpc/machdep.c +++ b/sys/arch/powerpc/powerpc/machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: machdep.c,v 1.5 1997/02/05 01:33:54 rahnds Exp $ */ +/* $OpenBSD: machdep.c,v 1.6 1997/02/24 12:50:28 deraadt Exp $ */ /* $NetBSD: machdep.c,v 1.4 1996/10/16 19:33:11 ws Exp $ */ /* @@ -465,16 +465,29 @@ allocsys(v) valloc(msqids, struct msqid_ds, msginfo.msgmni); #endif +#ifndef BUFCACHEPERCENT +#define BUFCACHEPERCENT 5 +#endif /* * Decide on buffer space to use. */ if (bufpages == 0) - bufpages = (physmem / 20) / CLSIZE; + bufpages = (physmem / ((100/BUFCACHEPERCENT) / CLSIZE); if (nbuf == 0) { nbuf = bufpages; if (nbuf < 16) nbuf = 16; } + /* Restrict to at most 70% filled kvm */ + if (nbuf * MAXBSIZE > + (VM_MAX_KERNEL_ADDRESS-VM_MIN_KERNEL_ADDRESS) * 7 / 10) + nbuf = (VM_MAX_KERNEL_ADDRESS-VM_MIN_KERNEL_ADDRESS) / + MAXBSIZE * 7 / 10; + + /* More buffer pages than fits into the buffers is senseless. */ + if (bufpages > nbuf * MAXBSIZE / CLBYTES) + bufpages = nbuf * MAXBSIZE / CLBYTES; + if (nswbuf == 0) { nswbuf = (nbuf / 2) & ~1; if (nswbuf > 256) |