Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Mar 2025 09:04:52 -0600
From:      Alan Somers <asomers@freebsd.org>
To:        Enji Cooper <ngie@freebsd.org>
Cc:        src-committers@freebsd.org, dev-commits-src-all@freebsd.org,  dev-commits-src-main@freebsd.org
Subject:   Re: git: d97e44784bb5 - main - aio_*(2): mention ENOSYS under ERRORS
Message-ID:  <CAOtMX2gYA6cjZfcCi7JMY-qtff_utRpkMXCAp4GHfhFVoL34sw@mail.gmail.com>
In-Reply-To: <202503260450.52Q4ok8C029929@gitrepo.freebsd.org>
References:  <202503260450.52Q4ok8C029929@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--00000000000082bc6e0631402995
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Is this error still possible after f3215338ef82c7798bebca17a7d502cc5ef8bc18
?  How does one unload the module now?

On Tue, Mar 25, 2025 at 10:51=E2=80=AFPM Enji Cooper <ngie@freebsd.org> wro=
te:

> The branch main has been updated by ngie:
>
> URL:
> https://cgit.FreeBSD.org/src/commit/?id=3Dd97e44784bb5a510b7af7593c86cfbc=
ff73855c4
>
> commit d97e44784bb5a510b7af7593c86cfbcff73855c4
> Author:     Enji Cooper <ngie@FreeBSD.org>
> AuthorDate: 2025-03-25 21:57:52 +0000
> Commit:     Enji Cooper <ngie@FreeBSD.org>
> CommitDate: 2025-03-26 04:49:33 +0000
>
>     aio_*(2): mention ENOSYS under ERRORS
>
>     ENOSYS can occur if aio(4) is not loaded in the kernel. Document this
>     behavior so consumers on FreeBSD can better understand that this is a
>     possible scenario.
>
>     Clean up the manpages slightly while here:
>     - Sort `ERRORS` by errno(3).
>     - Use `.Fx` instead of `FreeBSD`.
>
>     MFC after:      2 weeks
>     Reviewed by:    ziaee
>     PR:             190942
>     Differential Revision: https://reviews.freebsd.org/D49502
> ---
>  lib/libsys/aio_cancel.2       |  7 +++++++
>  lib/libsys/aio_error.2        |  7 +++++++
>  lib/libsys/aio_fsync.2        |  7 +++++++
>  lib/libsys/aio_mlock.2        |  7 +++++++
>  lib/libsys/aio_read.2         | 11 ++++++++++-
>  lib/libsys/aio_return.2       |  7 +++++++
>  lib/libsys/aio_suspend.2      |  7 +++++++
>  lib/libsys/aio_waitcomplete.2 | 11 +++++++++--
>  lib/libsys/aio_write.2        | 11 ++++++++++-
>  9 files changed, 71 insertions(+), 4 deletions(-)
>
> diff --git a/lib/libsys/aio_cancel.2 b/lib/libsys/aio_cancel.2
> index 42d074054716..928a8b325e5f 100644
> --- a/lib/libsys/aio_cancel.2
> +++ b/lib/libsys/aio_cancel.2
> @@ -80,6 +80,13 @@ The
>  .Fa fildes
>  argument
>  is an invalid file descriptor.
> +.It Bq Er ENOSYS
> +The
> +.Fn aio_cancel
> +system call is not supported.
> +This can occur if
> +.Xr aio 4
> +support is not present.
>  .El
>  .Sh SEE ALSO
>  .Xr aio_error 2 ,
> diff --git a/lib/libsys/aio_error.2 b/lib/libsys/aio_error.2
> index 69eb7cd90ee2..2579d2f33052 100644
> --- a/lib/libsys/aio_error.2
> +++ b/lib/libsys/aio_error.2
> @@ -72,6 +72,13 @@ The
>  .Fa iocb
>  argument
>  does not reference an outstanding asynchronous I/O request.
> +.It Bq Er ENOSYS
> +The
> +.Fn aio_error
> +system call is not supported.
> +This can occur if
> +.Xr aio 4
> +support is not present.
>  .El
>  .Sh SEE ALSO
>  .Xr aio_cancel 2 ,
> diff --git a/lib/libsys/aio_fsync.2 b/lib/libsys/aio_fsync.2
> index 46fc5d95bcfd..0b863773eaf2 100644
> --- a/lib/libsys/aio_fsync.2
> +++ b/lib/libsys/aio_fsync.2
> @@ -136,6 +136,13 @@ argument
>  is not a valid descriptor.
>  .It Bq Er EINVAL
>  This implementation does not support synchronized I/O for this file.
> +.It Bq Er ENOSYS
> +The
> +.Fn aio_fsync
> +system call is not supported.
> +This can occur if
> +.Xr aio 4
> +support is not present.
>  .El
>  .Pp
>  If the request is successfully enqueued, but subsequently cancelled
> diff --git a/lib/libsys/aio_mlock.2 b/lib/libsys/aio_mlock.2
> index 02d54304c631..f89ad10936aa 100644
> --- a/lib/libsys/aio_mlock.2
> +++ b/lib/libsys/aio_mlock.2
> @@ -98,6 +98,13 @@ The request was not queued because of system resource
> limitations.
>  The asynchronous notification method in
>  .Fa iocb->aio_sigevent.sigev_notify
>  is invalid or not supported.
> +.It Bq Er ENOSYS
> +The
> +.Fn aio_mlock
> +system call is not supported.
> +This can occur if
> +.Xr aio 4
> +support is not present.
>  .El
>  .Pp
>  If the request is successfully enqueued, but subsequently cancelled
> diff --git a/lib/libsys/aio_read.2 b/lib/libsys/aio_read.2
> index 3a9601754c06..811d0b234168 100644
> --- a/lib/libsys/aio_read.2
> +++ b/lib/libsys/aio_read.2
> @@ -173,6 +173,13 @@ points outside the process's allocated address space=
.
>  The asynchronous notification method in
>  .Fa iocb->aio_sigevent.sigev_notify
>  is invalid or not supported.
> +.It Bq Er ENOSYS
> +The
> +.Fn aio_read
> +system call is not supported.
> +This can occur if
> +.Xr aio 4
> +support is not present.
>  .It Bq Er EOPNOTSUPP
>  Asynchronous read operations on the file descriptor
>  .Fa iocb->aio_fildes
> @@ -263,7 +270,9 @@ The
>  .Fn aio_read2
>  and
>  .Fn aio_readv
> -system calls are FreeBSD extensions,
> +system calls are
> +.Fx
> +extensions,
>  and should not be used in portable code.
>  .Sh HISTORY
>  The
> diff --git a/lib/libsys/aio_return.2 b/lib/libsys/aio_return.2
> index 499b85ef20d8..49e1abf201ec 100644
> --- a/lib/libsys/aio_return.2
> +++ b/lib/libsys/aio_return.2
> @@ -79,6 +79,13 @@ The I/O operation was submitted with
>  and the value of the
>  .Fa aio_lio_opcode
>  is invalid.
> +.It Bq Er ENOSYS
> +The
> +.Fn aio_return
> +system call is not supported.
> +This can occur if
> +.Xr aio 4
> +support is not present.
>  .El
>  .Sh SEE ALSO
>  .Xr aio_cancel 2 ,
> diff --git a/lib/libsys/aio_suspend.2 b/lib/libsys/aio_suspend.2
> index c46b0292c34e..ebc3c15d059f 100644
> --- a/lib/libsys/aio_suspend.2
> +++ b/lib/libsys/aio_suspend.2
> @@ -89,6 +89,13 @@ contains more asynchronous I/O requests than the
>  variable, or at least one of the requests is not valid.
>  .It Bq Er EINTR
>  the suspend was interrupted by a signal.
> +.It Bq Er ENOSYS
> +The
> +.Fn aio_suspend
> +system call is not supported.
> +This can occur if
> +.Xr aio 4
> +support is not present.
>  .El
>  .Sh SEE ALSO
>  .Xr aio_cancel 2 ,
> diff --git a/lib/libsys/aio_waitcomplete.2 b/lib/libsys/aio_waitcomplete.=
2
> index 1f20eca942ab..0a38155d7c75 100644
> --- a/lib/libsys/aio_waitcomplete.2
> +++ b/lib/libsys/aio_waitcomplete.2
> @@ -91,8 +91,6 @@ The
>  .Fn aio_waitcomplete
>  system call fails if:
>  .Bl -tag -width Er
> -.It Bq Er EINVAL
> -The specified time limit is invalid.
>  .It Bq Er EAGAIN
>  The process has not yet called
>  .Fn aio_read
> @@ -101,6 +99,15 @@ or
>  .It Bq Er EINTR
>  A signal was delivered before the timeout expired and before any
>  asynchronous I/O requests completed.
> +.It Bq Er EINVAL
> +The specified time limit is invalid.
> +.It Bq Er ENOSYS
> +The
> +.Fn aio_waitcomplete
> +system call is not supported.
> +This can occur if
> +.Xr aio 4
> +support is not present.
>  .It Bq Er EWOULDBLOCK
>  .It Bq Er EINPROGRESS
>  The specified time limit expired before any asynchronous I/O requests
> diff --git a/lib/libsys/aio_write.2 b/lib/libsys/aio_write.2
> index f59406b8ab36..a7108a87e378 100644
> --- a/lib/libsys/aio_write.2
> +++ b/lib/libsys/aio_write.2
> @@ -182,6 +182,13 @@ points outside the process's allocated address space=
.
>  The asynchronous notification method in
>  .Fa iocb->aio_sigevent.sigev_notify
>  is invalid or not supported.
> +.It Bq Er ENOSYS
> +The
> +.Fn aio_write
> +system call is not supported.
> +This can occur if
> +.Xr aio 4
> +support is not present.
>  .It Bq Er EOPNOTSUPP
>  Asynchronous write operations on the file descriptor
>  .Fa iocb->aio_fildes
> @@ -265,7 +272,9 @@ The
>  .Fn aio_write2
>  and
>  .Fn aio_writev
> -system calls are FreeBSD extensions,
> +system calls are
> +.Fx
> +extensions,
>  and should not be used in portable code.
>  .Sh HISTORY
>  The
>

