Illumos 5163 - arc should reap range_seg_cache

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>
This commit is contained in:
George Wilson 2015-06-24 15:48:22 -07:00 committed by Brian Behlendorf
parent aa9af22cdf
commit 669dedb33f
4 changed files with 9 additions and 2 deletions

View File

@ -408,7 +408,7 @@ extern void kstat_set_raw_ops(kstat_t *ksp,
#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

View File

@ -191,6 +191,11 @@ umem_cache_free(umem_cache_t *cp, void *ptr)
umem_free(ptr, cp->cache_bufsize);
}
static inline void
umem_cache_reap_now(umem_cache_t *cp)
{
}
#ifdef __cplusplus
}
#endif

View File

@ -3043,6 +3043,7 @@ arc_kmem_reap_now(arc_reclaim_strategy_t strat, uint64_t bytes)
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) {
/*
@ -3073,6 +3074,7 @@ arc_kmem_reap_now(arc_reclaim_strategy_t strat, uint64_t bytes)
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);
}
/*

View File

@ -33,7 +33,7 @@
#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)