diff options
author | Peter Wemm <peter@FreeBSD.org> | 2001-08-22 00:50:46 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2001-08-22 00:50:46 +0000 |
commit | 3d6fde76ed8a05fa335fdf605bdaad091a54f268 (patch) | |
tree | 4e4d92b87bd67d43cdb0f039cc3945d89e2f020e | |
parent | c412ee3a284c4c5e0757c056908db7424f455223 (diff) | |
download | src-3d6fde76ed8a05fa335fdf605bdaad091a54f268.tar.gz src-3d6fde76ed8a05fa335fdf605bdaad091a54f268.zip |
Introduce two new sysctl's.. vm.kvm_size and vm.kvm_free. These are
purely informational and can give some advance indications of tuning
problems. These are i386 only for now as it seems that the i386 is
the only one suffering kvm pressure.
Notes
Notes:
svn path=/head/; revision=82121
-rw-r--r-- | sys/amd64/amd64/pmap.c | 21 | ||||
-rw-r--r-- | sys/i386/i386/pmap.c | 21 |
2 files changed, 42 insertions, 0 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index f2d447f1bb42..7a32c98bb330 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -83,6 +83,7 @@ #include <sys/sx.h> #include <sys/user.h> #include <sys/vmmeter.h> +#include <sys/sysctl.h> #include <vm/vm.h> #include <vm/vm_param.h> @@ -1366,6 +1367,26 @@ retry: if (ptdpg && !pmap_release_free_page(pmap, ptdpg)) goto retry; } + +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 diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index f2d447f1bb42..7a32c98bb330 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -83,6 +83,7 @@ #include <sys/sx.h> #include <sys/user.h> #include <sys/vmmeter.h> +#include <sys/sysctl.h> #include <vm/vm.h> #include <vm/vm_param.h> @@ -1366,6 +1367,26 @@ retry: if (ptdpg && !pmap_release_free_page(pmap, ptdpg)) goto retry; } + +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 |