--00000000000082bc6e0631402995
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Is this error still possible after f3215338ef82c7798b=
ebca17a7d502cc5ef8bc18 ?=C2=A0 How does one unload the module now?</div><br=
><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D=
"gmail_attr">On Tue, Mar 25, 2025 at 10:51=E2=80=AFPM Enji Cooper &lt;<a hr=
ef=3D"mailto:ngie@freebsd.org">ngie@freebsd.org</a>&gt; wrote:<br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">The branch main has been upd=
ated by ngie:<br>
<br>
URL: <a href=3D"https://cgit.FreeBSD.org/src/commit/?id=3Dd97e44784bb5a510b=
7af7593c86cfbcff73855c4" rel=3D"noreferrer" target=3D"_blank">https://cgit.=
FreeBSD.org/src/commit/?id=3Dd97e44784bb5a510b7af7593c86cfbcff73855c4</a><b=
r>
<br>
commit d97e44784bb5a510b7af7593c86cfbcff73855c4<br>
Author:=C2=A0 =C2=A0 =C2=A0Enji Cooper &lt;ngie@FreeBSD.org&gt;<br>
AuthorDate: 2025-03-25 21:57:52 +0000<br>
Commit:=C2=A0 =C2=A0 =C2=A0Enji Cooper &lt;ngie@FreeBSD.org&gt;<br>
CommitDate: 2025-03-26 04:49:33 +0000<br>
<br>
=C2=A0 =C2=A0 aio_*(2): mention ENOSYS under ERRORS<br>
<br>
=C2=A0 =C2=A0 ENOSYS can occur if aio(4) is not loaded in the kernel. Docum=
ent this<br>
=C2=A0 =C2=A0 behavior so consumers on FreeBSD can better understand that t=
his is a<br>
=C2=A0 =C2=A0 possible scenario.<br>
<br>
=C2=A0 =C2=A0 Clean up the manpages slightly while here:<br>
=C2=A0 =C2=A0 - Sort `ERRORS` by errno(3).<br>
=C2=A0 =C2=A0 - Use `.Fx` instead of `FreeBSD`.<br>
<br>
=C2=A0 =C2=A0 MFC after:=C2=A0 =C2=A0 =C2=A0 2 weeks<br>
=C2=A0 =C2=A0 Reviewed by:=C2=A0 =C2=A0 ziaee<br>
=C2=A0 =C2=A0 PR:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0190942<br>
=C2=A0 =C2=A0 Differential Revision: <a href=3D"https://reviews.freebsd.org=
/D49502" rel=3D"noreferrer" target=3D"_blank">https://reviews.freebsd.org/D=
49502</a><br>
---<br>
=C2=A0lib/libsys/aio_cancel.2=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 7 +++++++<b=
r>
=C2=A0lib/libsys/aio_error.2=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 7 +++++++<b=
r>
=C2=A0lib/libsys/aio_fsync.2=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 7 +++++++<b=
r>
=C2=A0lib/libsys/aio_mlock.2=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 7 +++++++<b=
r>
=C2=A0lib/libsys/aio_read.2=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 11 +++++++++=
+-<br>
=C2=A0lib/libsys/aio_return.2=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 7 +++++++<b=
r>
=C2=A0lib/libsys/aio_suspend.2=C2=A0 =C2=A0 =C2=A0 |=C2=A0 7 +++++++<br>
=C2=A0lib/libsys/aio_waitcomplete.2 | 11 +++++++++--<br>
=C2=A0lib/libsys/aio_write.2=C2=A0 =C2=A0 =C2=A0 =C2=A0 | 11 ++++++++++-<br=
>
=C2=A09 files changed, 71 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/lib/libsys/aio_cancel.2 b/lib/libsys/aio_cancel.2<br>
index 42d074054716..928a8b325e5f 100644<br>
--- a/lib/libsys/aio_cancel.2<br>
+++ b/lib/libsys/aio_cancel.2<br>
@@ -80,6 +80,13 @@ The<br>
=C2=A0.Fa fildes<br>
=C2=A0argument<br>
=C2=A0is an invalid file descriptor.<br>
+.It Bq Er ENOSYS<br>
+The<br>
+.Fn aio_cancel<br>
+system call is not supported.<br>
+This can occur if<br>
+.Xr aio 4<br>
+support is not present.<br>
=C2=A0.El<br>
=C2=A0.Sh SEE ALSO<br>
=C2=A0.Xr aio_error 2 ,<br>
diff --git a/lib/libsys/aio_error.2 b/lib/libsys/aio_error.2<br>
index 69eb7cd90ee2..2579d2f33052 100644<br>
--- a/lib/libsys/aio_error.2<br>
+++ b/lib/libsys/aio_error.2<br>
@@ -72,6 +72,13 @@ The<br>
=C2=A0.Fa iocb<br>
=C2=A0argument<br>
=C2=A0does not reference an outstanding asynchronous I/O request.<br>
+.It Bq Er ENOSYS<br>
+The<br>
+.Fn aio_error<br>
+system call is not supported.<br>
+This can occur if<br>
+.Xr aio 4<br>
+support is not present.<br>
=C2=A0.El<br>
=C2=A0.Sh SEE ALSO<br>
=C2=A0.Xr aio_cancel 2 ,<br>
diff --git a/lib/libsys/aio_fsync.2 b/lib/libsys/aio_fsync.2<br>
index 46fc5d95bcfd..0b863773eaf2 100644<br>
--- a/lib/libsys/aio_fsync.2<br>
+++ b/lib/libsys/aio_fsync.2<br>
@@ -136,6 +136,13 @@ argument<br>
=C2=A0is not a valid descriptor.<br>
=C2=A0.It Bq Er EINVAL<br>
=C2=A0This implementation does not support synchronized I/O for this file.<=
br>
+.It Bq Er ENOSYS<br>
+The<br>
+.Fn aio_fsync<br>
+system call is not supported.<br>
+This can occur if<br>
+.Xr aio 4<br>
+support is not present.<br>
=C2=A0.El<br>
=C2=A0.Pp<br>
=C2=A0If the request is successfully enqueued, but subsequently cancelled<b=
r>
diff --git a/lib/libsys/aio_mlock.2 b/lib/libsys/aio_mlock.2<br>
index 02d54304c631..f89ad10936aa 100644<br>
--- a/lib/libsys/aio_mlock.2<br>
+++ b/lib/libsys/aio_mlock.2<br>
@@ -98,6 +98,13 @@ The request was not queued because of system resource li=
mitations.<br>
=C2=A0The asynchronous notification method in<br>
=C2=A0.Fa iocb-&gt;aio_sigevent.sigev_notify<br>
=C2=A0is invalid or not supported.<br>
+.It Bq Er ENOSYS<br>
+The<br>
+.Fn aio_mlock<br>
+system call is not supported.<br>
+This can occur if<br>
+.Xr aio 4<br>
+support is not present.<br>
=C2=A0.El<br>
=C2=A0.Pp<br>
=C2=A0If the request is successfully enqueued, but subsequently cancelled<b=
r>
diff --git a/lib/libsys/aio_read.2 b/lib/libsys/aio_read.2<br>
index 3a9601754c06..811d0b234168 100644<br>
--- a/lib/libsys/aio_read.2<br>
+++ b/lib/libsys/aio_read.2<br>
@@ -173,6 +173,13 @@ points outside the process&#39;s allocated address spa=
ce.<br>
=C2=A0The asynchronous notification method in<br>
=C2=A0.Fa iocb-&gt;aio_sigevent.sigev_notify<br>
=C2=A0is invalid or not supported.<br>
+.It Bq Er ENOSYS<br>
+The<br>
+.Fn aio_read<br>
+system call is not supported.<br>
+This can occur if<br>
+.Xr aio 4<br>
+support is not present.<br>
=C2=A0.It Bq Er EOPNOTSUPP<br>
=C2=A0Asynchronous read operations on the file descriptor<br>
=C2=A0.Fa iocb-&gt;aio_fildes<br>
@@ -263,7 +270,9 @@ The<br>
=C2=A0.Fn aio_read2<br>
=C2=A0and<br>
=C2=A0.Fn aio_readv<br>
-system calls are FreeBSD extensions,<br>
+system calls are<br>
+.Fx<br>
+extensions,<br>
=C2=A0and should not be used in portable code.<br>
=C2=A0.Sh HISTORY<br>
=C2=A0The<br>
diff --git a/lib/libsys/aio_return.2 b/lib/libsys/aio_return.2<br>
index 499b85ef20d8..49e1abf201ec 100644<br>
--- a/lib/libsys/aio_return.2<br>
+++ b/lib/libsys/aio_return.2<br>
@@ -79,6 +79,13 @@ The I/O operation was submitted with<br>
=C2=A0and the value of the<br>
=C2=A0.Fa aio_lio_opcode<br>
=C2=A0is invalid.<br>
+.It Bq Er ENOSYS<br>
+The<br>
+.Fn aio_return<br>
+system call is not supported.<br>
+This can occur if<br>
+.Xr aio 4<br>
+support is not present.<br>
=C2=A0.El<br>
=C2=A0.Sh SEE ALSO<br>
=C2=A0.Xr aio_cancel 2 ,<br>
diff --git a/lib/libsys/aio_suspend.2 b/lib/libsys/aio_suspend.2<br>
index c46b0292c34e..ebc3c15d059f 100644<br>
--- a/lib/libsys/aio_suspend.2<br>
+++ b/lib/libsys/aio_suspend.2<br>
@@ -89,6 +89,13 @@ contains more asynchronous I/O requests than the<br>
=C2=A0variable, or at least one of the requests is not valid.<br>
=C2=A0.It Bq Er EINTR<br>
=C2=A0the suspend was interrupted by a signal.<br>
+.It Bq Er ENOSYS<br>
+The<br>
+.Fn aio_suspend<br>
+system call is not supported.<br>
+This can occur if<br>
+.Xr aio 4<br>
+support is not present.<br>
=C2=A0.El<br>
=C2=A0.Sh SEE ALSO<br>
=C2=A0.Xr aio_cancel 2 ,<br>
diff --git a/lib/libsys/aio_waitcomplete.2 b/lib/libsys/aio_waitcomplete.2<=
br>
index 1f20eca942ab..0a38155d7c75 100644<br>
--- a/lib/libsys/aio_waitcomplete.2<br>
+++ b/lib/libsys/aio_waitcomplete.2<br>
@@ -91,8 +91,6 @@ The<br>
=C2=A0.Fn aio_waitcomplete<br>
=C2=A0system call fails if:<br>
=C2=A0.Bl -tag -width Er<br>
-.It Bq Er EINVAL<br>
-The specified time limit is invalid.<br>
=C2=A0.It Bq Er EAGAIN<br>
=C2=A0The process has not yet called<br>
=C2=A0.Fn aio_read<br>
@@ -101,6 +99,15 @@ or<br>
=C2=A0.It Bq Er EINTR<br>
=C2=A0A signal was delivered before the timeout expired and before any<br>
=C2=A0asynchronous I/O requests completed.<br>
+.It Bq Er EINVAL<br>
+The specified time limit is invalid.<br>
+.It Bq Er ENOSYS<br>
+The<br>
+.Fn aio_waitcomplete<br>
+system call is not supported.<br>
+This can occur if<br>
+.Xr aio 4<br>
+support is not present.<br>
=C2=A0.It Bq Er EWOULDBLOCK<br>
=C2=A0.It Bq Er EINPROGRESS<br>
=C2=A0The specified time limit expired before any asynchronous I/O requests=
<br>
diff --git a/lib/libsys/aio_write.2 b/lib/libsys/aio_write.2<br>
index f59406b8ab36..a7108a87e378 100644<br>
--- a/lib/libsys/aio_write.2<br>
+++ b/lib/libsys/aio_write.2<br>
@@ -182,6 +182,13 @@ points outside the process&#39;s allocated address spa=
ce.<br>
=C2=A0The asynchronous notification method in<br>
=C2=A0.Fa iocb-&gt;aio_sigevent.sigev_notify<br>
=C2=A0is invalid or not supported.<br>
+.It Bq Er ENOSYS<br>
+The<br>
+.Fn aio_write<br>
+system call is not supported.<br>
+This can occur if<br>
+.Xr aio 4<br>
+support is not present.<br>
=C2=A0.It Bq Er EOPNOTSUPP<br>
=C2=A0Asynchronous write operations on the file descriptor<br>
=C2=A0.Fa iocb-&gt;aio_fildes<br>
@@ -265,7 +272,9 @@ The<br>
=C2=A0.Fn aio_write2<br>
=C2=A0and<br>
=C2=A0.Fn aio_writev<br>
-system calls are FreeBSD extensions,<br>
+system calls are<br>
+.Fx<br>
+extensions,<br>
=C2=A0and should not be used in portable code.<br>
=C2=A0.Sh HISTORY<br>
=C2=A0The<br>
</blockquote></div></div>

--00000000000082bc6e0631402995--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2gYA6cjZfcCi7JMY-qtff_utRpkMXCAp4GHfhFVoL34sw>