PERFORCE change 85603 for review

Robert Watson rwatson at FreeBSD.org
Thu Oct 20 10:42:20 PDT 2005


http://perforce.freebsd.org/chv.cgi?CH=85603

Change 85603 by rwatson at rwatson_zoo on 2005/10/20 17:42:11

	Add "show malloc" to DDB.

Affected files ...

.. //depot/projects/trustedbsd/audit3/sys/kern/kern_malloc.c#5 edit

Differences ...

==== //depot/projects/trustedbsd/audit3/sys/kern/kern_malloc.c#5 (text+ko) ====

@@ -34,6 +34,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD: src/sys/kern/kern_malloc.c,v 1.146 2005/08/02 20:03:23 ru Exp $");
 
+#include "opt_ddb.h"
 #include "opt_vm.h"
 
 #include <sys/param.h>
@@ -69,6 +70,8 @@
 #include <machine/cpu.h>
 #endif
 
+#include <ddb/ddb.h>
+
 /*
  * When realloc() is called, if the new size is sufficiently smaller than
  * the old size, realloc() will allocate a new, smaller block to avoid
@@ -813,6 +816,30 @@
 SYSCTL_INT(_kern, OID_AUTO, malloc_count, CTLFLAG_RD, &kmemcount, 0,
     "Count of kernel malloc types");
 
+#ifdef DDB
+DB_SHOW_COMMAND(malloc, db_show_malloc)
+{
+	struct malloc_type_internal *mtip;
+	struct malloc_type *mtp;
+	u_int64_t allocs, frees;
+	int i;
+
+	db_printf("%18s %12s %12s %12s\n", "Type", "Allocs", "Frees",
+	    "Used");
+	for (mtp = kmemstatistics; mtp != NULL; mtp = mtp->ks_next) {
+		mtip = (struct malloc_type_internal *)mtp->ks_handle;
+		allocs = 0;
+		frees = 0;
+		for (i = 0; i < MAXCPU; i++) {
+			allocs += mtip->mti_stats[i].mts_numallocs;
+			frees += mtip->mti_stats[i].mts_numfrees;
+		}
+		db_printf("%18s %12llu %12llu %12llu\n", mtp->ks_shortdesc,
+		    allocs, frees, allocs - frees);
+	}
+}
+#endif
+
 #ifdef MALLOC_PROFILE
 
 static int


More information about the p4-projects mailing list