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 <<a hr= ef=3D"mailto:ngie@freebsd.org">ngie@freebsd.org</a>> 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 <ngie@FreeBSD.org><br> AuthorDate: 2025-03-25 21:57:52 +0000<br> Commit:=C2=A0 =C2=A0 =C2=A0Enji Cooper <ngie@FreeBSD.org><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->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's allocated address spa= ce.<br> =C2=A0The asynchronous notification method in<br> =C2=A0.Fa iocb->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->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's allocated address spa= ce.<br> =C2=A0The asynchronous notification method in<br> =C2=A0.Fa iocb->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->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>