summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2016-03-21 00:22:55 +0000
committermav <mav@FreeBSD.org>2016-03-21 00:22:55 +0000
commit724960037f64ef95dabfaa5c73dbafd276bebcf1 (patch)
tree886a6b3f39c12894f84d11f23be68bd60f147e62 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
parent18f23d78714536c48ef5b0c0792d423102325ee4 (diff)
downloadFreeBSD-src-724960037f64ef95dabfaa5c73dbafd276bebcf1.zip
FreeBSD-src-724960037f64ef95dabfaa5c73dbafd276bebcf1.tar.gz
MFC r296530: MFV r296529:
6672 arc_reclaim_thread() should use gethrtime() instead of ddi_get_lbolt() 6673 want a macro to convert seconds to nanoseconds and vice-versa Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Prakash Surya <prakash.surya@delphix.com> Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net> Reviewed by: Robert Mustacchi <rm@joyent.com> Approved by: Dan McDonald <danmcd@omniti.com> Author: Eli Rosenthal <eli.rosenthal@delphix.com> illumos/illumos-gate@a8f6344fa0921599e1f4511e41b5f9a25c38c0f9
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
index fbf9a20..6d99a79 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
@@ -3609,7 +3609,7 @@ arc_kmem_reap_now(void)
static void
arc_reclaim_thread(void *dummy __unused)
{
- clock_t growtime = 0;
+ hrtime_t growtime = 0;
callb_cpr_t cpr;
CALLB_CPR_INIT(&cpr, &arc_reclaim_lock, callb_generic_cpr, FTAG);
@@ -3630,7 +3630,7 @@ arc_reclaim_thread(void *dummy __unused)
* Wait at least zfs_grow_retry (default 60) seconds
* before considering growing.
*/
- growtime = ddi_get_lbolt() + (arc_grow_retry * hz);
+ growtime = gethrtime() + SEC2NSEC(arc_grow_retry);
arc_kmem_reap_now();
@@ -3650,7 +3650,7 @@ arc_reclaim_thread(void *dummy __unused)
}
} else if (free_memory < arc_c >> arc_no_grow_shift) {
arc_no_grow = B_TRUE;
- } else if (ddi_get_lbolt() >= growtime) {
+ } else if (gethrtime() >= growtime) {
arc_no_grow = B_FALSE;
}
@@ -3684,8 +3684,8 @@ arc_reclaim_thread(void *dummy __unused)
* even if we aren't being signalled)
*/
CALLB_CPR_SAFE_BEGIN(&cpr);
- (void) cv_timedwait(&arc_reclaim_thread_cv,
- &arc_reclaim_lock, hz);
+ (void) cv_timedwait_hires(&arc_reclaim_thread_cv,
+ &arc_reclaim_lock, SEC2NSEC(1), MSEC2NSEC(1), 0);
CALLB_CPR_SAFE_END(&cpr, &arc_reclaim_lock);
}
}
OpenPOWER on IntegriCloud