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@a8f6344fa0
This commit is contained in:
commit
8d0e2eb06b
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=296530
@ -40,6 +40,9 @@
|
||||
#define MSEC2NSEC(m) ((hrtime_t)(m) * (NANOSEC / MILLISEC))
|
||||
#define NSEC2MSEC(n) ((n) / (NANOSEC / MILLISEC))
|
||||
|
||||
#define NSEC2SEC(n) ((n) / (NANOSEC / SEC))
|
||||
#define SEC2NSEC(m) ((hrtime_t)(m) * (NANOSEC / SEC))
|
||||
|
||||
typedef longlong_t hrtime_t;
|
||||
|
||||
#if defined(__i386__) || defined(__powerpc__)
|
||||
|
@ -3606,7 +3606,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);
|
||||
@ -3627,7 +3627,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();
|
||||
|
||||
@ -3647,7 +3647,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;
|
||||
}
|
||||
|
||||
@ -3681,8 +3681,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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user