summaryrefslogtreecommitdiff
path: root/docs-xml
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2019-06-05 17:01:49 +0200
committerStefan Metzmacher <metze@samba.org>2020-02-15 11:37:45 +0000
commit195e88cea34c983afc02cfb521a60cdd1edbe9e1 (patch)
treed892a924d8a8e72d17573a305a6e3c483665ee23 /docs-xml
parentfb5a99fa0200785ef1b5a8c9bc4a645d09fbeb5e (diff)
downloadsamba-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.xml107
-rw-r--r--docs-xml/wscript_build1
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',