aboutsummaryrefslogtreecommitdiffstats
path: root/tests/zfs-tests
diff options
context:
space:
mode:
authorGeorge Amanakis <[email protected]>2020-09-14 13:10:44 -0400
committerGitHub <[email protected]>2020-09-14 10:10:44 -0700
commit085321621e79a75bea41c2b6511da6ebfbf2ba0a (patch)
tree99d378ac2dac5029e64382107b7fd2d648b00b69 /tests/zfs-tests
parentd0cea309e7e2c3de7d08be017341b6c42f3366c9 (diff)
Add L2ARC arcstats for MFU/MRU buffers and buffer content type
Currently the ARC state (MFU/MRU) of cached L2ARC buffer and their content type is unknown. Knowing this information may prove beneficial in adjusting the L2ARC caching policy. This commit adds L2ARC arcstats that display the aligned size (in bytes) of L2ARC buffers according to their content type (data/metadata) and according to their ARC state (MRU/MFU or prefetch). It also expands the existing evict_l2_eligible arcstat to differentiate between MFU and MRU buffers. L2ARC caches buffers from the MRU and MFU lists of ARC. Upon caching a buffer, its ARC state (MRU/MFU) is stored in the L2 header (b_arcs_state). The l2_m{f,r}u_asize arcstats reflect the aligned size (in bytes) of L2ARC buffers according to their ARC state (based on b_arcs_state). We also account for the case where an L2ARC and ARC cached MRU or MRU_ghost buffer transitions to MFU. The l2_prefetch_asize reflects the alinged size (in bytes) of L2ARC buffers that were cached while they had the prefetch flag set in ARC. This is dynamically updated as the prefetch flag of L2ARC buffers changes. When buffers are evicted from ARC, if they are determined to be L2ARC eligible then their logical size is recorded in evict_l2_eligible_m{r,f}u arcstats according to their ARC state upon eviction. Persistent L2ARC: When committing an L2ARC buffer to a log block (L2ARC metadata) its b_arcs_state and prefetch flag is also stored. If the buffer changes its arcstate or prefetch flag this is reflected in the above arcstats. However, the L2ARC metadata cannot currently be updated to reflect this change. Example: L2ARC caches an MRU buffer. L2ARC metadata and arcstats count this as an MRU buffer. The buffer transitions to MFU. The arcstats are updated to reflect this. Upon pool re-import or on/offlining the L2ARC device the arcstats are cleared and the buffer will now be counted as an MRU buffer, as the L2ARC metadata were not updated. Bug fix: - If l2arc_noprefetch is set, arc_read_done clears the L2CACHE flag of an ARC buffer. However, prefetches may be issued in a way that arc_read_done() is bypassed. Instead, move the related code in l2arc_write_eligible() to account for those cases too. Also add a test and update manpages for l2arc_mfuonly module parameter, and update the manpages and code comments for l2arc_noprefetch. Move persist_l2arc tests to l2arc. Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Richard Elling <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: George Amanakis <[email protected]> Closes #10743
Diffstat (limited to 'tests/zfs-tests')
-rw-r--r--tests/zfs-tests/include/tunables.cfg1
-rw-r--r--tests/zfs-tests/tests/functional/Makefile.am2
-rw-r--r--tests/zfs-tests/tests/functional/l2arc/Makefile.am (renamed from tests/zfs-tests/tests/functional/persist_l2arc/Makefile.am)6
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/cleanup.ksh (renamed from tests/zfs-tests/tests/functional/persist_l2arc/cleanup.ksh)6
-rw-r--r--tests/zfs-tests/tests/functional/l2arc/l2arc.cfg (renamed from tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc.cfg)4
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/l2arc_arcstats_pos.ksh99
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/l2arc_mfuonly_pos.ksh82
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/persist_l2arc_001_pos.ksh (renamed from tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_001_pos.ksh)4
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/persist_l2arc_002_pos.ksh (renamed from tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_002_pos.ksh)4
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/persist_l2arc_003_neg.ksh (renamed from tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_003_neg.ksh)4
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/persist_l2arc_004_pos.ksh (renamed from tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_004_pos.ksh)5
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/persist_l2arc_005_pos.ksh (renamed from tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_005_pos.ksh)5
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/persist_l2arc_006_pos.ksh (renamed from tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_006_pos.ksh)4
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/persist_l2arc_007_pos.ksh (renamed from tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_007_pos.ksh)4
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/persist_l2arc_008_pos.ksh (renamed from tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_008_pos.ksh)6
-rwxr-xr-xtests/zfs-tests/tests/functional/l2arc/setup.ksh (renamed from tests/zfs-tests/tests/functional/persist_l2arc/setup.ksh)2
16 files changed, 210 insertions, 28 deletions
diff --git a/tests/zfs-tests/include/tunables.cfg b/tests/zfs-tests/include/tunables.cfg
index da7bc1613..34544e9f4 100644
--- a/tests/zfs-tests/include/tunables.cfg
+++ b/tests/zfs-tests/include/tunables.cfg
@@ -36,6 +36,7 @@ INITIALIZE_CHUNK_SIZE initialize_chunk_size zfs_initialize_chunk_size
INITIALIZE_VALUE initialize_value zfs_initialize_value
KEEP_LOG_SPACEMAPS_AT_EXPORT keep_log_spacemaps_at_export zfs_keep_log_spacemaps_at_export
LUA_MAX_MEMLIMIT lua.max_memlimit zfs_lua_max_memlimit
+L2ARC_MFUONLY l2arc.mfuonly l2arc_mfuonly
L2ARC_NOPREFETCH l2arc.noprefetch l2arc_noprefetch
L2ARC_REBUILD_BLOCKS_MIN_L2SIZE l2arc.rebuild_blocks_min_l2size l2arc_rebuild_blocks_min_l2size
L2ARC_REBUILD_ENABLED l2arc.rebuild_enabled l2arc_rebuild_enabled
diff --git a/tests/zfs-tests/tests/functional/Makefile.am b/tests/zfs-tests/tests/functional/Makefile.am
index c56518c55..6438898e4 100644
--- a/tests/zfs-tests/tests/functional/Makefile.am
+++ b/tests/zfs-tests/tests/functional/Makefile.am
@@ -31,6 +31,7 @@ SUBDIRS = \
inheritance \
inuse \
io \
+ l2arc \
large_files \
largest_pool \
libzfs \
@@ -47,7 +48,6 @@ SUBDIRS = \
nopwrite \
online_offline \
pam \
- persist_l2arc \
pool_checkpoint \
pool_names \
poolversion \
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/Makefile.am b/tests/zfs-tests/tests/functional/l2arc/Makefile.am
index 14a43de9c..cac85fa46 100644
--- a/tests/zfs-tests/tests/functional/persist_l2arc/Makefile.am
+++ b/tests/zfs-tests/tests/functional/l2arc/Makefile.am
@@ -1,7 +1,9 @@
-pkgdatadir = $(datadir)/@PACKAGE@/zfs-tests/tests/functional/persist_l2arc
+pkgdatadir = $(datadir)/@PACKAGE@/zfs-tests/tests/functional/l2arc
dist_pkgdata_SCRIPTS = \
cleanup.ksh \
setup.ksh \
+ l2arc_arcstats_pos.ksh \
+ l2arc_mfuonly_pos.ksh \
persist_l2arc_001_pos.ksh \
persist_l2arc_002_pos.ksh \
persist_l2arc_003_neg.ksh \
@@ -12,4 +14,4 @@ dist_pkgdata_SCRIPTS = \
persist_l2arc_008_pos.ksh
dist_pkgdata_DATA = \
- persist_l2arc.cfg
+ l2arc.cfg
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/cleanup.ksh b/tests/zfs-tests/tests/functional/l2arc/cleanup.ksh
index 828de3862..c3d88e3ff 100755
--- a/tests/zfs-tests/tests/functional/persist_l2arc/cleanup.ksh
+++ b/tests/zfs-tests/tests/functional/l2arc/cleanup.ksh
@@ -18,12 +18,12 @@
# Copyright (c) 2020, George Amanakis. All rights reserved.
#
-. $STF_SUITE/tests/functional/persist_l2arc/persist_l2arc.cfg
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
verify_runnable "global"
-if datasetexists $TESTPOOL ; then
- log_must zpool destroy -f $TESTPOOL
+if poolexists $TESTPOOL ; then
+ log_must destroy_pool $TESTPOOL
fi
log_must rm -rf $VDIR
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc.cfg b/tests/zfs-tests/tests/functional/l2arc/l2arc.cfg
index 60bb24637..cd79af034 100644
--- a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc.cfg
+++ b/tests/zfs-tests/tests/functional/l2arc/l2arc.cfg
@@ -21,14 +21,14 @@
. $STF_SUITE/include/libtest.shlib
export SIZE=1G
-export VDIR=$TESTDIR/disk.persist_l2arc
+export VDIR=$TESTDIR/disk.l2arc
export VDEV="$VDIR/a"
export VDEV_CACHE="$VDIR/b"
# fio options
export DIRECTORY=/$TESTPOOL
export NUMJOBS=4
-export RUNTIME=30
+export RUNTIME=10
export PERF_RANDSEED=1234
export PERF_COMPPERCENT=66
export PERF_COMPCHUNK=0
diff --git a/tests/zfs-tests/tests/functional/l2arc/l2arc_arcstats_pos.ksh b/tests/zfs-tests/tests/functional/l2arc/l2arc_arcstats_pos.ksh
new file mode 100755
index 000000000..5beaaa9da
--- /dev/null
+++ b/tests/zfs-tests/tests/functional/l2arc/l2arc_arcstats_pos.ksh
@@ -0,0 +1,99 @@
+#!/bin/ksh -p
+#
+# CDDL HEADER START
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2020, George Amanakis. All rights reserved.
+#
+
+. $STF_SUITE/include/libtest.shlib
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
+
+#
+# DESCRIPTION:
+# L2ARC MFU/MRU arcstats do not leak
+#
+# STRATEGY:
+# 1. Create pool with a cache device.
+# 2. Create a random file in that pool, smaller than the cache device
+# and random read for 10 sec.
+# 3. Read l2arc_mfu_asize and l2arc_mru_asize
+# 4. Export pool.
+# 5. Verify l2arc_mfu_asize and l2arc_mru_asize are 0.
+# 6. Import pool.
+# 7. Read random read for 10 sec.
+# 8. Read l2arc_mfu_asize and l2arc_mru_asize
+# 9. Verify that L2ARC MFU increased and MFU+MRU = L2_asize.
+#
+
+verify_runnable "global"
+
+log_assert "L2ARC MFU/MRU arcstats do not leak."
+
+function cleanup
+{
+ if poolexists $TESTPOOL ; then
+ destroy_pool $TESTPOOL
+ fi
+
+ log_must set_tunable32 L2ARC_NOPREFETCH $noprefetch
+}
+log_onexit cleanup
+
+# L2ARC_NOPREFETCH is set to 0 to let L2ARC handle prefetches
+typeset noprefetch=$(get_tunable L2ARC_NOPREFETCH)
+log_must set_tunable32 L2ARC_NOPREFETCH 0
+
+typeset fill_mb=800
+typeset cache_sz=$(( 1.4 * $fill_mb ))
+export FILE_SIZE=$(( floor($fill_mb / $NUMJOBS) ))M
+
+log_must truncate -s ${cache_sz}M $VDEV_CACHE
+
+typeset log_blk_start=$(get_arcstat l2_log_blk_writes)
+
+log_must zpool create -f $TESTPOOL $VDEV cache $VDEV_CACHE
+
+log_must fio $FIO_SCRIPTS/mkfiles.fio
+log_must fio $FIO_SCRIPTS/random_reads.fio
+
+log_must zpool offline $TESTPOOL $VDEV_CACHE
+typeset l2_mfu_init=$(get_arcstat l2_mfu_asize)
+typeset l2_mru_init=$(get_arcstat l2_mru_asize)
+typeset l2_prefetch_init=$(get_arcstat l2_prefetch_asize)
+typeset l2_asize_init=$(get_arcstat l2_asize)
+log_must zpool online $TESTPOOL $VDEV_CACHE
+
+log_must zpool export $TESTPOOL
+log_must test $(get_arcstat l2_mfu_asize) -eq 0
+log_must test $(get_arcstat l2_mru_asize) -eq 0
+log_must zpool import -d $VDIR $TESTPOOL
+
+log_must fio $FIO_SCRIPTS/random_reads.fio
+log_must zpool offline $TESTPOOL $VDEV_CACHE
+typeset l2_mfu_end=$(get_arcstat l2_mfu_asize)
+typeset l2_mru_end=$(get_arcstat l2_mru_asize)
+typeset l2_prefetch_end=$(get_arcstat l2_prefetch_asize)
+typeset l2_asize_end=$(get_arcstat l2_asize)
+
+log_must test $(( $l2_mfu_end - $l2_mfu_init )) -gt 0
+log_must test $(( $l2_mru_end + $l2_mfu_end + $l2_prefetch_end - \
+ $l2_asize_end )) -eq 0
+log_must test $(( $l2_mru_init + $l2_mfu_init + $l2_prefetch_init - \
+ $l2_asize_init )) -eq 0
+
+log_must zpool destroy -f $TESTPOOL
+
+log_pass "L2ARC MFU/MRU arcstats do not leak."
diff --git a/tests/zfs-tests/tests/functional/l2arc/l2arc_mfuonly_pos.ksh b/tests/zfs-tests/tests/functional/l2arc/l2arc_mfuonly_pos.ksh
new file mode 100755
index 000000000..d6a0b4725
--- /dev/null
+++ b/tests/zfs-tests/tests/functional/l2arc/l2arc_mfuonly_pos.ksh
@@ -0,0 +1,82 @@
+#!/bin/ksh -p
+#
+# CDDL HEADER START
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2020, George Amanakis. All rights reserved.
+#
+
+. $STF_SUITE/include/libtest.shlib
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
+
+#
+# DESCRIPTION:
+# l2arc_mfuonly does not cache MRU buffers
+#
+# STRATEGY:
+# 1. Set l2arc_mfuonly=yes
+# 2. Create pool with a cache device.
+# 3. Create a random file in that pool, smaller than the cache device
+# and random read for 10 sec.
+# 4. Export and re-import the pool. This is necessary as some MFU ghost
+# buffers with prefetch status may transition to MRU eventually.
+# By re-importing the pool the l2 arcstats reflect the ARC state
+# of L2ARC buffers upon their caching in L2ARC.
+# 5. Verify l2arc_mru_asize is 0.
+#
+
+verify_runnable "global"
+
+log_assert "l2arc_mfuonly does not cache MRU buffers."
+
+function cleanup
+{
+ if poolexists $TESTPOOL ; then
+ destroy_pool $TESTPOOL
+ fi
+
+ log_must set_tunable32 L2ARC_NOPREFETCH $noprefetch
+ log_must set_tunable32 L2ARC_MFUONLY $mfuonly
+}
+log_onexit cleanup
+
+# L2ARC_NOPREFETCH is set to 1 as some prefetched buffers may
+# transition to MRU.
+typeset noprefetch=$(get_tunable L2ARC_NOPREFETCH)
+log_must set_tunable32 L2ARC_NOPREFETCH 1
+
+typeset mfuonly=$(get_tunable L2ARC_MFUONLY)
+log_must set_tunable32 L2ARC_MFUONLY 1
+
+typeset fill_mb=800
+typeset cache_sz=$(( 1.4 * $fill_mb ))
+export FILE_SIZE=$(( floor($fill_mb / $NUMJOBS) ))M
+
+log_must truncate -s ${cache_sz}M $VDEV_CACHE
+
+typeset log_blk_start=$(get_arcstat l2_log_blk_writes)
+
+log_must zpool create -f $TESTPOOL $VDEV cache $VDEV_CACHE
+
+log_must fio $FIO_SCRIPTS/mkfiles.fio
+log_must fio $FIO_SCRIPTS/random_reads.fio
+
+log_must zpool export $TESTPOOL
+log_must zpool import -d $VDIR $TESTPOOL
+log_must test $(get_arcstat l2_mru_asize) -eq 0
+
+log_must zpool destroy -f $TESTPOOL
+
+log_pass "l2arc_mfuonly does not cache MRU buffers."
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_001_pos.ksh b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_001_pos.ksh
index f313923d1..ee515c9e7 100755
--- a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_001_pos.ksh
+++ b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_001_pos.ksh
@@ -19,7 +19,7 @@
#
. $STF_SUITE/include/libtest.shlib
-. $STF_SUITE/tests/functional/persist_l2arc/persist_l2arc.cfg
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
#
# DESCRIPTION:
@@ -28,7 +28,7 @@
# STRATEGY:
# 1. Create pool with a cache device.
# 2. Export and re-import pool without writing any data.
-# 3. Create a random file in that pool and random read for 30 sec.
+# 3. Create a random file in that pool and random read for 10 sec.
# 4. Export pool.
# 5. Read the amount of log blocks written from the header of the
# L2ARC device.
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_002_pos.ksh b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_002_pos.ksh
index 0184f06ef..b1a6abf11 100755
--- a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_002_pos.ksh
+++ b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_002_pos.ksh
@@ -19,7 +19,7 @@
#
. $STF_SUITE/include/libtest.shlib
-. $STF_SUITE/tests/functional/persist_l2arc/persist_l2arc.cfg
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
. $STF_SUITE/tests/functional/cli_root/zfs_load-key/zfs_load-key_common.kshlib
#
@@ -30,7 +30,7 @@
# 1. Create pool with a cache device.
# 2. Create a an encrypted ZFS file system.
# 3. Create a random file in the encrypted file system and random
-# read for 30 sec.
+# read for 10 sec.
# 4. Export pool.
# 5. Read the amount of log blocks written from the header of the
# L2ARC device.
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_003_neg.ksh b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_003_neg.ksh
index 7824dfe8f..34f73d6b6 100755
--- a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_003_neg.ksh
+++ b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_003_neg.ksh
@@ -19,7 +19,7 @@
#
. $STF_SUITE/include/libtest.shlib
-. $STF_SUITE/tests/functional/persist_l2arc/persist_l2arc.cfg
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
#
# DESCRIPTION:
@@ -28,7 +28,7 @@
# STRATEGY:
# 1. Set L2ARC_REBUILD_ENABLED = 0
# 2. Create pool with a cache device.
-# 3. Create a random file in that pool and random read for 30 sec.
+# 3. Create a random file in that pool and random read for 10 sec.
# 4. Export pool.
# 5. Import pool.
# 6. Check in zpool iostat if the cache device has space allocated.
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_004_pos.ksh b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_004_pos.ksh
index 6620131d1..73f8228c0 100755
--- a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_004_pos.ksh
+++ b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_004_pos.ksh
@@ -19,7 +19,7 @@
#
. $STF_SUITE/include/libtest.shlib
-. $STF_SUITE/tests/functional/persist_l2arc/persist_l2arc.cfg
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
#
# DESCRIPTION:
@@ -28,7 +28,7 @@
# STRATEGY:
# 1. Create pool with a cache device.
# 2. Create a random file in that pool, smaller than the cache device
-# and random read for 30 sec.
+# and random read for 10 sec.
# 3. Export pool.
# 4. Read amount of log blocks written.
# 5. Import pool.
@@ -82,7 +82,6 @@ log_must zpool import -d $VDIR $TESTPOOL
typeset l2_hits_start=$(get_arcstat l2_hits)
-export RUNTIME=10
log_must fio $FIO_SCRIPTS/random_reads.fio
typeset l2_hits_end=$(get_arcstat l2_hits)
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_005_pos.ksh b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_005_pos.ksh
index 9fc6a5923..6fba1723e 100755
--- a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_005_pos.ksh
+++ b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_005_pos.ksh
@@ -19,7 +19,7 @@
#
. $STF_SUITE/include/libtest.shlib
-. $STF_SUITE/tests/functional/persist_l2arc/persist_l2arc.cfg
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
. $STF_SUITE/tests/functional/cli_root/zfs_load-key/zfs_load-key_common.kshlib
#
@@ -30,7 +30,7 @@
# 1. Create pool with a cache device.
# 2. Create a an encrypted ZFS file system.
# 3. Create a random file in the entrypted file system,
-# smaller than the cache device, and random read for 30 sec.
+# smaller than the cache device, and random read for 10 sec.
# 4. Export pool.
# 5. Read amount of log blocks written.
# 6. Import pool.
@@ -89,7 +89,6 @@ log_must eval "echo $PASSPHRASE | zfs mount -l $TESTPOOL/$TESTFS1"
typeset l2_hits_start=$(get_arcstat l2_hits)
-export RUNTIME=10
log_must fio $FIO_SCRIPTS/random_reads.fio
typeset l2_hits_end=$(get_arcstat l2_hits)
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_006_pos.ksh b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_006_pos.ksh
index 55e9f9585..4e3f186b9 100755
--- a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_006_pos.ksh
+++ b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_006_pos.ksh
@@ -19,7 +19,7 @@
#
. $STF_SUITE/include/libtest.shlib
-. $STF_SUITE/tests/functional/persist_l2arc/persist_l2arc.cfg
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
#
# DESCRIPTION:
@@ -28,7 +28,7 @@
#
# STRATEGY:
# 1. Create pool with a cache device.
-# 2. Create a random file in that pool and random read for 30 sec.
+# 2. Create a random file in that pool and random read for 10 sec.
# 3. Read the amount of log blocks written from the header of the
# L2ARC device.
# 4. Offline the L2ARC device and export pool.
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_007_pos.ksh b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_007_pos.ksh
index c79c39276..f696f604a 100755
--- a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_007_pos.ksh
+++ b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_007_pos.ksh
@@ -19,7 +19,7 @@
#
. $STF_SUITE/include/libtest.shlib
-. $STF_SUITE/tests/functional/persist_l2arc/persist_l2arc.cfg
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
#
# DESCRIPTION:
@@ -27,7 +27,7 @@
#
# STRATEGY:
# 1. Create pool with a cache device.
-# 2. Create a random file in that pool and random read for 30 sec.
+# 2. Create a random file in that pool and random read for 10 sec.
# 3. Read the amount of log blocks written from the header of the
# L2ARC device.
# 4. Offline the L2ARC device.
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_008_pos.ksh b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_008_pos.ksh
index a64bd94d3..24090c99b 100755
--- a/tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_008_pos.ksh
+++ b/tests/zfs-tests/tests/functional/l2arc/persist_l2arc_008_pos.ksh
@@ -19,7 +19,7 @@
#
. $STF_SUITE/include/libtest.shlib
-. $STF_SUITE/tests/functional/persist_l2arc/persist_l2arc.cfg
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
#
# DESCRIPTION:
@@ -27,14 +27,14 @@
#
# STRATEGY:
# 1. Create pool with a cache device.
-# 2. Create a random file in that pool and random read for 30 sec.
+# 2. Create a random file in that pool and random read for 10 sec.
# 3. Read the amount of log blocks written from the header of the
# L2ARC device.
# 4. Offline the L2ARC device.
# 5. Online the L2ARC device.
# 6. Read the amount of log blocks rebuilt in arcstats and compare to
# (3).
-# 7. Create another random file in that pool and random read for 30 sec.
+# 7. Create another random file in that pool and random read for 10 sec.
# 8. Read the amount of log blocks written from the header of the
# L2ARC device.
# 9. Offline the L2ARC device.
diff --git a/tests/zfs-tests/tests/functional/persist_l2arc/setup.ksh b/tests/zfs-tests/tests/functional/l2arc/setup.ksh
index ef95c84cd..b7a68c134 100755
--- a/tests/zfs-tests/tests/functional/persist_l2arc/setup.ksh
+++ b/tests/zfs-tests/tests/functional/l2arc/setup.ksh
@@ -18,7 +18,7 @@
# Copyright (c) 2020, George Amanakis. All rights reserved.
#
-. $STF_SUITE/tests/functional/persist_l2arc/persist_l2arc.cfg
+. $STF_SUITE/tests/functional/l2arc/l2arc.cfg
verify_runnable "global"