From: Adam Manzanares <[email protected]>
The newly added IOCB_FLAG_IOPRIO aio_flag introduces
new behaviors and return values.
The details of this new feature are posted here:
https://lkml.org/lkml/2018/5/22/809
Signed-off-by: Adam Manzanares <[email protected]>
---
man2/io_submit.2 | 34 +++++++++++++++++++++++++++-------
1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/man2/io_submit.2 b/man2/io_submit.2
index d17e3122a..15e1ecdea 100644
--- a/man2/io_submit.2
+++ b/man2/io_submit.2
@@ -164,14 +164,26 @@ This is the size of the buffer pointed to by
This is the file offset at which the I/O operation is to be performed.
.TP
.I aio_flags
-This is the flag to be passed iocb structure.
-The only valid value is
-.BR IOCB_FLAG_RESFD ,
-which indicates that the asynchronous I/O control must signal the file
+This is the set of flags associated with the iocb structure.
+The valid values are:
+.RS
+.TP
+.BR IOCB_FLAG_RESFD
+Asynchronous I/O control must signal the file
descriptor mentioned in
.I aio_resfd
upon completion.
.TP
+.BR IOCB_FLAG_IOPRIO " (since Linux 4.18)"
+.\" commit d9a08a9e616beeccdbd0e7262b7225ffdfa49e92
+Interpret the
+.I aio_reqprio
+field as an
+.B IOPRIO_VALUE
+as defined by
+.IR linux/ioprio.h.
+.RE
+.TP
.I aio_resfd
The file descriptor to signal in the event of asynchronous I/O completion.
.SH RETURN VALUE
@@ -196,13 +208,21 @@ The AIO context specified by \fIctx_id\fP is invalid.
\fInr\fP is less than 0.
The \fIiocb\fP at
.I *iocbpp[0]
-is not properly initialized,
-or the operation specified is invalid for the file descriptor
-in the \fIiocb\fP.
+is not properly initialized, the operation specified is invalid for the file
+descriptor in the \fIiocb\fP, or the value in the
+.I aio_reqprio
+field is invalid.
.TP
.B ENOSYS
.BR io_submit ()
is not implemented on this architecture.
+.TP
+.B EPERM
+The aio_reqprio field is set with the class
+.B IOPRIO_CLASS_RT
+, but the submitting context does not have the
+.B CAP_SYS_ADMIN
+privilege.
.SH VERSIONS
.PP
The asynchronous I/O system calls first appeared in Linux 2.5.
--
2.17.1
Hello Adam,
On 07/13/2018 10:58 PM, [email protected] wrote:
> From: Adam Manzanares <[email protected]>
>
> The newly added IOCB_FLAG_IOPRIO aio_flag introduces
> new behaviors and return values.
>
> The details of this new feature are posted here:
> https://lkml.org/lkml/2018/5/22/809
Thanks for this patch. I've applied it, but I have a question below
about a detail that probably needs fixing.
> Signed-off-by: Adam Manzanares <[email protected]>
> ---
> man2/io_submit.2 | 34 +++++++++++++++++++++++++++-------
> 1 file changed, 27 insertions(+), 7 deletions(-)
>
> diff --git a/man2/io_submit.2 b/man2/io_submit.2
> index d17e3122a..15e1ecdea 100644
> --- a/man2/io_submit.2
> +++ b/man2/io_submit.2
> @@ -164,14 +164,26 @@ This is the size of the buffer pointed to by
> This is the file offset at which the I/O operation is to be performed.
> .TP
> .I aio_flags
> -This is the flag to be passed iocb structure.
> -The only valid value is
> -.BR IOCB_FLAG_RESFD ,
> -which indicates that the asynchronous I/O control must signal the file
> +This is the set of flags associated with the iocb structure.
> +The valid values are:
> +.RS
> +.TP
> +.BR IOCB_FLAG_RESFD
> +Asynchronous I/O control must signal the file
> descriptor mentioned in
> .I aio_resfd
> upon completion.
> .TP
> +.BR IOCB_FLAG_IOPRIO " (since Linux 4.18)"
> +.\" commit d9a08a9e616beeccdbd0e7262b7225ffdfa49e92
> +Interpret the
> +.I aio_reqprio
> +field as an
> +.B IOPRIO_VALUE
> +as defined by
> +.IR linux/ioprio.h.
> +.RE
> +.TP
> .I aio_resfd
> The file descriptor to signal in the event of asynchronous I/O completion.
> .SH RETURN VALUE
> @@ -196,13 +208,21 @@ The AIO context specified by \fIctx_id\fP is invalid.
> \fInr\fP is less than 0.
> The \fIiocb\fP at
> .I *iocbpp[0]
> -is not properly initialized,
> -or the operation specified is invalid for the file descriptor
> -in the \fIiocb\fP.
> +is not properly initialized, the operation specified is invalid for the file
> +descriptor in the \fIiocb\fP, or the value in the
> +.I aio_reqprio
> +field is invalid.
> .TP
> .B ENOSYS
> .BR io_submit ()
> is not implemented on this architecture.
> +.TP
> +.B EPERM
> +The aio_reqprio field is set with the class
> +.B IOPRIO_CLASS_RT
> +, but the submitting context does not have the
What does "submitting context" mean? Threads/tasks/processes have
capabilities. Can you rephrase in terms of processes/threads?
Thanks,
Michael
> +.B CAP_SYS_ADMIN
> +privilege.
> .SH VERSIONS
> .PP
> The asynchronous I/O system calls first appeared in Linux 2.5.
>