proper sizing of kmem_arena on different ports

PR port-i386/45946: Kernel locks up in VMEM system
This commit is contained in:
para 2012-02-10 17:35:47 +00:00
parent ca0e389587
commit 4c23b30cff
22 changed files with 65 additions and 63 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.40 2012/01/24 20:03:36 christos Exp $ */
/* $NetBSD: param.h,v 1.41 2012/02/10 17:35:50 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -92,9 +92,10 @@
/*
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
* No enforced maximum on alpha
*/
#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((16 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_UNLIMITED 1
/*
* Mach derived conversion macros

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.48 2011/02/08 20:20:08 rmind Exp $ */
/* $NetBSD: param.h,v 1.49 2012/02/10 17:35:49 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -60,7 +60,7 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#ifdef _KERNEL

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.34 2011/02/08 20:20:10 rmind Exp $ */
/* $NetBSD: param.h,v 1.35 2012/02/10 17:35:49 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -60,8 +60,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#ifdef _KERNEL

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.11 2011/02/08 20:20:10 rmind Exp $ */
/* $NetBSD: param.h,v 1.12 2012/02/10 17:35:49 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -69,8 +69,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
/*
* Interrupt glue.

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.52 2011/02/08 20:20:13 rmind Exp $ */
/* $NetBSD: param.h,v 1.53 2012/02/10 17:35:49 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -60,8 +60,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((6 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#if defined(_KERNEL) && !defined(_LOCORE)
#include <machine/intr.h>

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.18 2012/02/04 17:56:16 para Exp $ */
/* $NetBSD: param.h,v 1.19 2012/02/10 17:35:49 para Exp $ */
/* $OpenBSD: param.h,v 1.12 2001/07/06 02:07:41 provos Exp $ */
@ -83,7 +83,7 @@
* Size of kernel malloc arena in logical pages
*/
#define NKMEMPAGES_MIN_DEFAULT ((16 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((256 * 1024 * 1024) >> PAGE_SHIFT)
/*
* Mach derived conversion macros

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.75 2012/02/04 17:56:16 para Exp $ */
/* $NetBSD: param.h,v 1.76 2012/02/10 17:35:49 para Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
@ -128,8 +128,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((280 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((16 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((360 * 1024 * 1024) >> PAGE_SHIFT)
/*
* Mach derived conversion macros

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.7 2012/01/24 20:03:37 christos Exp $ */
/* $NetBSD: param.h,v 1.8 2012/02/10 17:35:49 para Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
@ -103,9 +103,10 @@
/*
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
* No enforced maxmimum an ia64
*/
#define NKMEMPAGES_MIN_DEFAULT ((12 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((32 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_UNLIMITED 1
/*
* Mach derived conversion macros

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.12 2011/11/05 15:33:18 tsutsui Exp $ */
/* $NetBSD: param.h,v 1.13 2012/02/10 17:35:48 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -61,8 +61,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#include <machine/intr.h>

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.44 2011/02/08 20:20:18 rmind Exp $ */
/* $NetBSD: param.h,v 1.45 2012/02/10 17:35:48 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -100,7 +100,7 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#include <machine/psl.h>

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.18 2011/07/28 01:24:31 macallan Exp $ */
/* $NetBSD: param.h,v 1.19 2012/02/10 17:35:48 para Exp $ */
/*-
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@ -50,8 +50,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((48 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((16 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((256 * 1024 * 1024) >> PAGE_SHIFT)
#endif /* _KERNEL && !_MODULE */

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.32 2011/02/08 20:20:20 rmind Exp $ */
/* $NetBSD: param.h,v 1.33 2012/02/10 17:35:48 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -67,8 +67,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((4 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((6 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((16 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#if defined(_KERNEL) && !defined(_LOCORE)
extern void _delay(unsigned int);

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.16 2011/02/08 20:20:20 rmind Exp $ */
/* $NetBSD: param.h,v 1.17 2012/02/10 17:35:48 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -61,8 +61,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((4 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((16 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#if defined(_KERNEL) && !defined(_LOCORE)
#include <machine/intr.h>

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.11 2011/02/08 20:20:21 rmind Exp $ */
/* $NetBSD: param.h,v 1.12 2012/02/10 17:35:48 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -63,8 +63,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((4 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((4 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((16 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#if !defined(_LOCORE)
#define delay(us) _delay((us) << 8)

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.22 2012/01/24 20:03:37 christos Exp $ */
/* $NetBSD: param.h,v 1.23 2012/02/10 17:35:48 para Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc. All rights reserved.
@ -93,7 +93,7 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((6 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((6 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((16 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#endif /* !_SH3_PARAM_H_ */

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.69 2012/01/24 20:03:37 christos Exp $ */
/* $NetBSD: param.h,v 1.70 2012/02/10 17:35:48 para Exp $ */
/*
* Copyright (c) 1992, 1993
@ -114,8 +114,8 @@ extern int nbpg, pgofset, pgshift;
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((6 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((32 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((16 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#if defined(_KERNEL) || defined(_STANDALONE)
#ifndef _LOCORE

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.13 2011/02/08 20:20:24 rmind Exp $ */
/* $NetBSD: param.h,v 1.14 2012/02/10 17:35:48 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -90,8 +90,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((32 * 1024 * 1024) >> PAGE_SHIFT)
#if defined(_KERNEL) && !defined(_LOCORE)

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.59 2011/02/08 20:20:25 rmind Exp $ */
/* $NetBSD: param.h,v 1.60 2012/02/10 17:35:47 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -79,8 +79,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((64 * 1024 * 1024) >> PAGE_SHIFT)
#if defined(_KERNEL) && !defined(_LOCORE)

View File

@ -1,4 +1,4 @@
/* $NetBSD: param.h,v 1.27 2011/02/08 20:20:26 rmind Exp $ */
/* $NetBSD: param.h,v 1.28 2012/02/10 17:35:47 para Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -64,8 +64,8 @@
* Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
#define NKMEMPAGES_MIN_DEFAULT ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((4 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MIN_DEFAULT ((16 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
#if defined(_KERNEL) && !defined(_LOCORE)
#include <machine/intr.h>

View File

@ -1,4 +1,4 @@
/* $NetBSD: subr_vmem.c,v 1.71 2012/02/01 23:43:49 para Exp $ */
/* $NetBSD: subr_vmem.c,v 1.72 2012/02/10 17:35:47 para Exp $ */
/*-
* Copyright (c)2006,2007,2008,2009 YAMAMOTO Takashi,
@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: subr_vmem.c,v 1.71 2012/02/01 23:43:49 para Exp $");
__KERNEL_RCSID(0, "$NetBSD: subr_vmem.c,v 1.72 2012/02/10 17:35:47 para Exp $");
#if defined(_KERNEL)
#include "opt_ddb.h"
@ -804,7 +804,7 @@ vmem_import(vmem_t *vm, vmem_size_t size, vm_flag_t flags)
}
if (vm->vm_flags & VM_LARGEIMPORT) {
size *= 32;
size *= 8;
}
if (vm->vm_flags & VM_XIMPORT) {

View File

@ -1,4 +1,4 @@
/* $NetBSD: uipc_mbuf.c,v 1.144 2012/01/27 19:48:40 para Exp $ */
/* $NetBSD: uipc_mbuf.c,v 1.145 2012/02/10 17:35:47 para Exp $ */
/*-
* Copyright (c) 1999, 2001 The NetBSD Foundation, Inc.
@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: uipc_mbuf.c,v 1.144 2012/01/27 19:48:40 para Exp $");
__KERNEL_RCSID(0, "$NetBSD: uipc_mbuf.c,v 1.145 2012/02/10 17:35:47 para Exp $");
#include "opt_mbuftrace.h"
#include "opt_nmbclusters.h"
@ -154,7 +154,7 @@ nmbclusters_limit(void)
/* direct mapping, doesn't use space in kmem_map */
vsize_t max_size = physmem / 4;
#else
vsize_t max_size = MIN(physmem / 4, (128 * 1024) / 2);
vsize_t max_size = MIN(physmem / 4, nkmempages / 4);
#endif
max_size = max_size * PAGE_SIZE / MCLBYTES;

View File

@ -1,4 +1,4 @@
/* $NetBSD: uvm_km.c,v 1.119 2012/02/04 17:56:17 para Exp $ */
/* $NetBSD: uvm_km.c,v 1.120 2012/02/10 17:35:47 para Exp $ */
/*
* Copyright (c) 1997 Charles D. Cranor and Washington University.
@ -120,7 +120,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: uvm_km.c,v 1.119 2012/02/04 17:56:17 para Exp $");
__KERNEL_RCSID(0, "$NetBSD: uvm_km.c,v 1.120 2012/02/10 17:35:47 para Exp $");
#include "opt_uvmhist.h"
@ -305,7 +305,7 @@ uvm_km_bootstrap(vaddr_t start, vaddr_t end)
kmem_va_arena = vmem_create("kva", 0, 0, PAGE_SIZE,
vmem_alloc, vmem_free, kmem_arena,
(kmem_arena_small ? 4 : 16) * PAGE_SIZE,
(kmem_arena_small ? 4 : 8) * PAGE_SIZE,
VM_NOSLEEP | VM_BOOTSTRAP, IPL_VM);
UVMHIST_LOG(maphist, "<- done", 0,0,0,0);