Adjust ARC prefetch tunables to match docs

Currently, the ARC exposes 2 tunables (zfs_arc_min_prefetch_ms
and zfs_arc_min_prescient_prefetch_ms) which are documented
to be specified in milliseconds. However, the code actually
uses the values as though they were in seconds. This patch
adjusts the code to match the names and documentation of the
tunables.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #7126
This commit is contained in:
Tom Caputi 2018-02-05 19:57:53 -05:00 committed by Brian Behlendorf
parent 60b8207496
commit 2b84817f66
2 changed files with 6 additions and 6 deletions

View File

@ -620,7 +620,7 @@ Default value: \fB0\fR.
.ad .ad
.RS 12n .RS 12n
Minimum time prefetched blocks are locked in the ARC, specified in ms. Minimum time prefetched blocks are locked in the ARC, specified in ms.
A value of \fB0\fR will default to 1 second. A value of \fB0\fR will default to 1000 ms.
.sp .sp
Default value: \fB0\fR. Default value: \fB0\fR.
.RE .RE
@ -633,7 +633,7 @@ Default value: \fB0\fR.
.RS 12n .RS 12n
Minimum time "prescient prefetched" blocks are locked in the ARC, specified Minimum time "prescient prefetched" blocks are locked in the ARC, specified
in ms. These blocks are meant to be prefetched fairly aggresively ahead of in ms. These blocks are meant to be prefetched fairly aggresively ahead of
the code that may use them. A value of \fB0\fR will default to 6 seconds. the code that may use them. A value of \fB0\fR will default to 6000 ms.
.sp .sp
Default value: \fB0\fR. Default value: \fB0\fR.
.RE .RE

View File

@ -3845,7 +3845,8 @@ arc_evict_hdr(arc_buf_hdr_t *hdr, kmutex_t *hash_lock)
/* prefetch buffers have a minimum lifespan */ /* prefetch buffers have a minimum lifespan */
if (HDR_IO_IN_PROGRESS(hdr) || if (HDR_IO_IN_PROGRESS(hdr) ||
((hdr->b_flags & (ARC_FLAG_PREFETCH | ARC_FLAG_INDIRECT)) && ((hdr->b_flags & (ARC_FLAG_PREFETCH | ARC_FLAG_INDIRECT)) &&
ddi_get_lbolt() - hdr->b_l1hdr.b_arc_access < min_lifetime * hz)) { ddi_get_lbolt() - hdr->b_l1hdr.b_arc_access <
MSEC_TO_TICK(min_lifetime))) {
ARCSTAT_BUMP(arcstat_evict_skip); ARCSTAT_BUMP(arcstat_evict_skip);
return (bytes_evicted); return (bytes_evicted);
} }
@ -7470,9 +7471,8 @@ arc_init(void)
cv_init(&arc_reclaim_thread_cv, NULL, CV_DEFAULT, NULL); cv_init(&arc_reclaim_thread_cv, NULL, CV_DEFAULT, NULL);
cv_init(&arc_reclaim_waiters_cv, NULL, CV_DEFAULT, NULL); cv_init(&arc_reclaim_waiters_cv, NULL, CV_DEFAULT, NULL);
/* Convert seconds to clock ticks */ arc_min_prefetch_ms = 1000;
arc_min_prefetch_ms = 1; arc_min_prescient_prefetch_ms = 6000;
arc_min_prescient_prefetch_ms = 6;
#ifdef _KERNEL #ifdef _KERNEL
/* /*