From owner-svn-src-head@FreeBSD.ORG Tue Mar 10 21:28:43 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 91579106566B; Tue, 10 Mar 2009 21:28:43 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 75BFC8FC0C; Tue, 10 Mar 2009 21:28:43 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2ALSh5D074120; Tue, 10 Mar 2009 21:28:43 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2ALShYQ074117; Tue, 10 Mar 2009 21:28:43 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <200903102128.n2ALShYQ074117@svn.freebsd.org> From: John Baldwin Date: Tue, 10 Mar 2009 21:28:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189649 - in head/sys: kern sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Mar 2009 21:28:44 -0000 Author: jhb Date: Tue Mar 10 21:28:43 2009 New Revision: 189649 URL: http://svn.freebsd.org/changeset/base/189649 Log: - Make maxpipekva a signed long rather than an unsigned long as overflow is more likely to be noticed with signed types. - Make amountpipekva a long as well to match maxpipekva. Discussed with: bde Modified: head/sys/kern/subr_param.c head/sys/kern/sys_pipe.c head/sys/sys/pipe.h Modified: head/sys/kern/subr_param.c ============================================================================== --- head/sys/kern/subr_param.c Tue Mar 10 21:27:15 2009 (r189648) +++ head/sys/kern/subr_param.c Tue Mar 10 21:28:43 2009 (r189649) @@ -91,7 +91,7 @@ int nbuf; int nswbuf; long maxswzone; /* max swmeta KVA storage */ long maxbcache; /* max buffer cache KVA storage */ -u_long maxpipekva; /* Limit on pipe KVA */ +long maxpipekva; /* Limit on pipe KVA */ int vm_guest; /* Running as virtual machine guest? */ u_long maxtsiz; /* max text size */ u_long dfldsiz; /* initial data size limit */ @@ -282,7 +282,7 @@ init_param3(long kmempages) maxpipekva = (kmempages / 20) * PAGE_SIZE; if (maxpipekva < 512 * 1024) maxpipekva = 512 * 1024; - TUNABLE_ULONG_FETCH("kern.ipc.maxpipekva", &maxpipekva); + TUNABLE_LONG_FETCH("kern.ipc.maxpipekva", &maxpipekva); } /* Modified: head/sys/kern/sys_pipe.c ============================================================================== --- head/sys/kern/sys_pipe.c Tue Mar 10 21:27:15 2009 (r189648) +++ head/sys/kern/sys_pipe.c Tue Mar 10 21:28:43 2009 (r189649) @@ -178,15 +178,15 @@ static struct filterops pipe_wfiltops = #define MINPIPESIZE (PIPE_SIZE/3) #define MAXPIPESIZE (2*PIPE_SIZE/3) -static int amountpipekva; +static long amountpipekva; static int pipefragretry; static int pipeallocfail; static int piperesizefail; static int piperesizeallowed = 1; -SYSCTL_ULONG(_kern_ipc, OID_AUTO, maxpipekva, CTLFLAG_RDTUN, +SYSCTL_LONG(_kern_ipc, OID_AUTO, maxpipekva, CTLFLAG_RDTUN, &maxpipekva, 0, "Pipe KVA limit"); -SYSCTL_INT(_kern_ipc, OID_AUTO, pipekva, CTLFLAG_RD, +SYSCTL_LONG(_kern_ipc, OID_AUTO, pipekva, CTLFLAG_RD, &amountpipekva, 0, "Pipe KVA usage"); SYSCTL_INT(_kern_ipc, OID_AUTO, pipefragretry, CTLFLAG_RD, &pipefragretry, 0, "Pipe allocation retries due to fragmentation"); @@ -463,7 +463,7 @@ retry: cpipe->pipe_buffer.in = cnt; cpipe->pipe_buffer.out = 0; cpipe->pipe_buffer.cnt = cnt; - atomic_add_int(&amountpipekva, cpipe->pipe_buffer.size); + atomic_add_long(&amountpipekva, cpipe->pipe_buffer.size); return (0); } @@ -1457,7 +1457,7 @@ pipe_free_kmem(cpipe) ("pipe_free_kmem: pipe mutex locked")); if (cpipe->pipe_buffer.buffer != NULL) { - atomic_subtract_int(&amountpipekva, cpipe->pipe_buffer.size); + atomic_subtract_long(&amountpipekva, cpipe->pipe_buffer.size); vm_map_remove(pipe_map, (vm_offset_t)cpipe->pipe_buffer.buffer, (vm_offset_t)cpipe->pipe_buffer.buffer + cpipe->pipe_buffer.size); Modified: head/sys/sys/pipe.h ============================================================================== --- head/sys/sys/pipe.h Tue Mar 10 21:27:15 2009 (r189648) +++ head/sys/sys/pipe.h Tue Mar 10 21:28:43 2009 (r189649) @@ -56,7 +56,7 @@ /* * See sys_pipe.c for info on what these limits mean. */ -extern u_long maxpipekva; +extern long maxpipekva; /* * Pipe buffer information.