OpenZFS on Linux and FreeBSD
Go to file
Rich Ercolani f288fdb4bd Avoid save/restoring AMX registers to avoid a SPR erratum
Intel SPR erratum SPR4 says that if you trip into a vmexit while
doing FPU save/restore, your AMX register state might misbehave...
and by misbehave, I mean save all zeroes incorrectly, leading to
explosions if you restore it.

Since we're not using AMX for anything, the simple way to avoid
this is to just not save/restore those when we do anything, since
we're killing preemption of any sort across our save/restores.

If we ever decide to use AMX, it's not clear that we have any
way to mitigate this, on Linux...but I am not an expert.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rich Ercolani <rincebrain@gmail.com>
Closes #14989
Closes #15168

Signed-off-by: Rich Ercolani <rincebrain@gmail.com>
2024-04-03 16:39:43 -07:00
.github Update workflows 2023-03-09 18:46:36 -08:00
cmd Fix GCC 12 compilation errors 2024-02-21 13:35:13 -08:00
config Fix GCC 12 compilation errors 2024-02-21 13:35:13 -08:00
contrib contrib/bash_completion.d: fix error spew from __zfs_match_snapshot() 2023-06-17 19:52:46 -07:00
etc systemd: set restart=always for zfs-zed.service 2023-01-19 12:50:42 -08:00
include Avoid save/restoring AMX registers to avoid a SPR erratum 2024-04-03 16:39:43 -07:00
lib Fix GCC 12 compilation errors 2024-02-21 13:35:13 -08:00
man Add 'zpool status -e' flag to see unhealthy vdevs 2024-02-13 14:22:48 -08:00
module Avoid calling rw_destroy() on uninitialized rwlock 2024-02-21 13:35:13 -08:00
rpm zfs-dkms: fix shell-init error message 2023-12-05 11:04:54 -08:00
scripts Add zfs_prepare_disk script for disk firmware install 2024-02-13 14:22:48 -08:00
tests ZTS: Debug zfs_share_concurrent_shares failure 2024-02-16 09:40:33 -08:00
udev Udev rules: use match (==) rather than assign (=) for PROGRAM 2021-09-14 12:23:10 -07:00
.editorconfig Add an .editorconfig; document git whitespace settings 2020-01-27 13:32:52 -08:00
.gitignore Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
.gitmodules .gitmodules: link to openzfs github repository 2021-04-14 13:23:08 -07:00
AUTHORS Add zstd support to zfs 2020-08-20 10:30:06 -07:00
CODE_OF_CONDUCT.md Documentation corrections 2023-01-19 12:50:42 -08:00
COPYRIGHT Fix typos 2020-06-09 21:24:09 -07:00
LICENSE Update build system and packaging 2018-05-29 16:00:33 -07:00
META Tag zfs-2.1.15 2024-02-22 17:59:06 -08:00
Makefile.am config: check for parallel(1), use it for cstyle 2022-09-14 11:23:25 -07:00
NEWS Fix NEWS file 2020-08-26 21:44:41 -07:00
NOTICE Update build system and packaging 2018-05-29 16:00:33 -07:00
README.md README: Update OpenZFS website url 2022-02-16 17:58:55 -08:00
RELEASES.md Add RELEASES.md file 2021-04-07 13:26:58 -07:00
TEST Remove CI builder customization from TEST 2020-03-16 10:46:03 -07:00
autogen.sh Cause autogen.sh to fail if autoreconf fails 2018-07-06 09:27:37 -07:00
configure.ac Speed up WB_SYNC_NONE when a WB_SYNC_ALL occurs simultaneously 2023-06-05 10:59:02 -07:00
copy-builtin copy-builtin: add hooks with sed/>> 2023-11-30 11:09:15 -08:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

README.md

img

OpenZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community. This repository contains the code for running OpenZFS on Linux and FreeBSD.

codecov coverity

Official Resources

Installation

Full documentation for installing OpenZFS on your favorite operating system can be found at the Getting Started Page.

Contribute & Develop

We have a separate document with contribution guidelines.

We have a Code of Conduct.

Release

OpenZFS is released under a CDDL license. For more details see the NOTICE, LICENSE and COPYRIGHT files; UCRL-CODE-235197

Supported Kernels

  • The META file contains the officially recognized supported Linux kernel versions.
  • Supported FreeBSD versions are any supported branches and releases starting from 12.2-RELEASE.