aboutsummaryrefslogtreecommitdiff
path: root/sys/cddl/compat
diff options
context:
space:
mode:
authorSteven Hartland <smh@FreeBSD.org>2014-08-30 21:44:32 +0000
committerSteven Hartland <smh@FreeBSD.org>2014-08-30 21:44:32 +0000
commit92ac3eb59fea40ff57af604abd90d6520919cba6 (patch)
treeb6a7d41730922780a03b947519ff51ff575c037e /sys/cddl/compat
parent65d495a87e71a5859b8b5adef7614d7027396948 (diff)
downloadsrc-92ac3eb59fea40ff57af604abd90d6520919cba6.tar.gz
src-92ac3eb59fea40ff57af604abd90d6520919cba6.zip
Ensure that ZFS ARC free memory checks include cached pages
Also restore kmem_used() check for i386 as it has KVA limits that the raw page counts above don't consider PR: 187594 Reviewed by: peter X-MFC-With: r270759 Review: D700 Sponsored by: Multiplay
Notes
Notes: svn path=/head/; revision=270861
Diffstat (limited to 'sys/cddl/compat')
-rw-r--r--sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c9
-rw-r--r--sys/cddl/compat/opensolaris/sys/kmem.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c b/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c
index 10377cd29b7f..fd8798d2e16a 100644
--- a/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c
+++ b/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c
@@ -152,7 +152,7 @@ u_int
kmem_free_count(void)
{
- return (vm_cnt.v_free_count);
+ return (vm_cnt.v_free_count + vm_cnt.v_cache_count);
}
u_int
@@ -169,6 +169,13 @@ kmem_size(void)
return (kmem_size_val);
}
+uint64_t
+kmem_used(void)
+{
+
+ return (vmem_size(kmem_arena, VMEM_ALLOC));
+}
+
static int
kmem_std_constructor(void *mem, int size __unused, void *private, int flags)
{
diff --git a/sys/cddl/compat/opensolaris/sys/kmem.h b/sys/cddl/compat/opensolaris/sys/kmem.h
index af6cec52cf91..1879ba44a4b3 100644
--- a/sys/cddl/compat/opensolaris/sys/kmem.h
+++ b/sys/cddl/compat/opensolaris/sys/kmem.h
@@ -66,6 +66,7 @@ typedef struct kmem_cache {
void *zfs_kmem_alloc(size_t size, int kmflags);
void zfs_kmem_free(void *buf, size_t size);
uint64_t kmem_size(void);
+uint64_t kmem_used(void);
u_int kmem_page_count(void);
/*