]> granicus.if.org Git - zfs/commitdiff
Adjust ARC prefetch tunables to match docs
authorTom Caputi <tcaputi@datto.com>
Tue, 6 Feb 2018 00:57:53 +0000 (19:57 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 6 Feb 2018 00:57:53 +0000 (16:57 -0800)
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

man/man5/zfs-module-parameters.5
module/zfs/arc.c

index a5c83b422f7a12590f146a108d0d64a5f86733e9..77b162a2ad3588984004c22898b795d54de8f28d 100644 (file)
@@ -620,7 +620,7 @@ Default value: \fB0\fR.
 .ad
 .RS 12n
 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
 Default value: \fB0\fR.
 .RE
@@ -633,7 +633,7 @@ Default value: \fB0\fR.
 .RS 12n
 Minimum time "prescient prefetched" blocks are locked in the ARC, specified
 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
 Default value: \fB0\fR.
 .RE
index 2f3fe97719d5776e096ddd444ad72979743938f0..4fffc23808e23945a358df2663510bc9e6b3bcdc 100644 (file)
@@ -3845,7 +3845,8 @@ arc_evict_hdr(arc_buf_hdr_t *hdr, kmutex_t *hash_lock)
        /* prefetch buffers have a minimum lifespan */
        if (HDR_IO_IN_PROGRESS(hdr) ||
            ((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);
                return (bytes_evicted);
        }
@@ -7470,9 +7471,8 @@ arc_init(void)
        cv_init(&arc_reclaim_thread_cv, NULL, CV_DEFAULT, NULL);
        cv_init(&arc_reclaim_waiters_cv, NULL, CV_DEFAULT, NULL);
 
-       /* Convert seconds to clock ticks */
-       arc_min_prefetch_ms = 1;
-       arc_min_prescient_prefetch_ms = 6;
+       arc_min_prefetch_ms = 1000;
+       arc_min_prescient_prefetch_ms = 6000;
 
 #ifdef _KERNEL
        /*