5163 arc should reap range_seg_cache
Reviewed by: Christopher Siden <christopher.siden@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Richard Elling <richard.elling@gmail.com>
Reviewed by: Saso Kiselkov <skiselkov.ml@gmail.com>
Approved by: Dan McDonald <danmcd@omniti.com>
References:
https://www.illumos.org/issues/5163
https://github.com/illumos/illumos-gate/commit/
83803b5
Porting Notes:
Added umem_cache_reap_now() wrapped to suppress unused variable
warning for user space build in arc_kmem_reap_now().
Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>
#define kmem_cache_alloc(_c, _f) umem_cache_alloc(_c, _f)
#define kmem_cache_free(_c, _b) umem_cache_free(_c, _b)
#define kmem_debugging() 0
-#define kmem_cache_reap_now(_c) /* nothing */
+#define kmem_cache_reap_now(_c) umem_cache_reap_now(_c);
#define kmem_cache_set_move(_c, _cb) /* nothing */
#define POINTER_INVALIDATE(_pp) /* nothing */
#define POINTER_IS_VALID(_p) 0
umem_free(ptr, cp->cache_bufsize);
}
+static inline void
+umem_cache_reap_now(umem_cache_t *cp)
+{
+}
+
#ifdef __cplusplus
}
#endif
kmem_cache_t *prev_data_cache = NULL;
extern kmem_cache_t *zio_buf_cache[];
extern kmem_cache_t *zio_data_buf_cache[];
+ extern kmem_cache_t *range_seg_cache;
if ((arc_meta_used >= arc_meta_limit) && zfs_arc_meta_prune) {
/*
kmem_cache_reap_now(buf_cache);
kmem_cache_reap_now(hdr_full_cache);
kmem_cache_reap_now(hdr_l2only_cache);
+ kmem_cache_reap_now(range_seg_cache);
}
/*
#include <sys/zio.h>
#include <sys/range_tree.h>
-static kmem_cache_t *range_seg_cache;
+kmem_cache_t *range_seg_cache;
void
range_tree_init(void)