]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Persistent L2ARC
authorGeorge Amanakis <gamanakis@gmail.com>
Fri, 10 Apr 2020 17:33:35 +0000 (13:33 -0400)
committerGitHub <noreply@github.com>
Fri, 10 Apr 2020 17:33:35 +0000 (10:33 -0700)
commit77f6826b83b7e27f0996f6d192202c36f65e41fd
treeb9946c99348bf6742cc41739aeff1a2b952d9d2f
parent36a6e2335c45212f2609269bcee3004908ac6bcb
Persistent L2ARC

This commit makes the L2ARC persistent across reboots. We implement
a light-weight persistent L2ARC metadata structure that allows L2ARC
contents to be recovered after a reboot. This significantly eases the
impact a reboot has on read performance on systems with large caches.

Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: George Wilson <gwilson@delphix.com>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Co-authored-by: Saso Kiselkov <skiselkov@gmail.com>
Co-authored-by: Jorgen Lundman <lundman@lundman.net>
Co-authored-by: George Amanakis <gamanakis@gmail.com>
Ported-by: Yuxuan Shui <yshuiv7@gmail.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #925
Closes #1823
Closes #2672
Closes #3744
Closes #9582
30 files changed:
cmd/zdb/zdb.c
configure.ac
include/sys/arc.h
include/sys/arc_impl.h
include/sys/fs/zfs.h
include/sys/spa.h
lib/libzfs/libzfs_import.c
man/man5/zfs-module-parameters.5
man/man8/zdb.8
man/man8/zpool-labelclear.8
man/man8/zpoolconcepts.8
module/os/linux/zfs/zfs_sysfs.c
module/zfs/arc.c
module/zfs/spa.c
module/zfs/vdev.c
tests/runfiles/linux.run
tests/zfs-tests/include/tunables.cfg
tests/zfs-tests/tests/functional/Makefile.am
tests/zfs-tests/tests/functional/persist_l2arc/Makefile.am [new file with mode: 0644]
tests/zfs-tests/tests/functional/persist_l2arc/cleanup.ksh [new file with mode: 0755]
tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc.cfg [new file with mode: 0644]
tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_001_pos.ksh [new file with mode: 0755]
tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_002_pos.ksh [new file with mode: 0755]
tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_003_neg.ksh [new file with mode: 0755]
tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_004_pos.ksh [new file with mode: 0755]
tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_005_pos.ksh [new file with mode: 0755]
tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_006_pos.ksh [new file with mode: 0755]
tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_007_pos.ksh [new file with mode: 0755]
tests/zfs-tests/tests/functional/persist_l2arc/persist_l2arc_008_pos.ksh [new file with mode: 0755]
tests/zfs-tests/tests/functional/persist_l2arc/setup.ksh [new file with mode: 0755]