diff options
author | Stefan Metzmacher <metze@samba.org> | 2019-06-05 17:01:49 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2020-02-15 11:37:45 +0000 |
commit | 195e88cea34c983afc02cfb521a60cdd1edbe9e1 (patch) | |
tree | d892a924d8a8e72d17573a305a6e3c483665ee23 /docs-xml | |
parent | fb5a99fa0200785ef1b5a8c9bc4a645d09fbeb5e (diff) | |
download | samba-195e88cea34c983afc02cfb521a60cdd1edbe9e1.tar.gz |
s3:modules: add vfs_io_uring module
The module makes use of the new io_uring infrastructure
(intruduced in linux 5.1), see https://lwn.net/Articles/778411/ and
http://git.kernel.dk/cgit/liburing/
Currently this only implements SMB_VFS_{PREAD,PWRITE,FSYNC}_SEND/RECV
and avoids the overhead of our userspace threadpool.
In future we'll hopefully make more use of more advanced io_uring
features.
For now we don't have automated tests as our test infrastructure
doesn't use a recent kernel. At least we're able to do compile tests
on fedora31.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Sat Feb 15 11:37:45 UTC 2020 on sn-devel-184
Diffstat (limited to 'docs-xml')
-rw-r--r-- | docs-xml/manpages/vfs_io_uring.8.xml | 107 | ||||
-rw-r--r-- | docs-xml/wscript_build | 1 |
2 files changed, 108 insertions, 0 deletions
diff --git a/docs-xml/manpages/vfs_io_uring.8.xml b/docs-xml/manpages/vfs_io_uring.8.xml new file mode 100644 index 00000000000..f47a5041ec0 --- /dev/null +++ b/docs-xml/manpages/vfs_io_uring.8.xml @@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!DOCTYPE refentry PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc"> +<refentry id="vfs_io_uring.8"> + +<refmeta> + <refentrytitle>vfs_io_uring</refentrytitle> + <manvolnum>8</manvolnum> + <refmiscinfo class="source">Samba</refmiscinfo> + <refmiscinfo class="manual">System Administration tools</refmiscinfo> + <refmiscinfo class="version">&doc.version;</refmiscinfo> +</refmeta> + +<refnamediv> + <refname>vfs_io_uring</refname> + <refpurpose>Implement async io in Samba vfs using io_uring of Linux (>= 5.1).</refpurpose> +</refnamediv> + +<refsynopsisdiv> + <cmdsynopsis> + <command>vfs objects = io_uring</command> + </cmdsynopsis> +</refsynopsisdiv> + +<refsect1> + <title>DESCRIPTION</title> + + <para>This VFS module is part of the + <citerefentry><refentrytitle>samba</refentrytitle> + <manvolnum>7</manvolnum></citerefentry> suite.</para> + + <para>The <command>io_uring</command> VFS module enables asynchronous + pread, pwrite and fsync using the io_uring infrastructure of Linux (>= 5.1). + This provides much less overhead compared to the usage of the pthreadpool for + async io.</para> + + <para>This module SHOULD be listed last in any module stack as + it requires real kernel file descriptors.</para> + +</refsect1> + + +<refsect1> + <title>EXAMPLES</title> + + <para>Straight forward use:</para> + +<programlisting> + <smbconfsection name="[cooldata]"/> + <smbconfoption name="path">/data/ice</smbconfoption> + <smbconfoption name="vfs objects">io_uring</smbconfoption> +</programlisting> + +</refsect1> + +<refsect1> + <title>OPTIONS</title> + + <variablelist> + + <varlistentry> + <term>io_uring:num_entries = NUMBER_OF_QUEUE_ENTRIES</term> + <listitem> + <para>The number of entries in the submission queue. + The maximum allowed value depends on the kernel version + and the kernel will roundup the value to a power of 2. + </para> + <para>The default is '128'.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>io_uring:sqpoll = BOOL</term> + <listitem> + <para>Use the IORING_SETUP_SQPOLL feature. + </para> + <para>The default is 'no'.</para> + </listitem> + </varlistentry> + + </variablelist> +</refsect1> + +<refsect1> + <title>SEE ALSO</title> + <para> + <citerefentry><refentrytitle>io_uring_setup</refentrytitle><manvolnum>2</manvolnum></citerefentry>. + </para> +</refsect1> + +<refsect1> + <title>VERSION</title> + + <para>This man page is part of version &doc.version; of the Samba suite. + </para> +</refsect1> + +<refsect1> + <title>AUTHOR</title> + + <para>The original Samba software and related utilities + were created by Andrew Tridgell. Samba is now developed + by the Samba Team as an Open Source project similar + to the way the Linux kernel is developed.</para> + +</refsect1> + +</refentry> diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build index 70f5b43dd33..21158e11fe7 100644 --- a/docs-xml/wscript_build +++ b/docs-xml/wscript_build @@ -68,6 +68,7 @@ vfs_module_manpages = ['vfs_acl_tdb', 'vfs_acl_xattr', 'vfs_aio_fork', 'vfs_aio_pthread', + 'vfs_io_uring', 'vfs_audit', 'vfs_btrfs', 'vfs_cacheprime', |