Made "NMBCLUSTERS" calculation dynamic and fixed bogus use of "NMBCLUSTERS"

in machdep.c (it should use the global nmbclusters). Moved the calculation
of nmbclusters into conf/param.c (same place where nmbclusters has always
been assigned), and made the calculation include an extra amount based
on "maxusers". NMBCLUSTERS can still be overrided in the kernel config
file as always, but this change will make that generally unnecessary. This
fixes the "bug" reports from people who have misconfigured kernels seeing
the network hang when the mbuf cluster pool runs out.

Reviewed by:	John Dyson
This commit is contained in:
David Greenman 1995-05-25 07:41:28 +00:00
parent cddc961a83
commit b64b660cd3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=8748
7 changed files with 13 additions and 25 deletions

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)genassym.c 5.11 (Berkeley) 5/10/91
* $Id: genassym.c,v 1.24 1995/02/14 06:00:17 phk Exp $
* $Id: genassym.c,v 1.25 1995/02/14 18:01:24 phk Exp $
*/
#include <stdio.h>
@ -121,7 +121,6 @@ main()
printf("#define\tVM_MAXUSER_ADDRESS 0x%lx\n", VM_MAXUSER_ADDRESS);
printf("#define\tKERNBASE 0x%x\n", KERNBASE);
printf("#define\tMSGBUFPTECNT %d\n", btoc(sizeof (struct msgbuf)));
printf("#define\tNMBCLUSTERS %d\n", NMBCLUSTERS);
printf("#define\tMCLBYTES %d\n", MCLBYTES);
printf("#define\tPCB_LINK %p\n", &pcb->pcb_tss.tss_link);
printf("#define\tPCB_ESP0 %p\n", &pcb->pcb_tss.tss_esp0);

View File

@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
* $Id: machdep.c,v 1.125 1995/05/11 19:26:08 rgrimes Exp $
* $Id: machdep.c,v 1.126 1995/05/12 19:17:14 wollman Exp $
*/
#include "npx.h"
@ -342,11 +342,11 @@ again:
* Finally, allocate mbuf pool. Since mclrefcnt is an off-size
* we use the more space efficient malloc in place of kmem_alloc.
*/
mclrefcnt = (char *)malloc(NMBCLUSTERS+CLBYTES/MCLBYTES,
mclrefcnt = (char *)malloc(nmbclusters+CLBYTES/MCLBYTES,
M_MBUF, M_NOWAIT);
bzero(mclrefcnt, NMBCLUSTERS+CLBYTES/MCLBYTES);
bzero(mclrefcnt, nmbclusters+CLBYTES/MCLBYTES);
mb_map = kmem_suballoc(kmem_map, (vm_offset_t *)&mbutl, &maxaddr,
VM_MBUF_SIZE, FALSE);
nmbclusters * MCLBYTES, FALSE);
/*
* Initialize callouts
*/

View File

@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91
* $Id: vmparam.h,v 1.16 1994/09/23 07:00:12 davidg Exp $
* $Id: vmparam.h,v 1.17 1995/01/09 16:04:44 davidg Exp $
*/
@ -127,7 +127,6 @@
#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)KERNBASE + NKPDE*NBPG*NPTEPG)
/* virtual sizes (bytes) for various kernel submaps */
#define VM_MBUF_SIZE (NMBCLUSTERS*MCLBYTES)
#define VM_KMEM_SIZE (32 * 1024 * 1024)
#define VM_PHYS_SIZE (USRIOSIZE*CLBYTES)

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)genassym.c 5.11 (Berkeley) 5/10/91
* $Id: genassym.c,v 1.24 1995/02/14 06:00:17 phk Exp $
* $Id: genassym.c,v 1.25 1995/02/14 18:01:24 phk Exp $
*/
#include <stdio.h>
@ -121,7 +121,6 @@ main()
printf("#define\tVM_MAXUSER_ADDRESS 0x%lx\n", VM_MAXUSER_ADDRESS);
printf("#define\tKERNBASE 0x%x\n", KERNBASE);
printf("#define\tMSGBUFPTECNT %d\n", btoc(sizeof (struct msgbuf)));
printf("#define\tNMBCLUSTERS %d\n", NMBCLUSTERS);
printf("#define\tMCLBYTES %d\n", MCLBYTES);
printf("#define\tPCB_LINK %p\n", &pcb->pcb_tss.tss_link);
printf("#define\tPCB_ESP0 %p\n", &pcb->pcb_tss.tss_esp0);

View File

@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
* $Id: machdep.c,v 1.125 1995/05/11 19:26:08 rgrimes Exp $
* $Id: machdep.c,v 1.126 1995/05/12 19:17:14 wollman Exp $
*/
#include "npx.h"
@ -342,11 +342,11 @@ again:
* Finally, allocate mbuf pool. Since mclrefcnt is an off-size
* we use the more space efficient malloc in place of kmem_alloc.
*/
mclrefcnt = (char *)malloc(NMBCLUSTERS+CLBYTES/MCLBYTES,
mclrefcnt = (char *)malloc(nmbclusters+CLBYTES/MCLBYTES,
M_MBUF, M_NOWAIT);
bzero(mclrefcnt, NMBCLUSTERS+CLBYTES/MCLBYTES);
bzero(mclrefcnt, nmbclusters+CLBYTES/MCLBYTES);
mb_map = kmem_suballoc(kmem_map, (vm_offset_t *)&mbutl, &maxaddr,
VM_MBUF_SIZE, FALSE);
nmbclusters * MCLBYTES, FALSE);
/*
* Initialize callouts
*/

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)param.h 5.8 (Berkeley) 6/28/91
* $Id: param.h,v 1.17 1995/01/23 19:21:49 davidg Exp $
* $Id: param.h,v 1.18 1995/02/19 10:36:17 gpalmer Exp $
*/
#ifndef _MACHINE_PARAM_H_
@ -108,14 +108,6 @@
#define MCLBYTES (1 << MCLSHIFT) /* size of an m_buf cluster */
#define MCLOFSET (MCLBYTES - 1) /* offset within an m_buf cluster */
#ifndef NMBCLUSTERS
#ifdef GATEWAY
#define NMBCLUSTERS 512 /* map size, max cluster allocation */
#else
#define NMBCLUSTERS 256 /* map size, max cluster allocation */
#endif /* GATEWAY */
#endif /* NMBCLUSTERS */
/*
* Some macros for units conversion
*/

View File

@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91
* $Id: vmparam.h,v 1.16 1994/09/23 07:00:12 davidg Exp $
* $Id: vmparam.h,v 1.17 1995/01/09 16:04:44 davidg Exp $
*/
@ -127,7 +127,6 @@
#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)KERNBASE + NKPDE*NBPG*NPTEPG)
/* virtual sizes (bytes) for various kernel submaps */
#define VM_MBUF_SIZE (NMBCLUSTERS*MCLBYTES)
#define VM_KMEM_SIZE (32 * 1024 * 1024)
#define VM_PHYS_SIZE (USRIOSIZE*CLBYTES)