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

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
  */
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to