prctl.2: Document PR_SETIO_FLUSHER/GET_IO_FLUSHER

This patch documents the PR_SET_IO_FLUSHER and PR_GET_IO_FLUSHER
prctl commands added to the linux kernel for 5.6 in commit:

    commit 8d19f1c8e1937baf74e1962aae9f90fa3aeab463
    Author: Mike Christie <mchristi@redhat.com>
    Date:   Mon Nov 11 18:19:00 2019 -0600

        prctl: PR_{G,S}ET_IO_FLUSHER to support controlling memory reclaim

Reviewed-by: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Mike Christie <mchristi@redhat.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Mike Christie 2020-04-01 21:08:50 -05:00 committed by Michael Kerrisk
parent 98511af299
commit 308eb2f636
1 changed files with 26 additions and 0 deletions

View File

@ -1381,6 +1381,31 @@ system call on Tru64).
for information on versions and architectures.)
Return unaligned access control bits, in the location pointed to by
.IR "(unsigned int\ *) arg2" .
.TP
.B PR_SET_IO_FLUSHER (Since Linux 5.6)
If a user process is involved in the block layer or file system IO path,
and can allocate memory while processing IO requests it must set
\fIarg2\fP to 1. This will put the process in the IO_FLUSHER state which
allows it special treatment to make progress when allocating memory.
If \fIarg2\fP is 0, the process will clear the IO_FLUSHER state, and
the default behavior will be used.
The calling process must have the
.BR CAP_SYS_RESOURCE
capability.
Examples of IO_FLUSHER applications are FUSE daemons, SCSI device
emulation daemons, and daemons that perform error handling like multipath
path recovery applications.
.TP
.B PR_GET_IO_FLUSHER (Since Linux 5.6)
Return as the function result 1 if the caller is in the IO_FLUSHER state and
0 if not.
The calling process must have the
.BR CAP_SYS_RESOURCE
capability.
.SH RETURN VALUE
On success,
.BR PR_GET_DUMPABLE ,
@ -1395,6 +1420,7 @@ On success,
.BR PR_GET_SPECULATION_CTRL ,
.BR PR_MCE_KILL_GET ,
.BR PR_CAP_AMBIENT + PR_CAP_AMBIENT_IS_SET ,
.BR PR_GET_IO_FLUSHER ,
and (if it returns)
.BR PR_GET_SECCOMP
return the nonnegative values described above.