Go to file
Rob N a6edc0adb2
zio: try to execute TYPE_NULL ZIOs on the current task
Many TYPE_NULL ZIOs are used to provide a sync point for child ZIOs, and
do not do any actual work themselves. However, they are still dispatched
to a dedicated, single-thread taskq, which leads to their execution
being entirely task switch and dequeue overhead for no actual reason.

This commit changes it so that when selecting a parent ZIO to execute,
if the parent is TYPE_NULL and has no done function (that is, no
additional work), it is executed on the same thread. This reduces task
switches and frees up CPU cores for other work.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
Closes #16134
2024-04-29 15:57:32 -07:00
.github Move nodes into correct subgraphs 2024-01-29 09:16:02 -08:00
cmd vdev probe to slow disk can stall mmp write checker 2024-04-29 14:35:53 -07:00
config Python 3.12 deprecated python3-distutils 2024-04-25 13:40:09 -07:00
contrib Python 3.12 deprecated python3-distutils 2024-04-25 13:40:09 -07:00
etc etc/init.d: decide which variant to use at build time. 2024-04-08 16:52:24 -07:00
include vdev probe to slow disk can stall mmp write checker 2024-04-29 14:35:53 -07:00
lib Overflowing refreservation is bad 2024-04-29 11:32:49 -07:00
man vdev probe to slow disk can stall mmp write checker 2024-04-29 14:35:53 -07:00
module zio: try to execute TYPE_NULL ZIOs on the current task 2024-04-29 15:57:32 -07:00
rpm zfs-kmod: fix empty rpm requires/conflicts 2024-04-22 17:55:41 -07:00
scripts zts: add a debug option to get full test output 2024-04-16 09:13:01 -07:00
tests vdev probe to slow disk can stall mmp write checker 2024-04-29 14:35:53 -07:00
udev udev: correctly handle partition #16 and later 2024-03-21 16:38:24 -07:00
.cirrus.yml CI: add FreeBSD build with Cirrus CI 2023-10-06 08:50:26 -07:00
.editorconfig
.gitignore Packaging: Auto-generate changelog during configure (#15528) 2023-11-16 08:58:47 -08:00
.gitmodules
.mailmap AUTHORS: refresh with recent new contributors 2024-04-11 14:49:57 -07:00
AUTHORS AUTHORS: refresh with recent new contributors 2024-04-11 14:49:57 -07:00
autogen.sh
CODE_OF_CONDUCT.md
configure.ac Packaging: Auto-generate changelog during configure (#15528) 2023-11-16 08:58:47 -08:00
copy-builtin
COPYRIGHT
LICENSE
Makefile.am
META Linux 6.8 compat: META (#16099) 2024-04-17 09:29:21 -07:00
NEWS
NOTICE
README.md FreeBSD: Fix the build on FreeBSD 12 2023-11-27 12:58:03 -08:00
RELEASES.md
TEST
zfs.release.in

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.4-RELEASE.