docs-xml: rewrite the vfs_aio_pthread manpage to reflect the >= 4.0.0 behavior
authorStefan Metzmacher <metze@samba.org>
Fri, 20 Apr 2018 09:04:20 +0000 (11:04 +0200)
committerVolker Lendecke <vl@samba.org>
Mon, 23 Apr 2018 08:30:19 +0000 (10:30 +0200)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
docs-xml/manpages/vfs_aio_pthread.8.xml

index 69a83468bff901a11a031496c5d66356f50d66d5..c6f291b980e21e5df4f00f7ce1b316d9446b78c7 100644 (file)
@@ -13,7 +13,7 @@
 
 <refnamediv>
        <refname>vfs_aio_pthread</refname>
-       <refpurpose>implement async I/O in Samba vfs using a pthread pool</refpurpose>
+       <refpurpose>implement async open in Samba vfs using a pthread pool</refpurpose>
 </refnamediv>
 
 <refsynopsisdiv>
        <manvolnum>7</manvolnum></citerefentry> suite.</para>
 
        <para>The <command>aio_pthread</command> VFS module enables asynchronous
-       I/O for Samba on platforms which have the pthreads API available,
-       without using the Posix AIO interface. Posix AIO can suffer from severe
-       limitations.  For example, on some Linux versions the
-       real-time signals that it uses are broken under heavy load.
-       Other systems only allow AIO when special kernel modules are
-       loaded or only allow a certain system-wide amount of async
-       requests being scheduled. Systems based on glibc (most Linux
-       systems) only allow a single outstanding request per file
-       descriptor which essentially makes Posix AIO useless on systems
-       using the glibc implementation.</para>
-
-       <para>To work around all these limitations, the aio_pthread module
-       was written. It uses a pthread pool instead of the
-       internal Posix AIO interface to allow read and write calls
-       to be process asynchronously. A pthread pool is created
-       which expands dynamically by creating new threads as work is
-       given to it to a maximum of 100 threads per smbd process.
-       To change this limit see the "aio num threads" parameter
-       below. New threads are not created if idle threads are
-       available when a new read or write request is received,
-       the new work is given to an existing idle thread. Threads
-       terminate themselves if idle for one second.
+       opens (for new files) with <smbconfoption name="aio_pthread:aio open">yes</smbconfoption>
+       on platforms which have the pthreads API available,
+       support the openat() syscall and support per thread credentials (modern Linux kernels).
        </para>
 
-       <para>
-       Note that the smb.conf parameters <command>aio read size</command>
-       and <command>aio write size</command> must also be set appropriately
-       for this module to be active.
-       </para>
+       <para>The module makes use of the global thread pool which uses the
+       <smbconfoption name="aio max threads"/> option.</para>
 
        <para>This module MUST be listed last in any module stack as
-       the Samba VFS pread/pwrite interface is not thread-safe. This
-       module makes direct pread and pwrite system calls and does
-       NOT call the Samba VFS pread and pwrite interfaces.</para>
+       the Samba VFS open interface is not thread-safe. This
+       module makes direct openat() system calls and does
+       NOT call the Samba VFS open interfaces.</para>
 
 </refsect1>
 
@@ -76,9 +54,8 @@
 <programlisting>
         <smbconfsection name="[cooldata]"/>
        <smbconfoption name="path">/data/ice</smbconfoption>
-       <smbconfoption name="aio read size">1024</smbconfoption>
-       <smbconfoption name="aio write size">1024</smbconfoption>
        <smbconfoption name="vfs objects">aio_pthread</smbconfoption>
+       <smbconfoption name="aio_pthread:aio open">yes</smbconfoption>
 </programlisting>
 
 </refsect1>
        <variablelist>
 
                <varlistentry>
-               <term>aio_pthread:aio num threads = INTEGER</term>
+               <term>aio_pthread:aio open = BOOL</term>
                <listitem>
-               <para>Limit the maximum number of threads per smbd that
-               will be created in the thread pool to service IO requests.
+               <para>Try async opens for creating new files.
                </para>
-               <para>By default this is set to 100.</para>
+               <para>The default is 'no'.</para>
                </listitem>
                </varlistentry>
 
        </variablelist>
 </refsect1>
+
 <refsect1>
        <title>VERSION</title>