Make somaxkva modifyable via sysctl (and compile-time) instead of

hardcoding its size.
This commit is contained in:
ragge 2003-07-02 20:07:45 +00:00
parent c6308a0598
commit ef18f28fe4
4 changed files with 27 additions and 8 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: kern_sysctl.c,v 1.137 2003/06/29 22:31:24 fvdl Exp $ */
/* $NetBSD: kern_sysctl.c,v 1.138 2003/07/02 20:07:45 ragge Exp $ */
/*-
* Copyright (c) 1982, 1986, 1989, 1993
@ -43,7 +43,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: kern_sysctl.c,v 1.137 2003/06/29 22:31:24 fvdl Exp $");
__KERNEL_RCSID(0, "$NetBSD: kern_sysctl.c,v 1.138 2003/07/02 20:07:45 ragge Exp $");
#include "opt_ddb.h"
#include "opt_insecure.h"
@ -586,6 +586,18 @@ kern_sysctl(int *name, u_int namelen, void *oldp, size_t *oldlenp,
#endif
case KERN_MAXPHYS:
return (sysctl_rdint(oldp, oldlenp, newp, MAXPHYS));
case KERN_SOMAXKVA:
{
int new_somaxkva = somaxkva;
error = sysctl_int(oldp, oldlenp, newp, newlen, &new_somaxkva);
if (newp && !error) {
if (new_somaxkva < (16 * 1024 * 1024)) /* sanity */
return (EINVAL);
somaxkva = new_somaxkva;
}
return (error);
}
case KERN_SBMAX:
{
int new_sbmax = sb_max;

View File

@ -1,4 +1,4 @@
/* $NetBSD: uipc_socket.c,v 1.83 2003/06/29 22:31:30 fvdl Exp $ */
/* $NetBSD: uipc_socket.c,v 1.84 2003/07/02 20:07:45 ragge Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@ -72,11 +72,12 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.83 2003/06/29 22:31:30 fvdl Exp $");
__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.84 2003/07/02 20:07:45 ragge Exp $");
#include "opt_sock_counters.h"
#include "opt_sosend_loan.h"
#include "opt_mbuftrace.h"
#include "opt_somaxkva.h"
#include <sys/param.h>
#include <sys/systm.h>
@ -147,7 +148,10 @@ int use_sosend_loan = 1;
struct mbuf *so_pendfree;
int somaxkva = 16 * 1024 * 1024;
#ifndef SOMAXKVA
#define SOMAXKVA (16 * 1024 * 1024)
#endif
int somaxkva = SOMAXKVA;
int socurkva;
int sokvawaiters;

View File

@ -1,4 +1,4 @@
/* $NetBSD: socketvar.h,v 1.62 2003/06/29 22:32:28 fvdl Exp $ */
/* $NetBSD: socketvar.h,v 1.63 2003/07/02 20:07:46 ragge Exp $ */
/*-
* Copyright (c) 1982, 1986, 1990, 1993
@ -254,6 +254,7 @@ do { \
#ifdef _KERNEL
extern u_long sb_max;
extern int somaxkva;
/* to catch callers missing new second argument to sonewconn: */
#define sonewconn(head, connstatus) sonewconn1((head), (connstatus))

View File

@ -1,4 +1,4 @@
/* $NetBSD: sysctl.h,v 1.95 2003/06/29 22:32:28 fvdl Exp $ */
/* $NetBSD: sysctl.h,v 1.96 2003/07/02 20:07:47 ragge Exp $ */
/*
* Copyright (c) 1989, 1993
@ -196,7 +196,8 @@ struct ctlname {
#define KERN_POSIX_SPIN_LOCKS 70 /* int: POSIX Spin Locks option */
#define KERN_POSIX_READER_WRITER_LOCKS 71 /* int: POSIX R/W Locks option */
#define KERN_DUMP_ON_PANIC 72 /* int: dump on panic */
#define KERN_MAXID 73 /* number of valid kern ids */
#define KERN_SOMAXKVA 73 /* int: max socket kernel virtual mem */
#define KERN_MAXID 74 /* number of valid kern ids */
#define CTL_KERN_NAMES { \
@ -273,6 +274,7 @@ struct ctlname {
{ "posix_spin_locks", CTLTYPE_INT }, \
{ "posix_reader_writer_locks", CTLTYPE_INT }, \
{ "dump_on_panic", CTLTYPE_INT}, \
{ "somaxkva", CTLTYPE_INT}, \
}
/*