Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Oct 2010 11:44:58 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r213923 - stable/7/sys/kern
Message-ID:  <201010161144.o9GBiwoM075720@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Sat Oct 16 11:44:58 2010
New Revision: 213923
URL: http://svn.freebsd.org/changeset/base/213923

Log:
  MFC r213651: add kmem_map_free sysctl: query largest contiguous free range in kmem_map

Modified:
  stable/7/sys/kern/kern_malloc.c
Directory Properties:
  stable/7/sys/   (props changed)
  stable/7/sys/cddl/contrib/opensolaris/   (props changed)
  stable/7/sys/contrib/dev/acpica/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)

Modified: stable/7/sys/kern/kern_malloc.c
==============================================================================
--- stable/7/sys/kern/kern_malloc.c	Sat Oct 16 11:41:20 2010	(r213922)
+++ stable/7/sys/kern/kern_malloc.c	Sat Oct 16 11:44:58 2010	(r213923)
@@ -202,6 +202,11 @@ SYSCTL_PROC(_vm, OID_AUTO, kmem_map_size
     CTLFLAG_RD | CTLTYPE_ULONG | CTLFLAG_MPSAFE, NULL, 0,
     sysctl_kmem_map_size, "LU", "Current kmem_map allocation size");
 
+static int sysctl_kmem_map_free(SYSCTL_HANDLER_ARGS);
+SYSCTL_PROC(_vm, OID_AUTO, kmem_map_free,
+    CTLFLAG_RD | CTLTYPE_ULONG | CTLFLAG_MPSAFE, NULL, 0,
+    sysctl_kmem_map_free, "LU", "Largest contiguous free range in kmem_map");
+
 /*
  * The malloc_mtx protects the kmemstatistics linked list.
  */
@@ -247,6 +252,18 @@ sysctl_kmem_map_size(SYSCTL_HANDLER_ARGS
 	return (sysctl_handle_long(oidp, &size, 0, req));
 }
 
+static int
+sysctl_kmem_map_free(SYSCTL_HANDLER_ARGS)
+{
+	u_long size;
+
+	vm_map_lock_read(kmem_map);
+	size = kmem_map->root != NULL ?
+	    kmem_map->root->max_free : kmem_map->size;
+	vm_map_unlock_read(kmem_map);
+	return (sysctl_handle_long(oidp, &size, 0, req));
+}
+
 int
 malloc_last_fail(void)
 {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201010161144.o9GBiwoM075720>