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"