[PATCH] sysctl cleanup - unifying sysctls: vm.kvm_size and vm.kvm_free

Uffe Jakobsen uffe at uffe.org
Mon Jul 18 12:34:13 UTC 2011


Please consider this patch - it unifies sysctls: vm.kvm_size and 
vm.kvm_free.

Currently these sysctls are only found under i386 and amd64:

sys/i386/i386/pmap.c
sys/i386/xen/pmap.c
sys/amd64/amd64/pmap.c

It seems logical (to me) to move them into a generic location suce as 
sys/vm/vm_kern.c

Patch against HEAD (revision 224180) attached.

Kind regards Uffe Jakobsen

-------------- next part --------------
Index: sys/vm/vm_kern.c
===================================================================
--- sys/vm/vm_kern.c	(revision 224180)
+++ sys/vm/vm_kern.c	(working copy)
@@ -588,6 +588,26 @@
 	kmem_init_zero_region();
 }
 
+static int
+kvm_size(SYSCTL_HANDLER_ARGS)
+{
+        unsigned long ksize = VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS;
+ 
+        return sysctl_handle_long(oidp, &ksize, 0, req);
+}
+SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD,
+    0, 0, kvm_size, "LU", "Size of KVM");
+ 
+static int
+kvm_free(SYSCTL_HANDLER_ARGS)
+{
+        unsigned long kfree = VM_MAX_KERNEL_ADDRESS - kernel_vm_end;
+  
+        return sysctl_handle_long(oidp, &kfree, 0, req);
+}
+SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD,
+    0, 0, kvm_free, "LU", "Amount of KVM free");
+ 
 #ifdef DIAGNOSTIC
 /*
  * Allow userspace to directly trigger the VM drain routine for testing
Index: sys/i386/i386/pmap.c
===================================================================
--- sys/i386/i386/pmap.c	(revision 224180)
+++ sys/i386/i386/pmap.c	(working copy)
@@ -2042,27 +2042,7 @@
 	}
 	PMAP_LOCK_DESTROY(pmap);
 }
-

-static int
-kvm_size(SYSCTL_HANDLER_ARGS)
-{
-	unsigned long ksize = VM_MAX_KERNEL_ADDRESS - KERNBASE;
 
-	return (sysctl_handle_long(oidp, &ksize, 0, req));
-}
-SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, 
-    0, 0, kvm_size, "IU", "Size of KVM");
-
-static int
-kvm_free(SYSCTL_HANDLER_ARGS)
-{
-	unsigned long kfree = VM_MAX_KERNEL_ADDRESS - kernel_vm_end;
-
-	return (sysctl_handle_long(oidp, &kfree, 0, req));
-}
-SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, 
-    0, 0, kvm_free, "IU", "Amount of KVM free");
-
 /*
  * grow the number of kernel page table entries, if needed
  */
Index: sys/i386/xen/pmap.c
===================================================================
--- sys/i386/xen/pmap.c	(revision 224180)
+++ sys/i386/xen/pmap.c	(working copy)
@@ -1856,27 +1856,7 @@
 	mtx_unlock(&createdelete_lock);
 #endif
 }
-

-static int
-kvm_size(SYSCTL_HANDLER_ARGS)
-{
-	unsigned long ksize = VM_MAX_KERNEL_ADDRESS - KERNBASE;
 
-	return sysctl_handle_long(oidp, &ksize, 0, req);
-}
-SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, 
-    0, 0, kvm_size, "IU", "Size of KVM");
-
-static int
-kvm_free(SYSCTL_HANDLER_ARGS)
-{
-	unsigned long kfree = VM_MAX_KERNEL_ADDRESS - kernel_vm_end;
-
-	return sysctl_handle_long(oidp, &kfree, 0, req);
-}
-SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, 
-    0, 0, kvm_free, "IU", "Amount of KVM free");
-
 /*
  * grow the number of kernel page table entries, if needed
  */
Index: sys/amd64/amd64/pmap.c
===================================================================
--- sys/amd64/amd64/pmap.c	(revision 224180)
+++ sys/amd64/amd64/pmap.c	(working copy)
@@ -1926,27 +1926,7 @@
 	vm_page_free_zero(m);
 	PMAP_LOCK_DESTROY(pmap);
 }
-

-static int
-kvm_size(SYSCTL_HANDLER_ARGS)
-{
-	unsigned long ksize = VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS;
 
-	return sysctl_handle_long(oidp, &ksize, 0, req);
-}
-SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, 
-    0, 0, kvm_size, "LU", "Size of KVM");
-
-static int
-kvm_free(SYSCTL_HANDLER_ARGS)
-{
-	unsigned long kfree = VM_MAX_KERNEL_ADDRESS - kernel_vm_end;
-
-	return sysctl_handle_long(oidp, &kfree, 0, req);
-}
-SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, 
-    0, 0, kvm_free, "LU", "Amount of KVM free");
-
 /*
  * grow the number of kernel page table entries, if needed
  */


More information about the freebsd-hackers mailing list