All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: aio manuals
       [not found] ` <20110309180600.GA14533-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
@ 2011-03-09 17:53   ` Jeff Moyer
       [not found]     ` <x49ei6gnpsx.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: Jeff Moyer @ 2011-03-09 17:53 UTC (permalink / raw)
  To: Cyril Hrubis
  Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w, linux-man-u79uwXL29TY76Z2rM5mHXA

Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org> writes:

> Hi!
> The io_* manuals says that we should use aio_context_t as type for aio
> handle. That is wrong as the functions are defined with io_context_t
> (libaio.h). Patch attached.
>
> The only oustanding issue is that manual for io_setup says that we must
> set the io_context_t to 0 before use. And as the io_context_t is defined
> as opaque type (and it's defined as pointer now) the only way to
> initalize it without warnigs is memset(&ctxp, 0, sizeof(ctxp));. Perhaps
> this is not needed at all, as the ctpx is passed to the syscall and then
> initalized in the kernel (at least I haven't seem any checks in the
> codepath).

There are checks in place for this, so the man page should not change in
that regard.

Cheers,
Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* aio manuals
@ 2011-03-09 18:06 Cyril Hrubis
       [not found] ` <20110309180600.GA14533-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: Cyril Hrubis @ 2011-03-09 18:06 UTC (permalink / raw)
  To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w
  Cc: linux-man-u79uwXL29TY76Z2rM5mHXA, Jeff Moyer

[-- Attachment #1: Type: text/plain, Size: 663 bytes --]

Hi!
The io_* manuals says that we should use aio_context_t as type for aio
handle. That is wrong as the functions are defined with io_context_t
(libaio.h). Patch attached.

The only oustanding issue is that manual for io_setup says that we must
set the io_context_t to 0 before use. And as the io_context_t is defined
as opaque type (and it's defined as pointer now) the only way to
initalize it without warnigs is memset(&ctxp, 0, sizeof(ctxp));. Perhaps
this is not needed at all, as the ctpx is passed to the syscall and then
initalized in the kernel (at least I haven't seem any checks in the
codepath).

-- 
Cyril Hrubis
chrubis-AlSwsSmVLrQ@public.gmane.org

[-- Attachment #2: io_context_t.patch --]
[-- Type: text/x-patch, Size: 2122 bytes --]

diff --git a/man2/io_cancel.2 b/man2/io_cancel.2
index a3fc213..1e21869 100644
--- a/man2/io_cancel.2
+++ b/man2/io_cancel.2
@@ -32,7 +32,7 @@ io_cancel \- cancel an outstanding asynchronous I/O operation
 .\"#include <linux/aio.h>
 .sp
 .\" .HP 16
-.BI "int io_cancel(aio_context_t " ctx_id ", struct iocb *" iocb ,
+.BI "int io_cancel(io_context_t " ctx_id ", struct iocb *" iocb ,
 .BI "              struct io_event *" result );
 .\" .ad
 .\" .hy
diff --git a/man2/io_destroy.2 b/man2/io_destroy.2
index 6a165e1..47d031a 100644
--- a/man2/io_destroy.2
+++ b/man2/io_destroy.2
@@ -31,7 +31,7 @@ io_destroy \- destroy an asynchronous I/O context
 .\" #include <linux/aio.h>
 .sp
 .\" .HP 17
-.BI "int io_destroy(aio_context_t " ctx );
+.BI "int io_destroy(io_context_t " ctx );
 .\" .ad
 .\" .hy
 .sp
diff --git a/man2/io_getevents.2 b/man2/io_getevents.2
index e990f6d..a337404 100644
--- a/man2/io_getevents.2
+++ b/man2/io_getevents.2
@@ -32,7 +32,7 @@ io_getevents \- read asynchronous I/O events from the completion queue
 .\" #include <linux/aio.h>
 .sp
 .\" .HP 19
-.BI "int io_getevents(aio_context_t " ctx_id ", long " min_nr ", long " nr ,
+.BI "int io_getevents(io_context_t " ctx_id ", long " min_nr ", long " nr ,
 .BI "                 struct io_event *" events \
 ", struct timespec *" timeout );
 .\" .ad
diff --git a/man2/io_setup.2 b/man2/io_setup.2
index d9b5117..ea84cb9 100644
--- a/man2/io_setup.2
+++ b/man2/io_setup.2
@@ -31,7 +31,7 @@ io_setup \- create an asynchronous I/O context
 .\" #include <linux/aio.h>
 .sp
 .\" .HP 15
-.BI "int io_setup(unsigned " nr_events ", aio_context_t *" ctxp );
+.BI "int io_setup(unsigned " nr_events ", io_context_t *" ctxp );
 .\" .ad
 .\" .hy
 .sp
diff --git a/man2/io_submit.2 b/man2/io_submit.2
index 1eae429..3b6bbf2 100644
--- a/man2/io_submit.2
+++ b/man2/io_submit.2
@@ -31,7 +31,7 @@ io_submit \- submit asynchronous I/O blocks for processing
 .\" #include <linux/aio.h>
 .sp
 .\" .HP 16
-.BI "int io_submit(aio_context_t " ctx_id ", long " nr \
+.BI "int io_submit(io_context_t " ctx_id ", long " nr \
 ", struct iocb **" iocbpp );
 .\" .ad
 .\" .hy

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]     ` <x49ei6gnpsx.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
@ 2011-03-16 10:43       ` Cyril Hrubis
       [not found]         ` <20110316104356.GB32095-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: Cyril Hrubis @ 2011-03-16 10:43 UTC (permalink / raw)
  To: Jeff Moyer
  Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w, linux-man-u79uwXL29TY76Z2rM5mHXA

Hi!
> > The io_* manuals says that we should use aio_context_t as type for aio
> > handle. That is wrong as the functions are defined with io_context_t
> > (libaio.h). Patch attached.
> >
> > The only oustanding issue is that manual for io_setup says that we must
> > set the io_context_t to 0 before use. And as the io_context_t is defined
> > as opaque type (and it's defined as pointer now) the only way to
> > initalize it without warnigs is memset(&ctxp, 0, sizeof(ctxp));. Perhaps
> > this is not needed at all, as the ctpx is passed to the syscall and then
> > initalized in the kernel (at least I haven't seem any checks in the
> > codepath).
> 
> There are checks in place for this, so the man page should not change in
> that regard.

So should we settle for memset()? I could update send updated patch
then.

-- 
Cyril Hrubis
chrubis-AlSwsSmVLrQ@public.gmane.org
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]         ` <20110316104356.GB32095-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
@ 2011-03-16 14:26           ` Jeff Moyer
       [not found]             ` <x49pqpr9m5l.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: Jeff Moyer @ 2011-03-16 14:26 UTC (permalink / raw)
  To: Cyril Hrubis
  Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w, linux-man-u79uwXL29TY76Z2rM5mHXA

Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org> writes:

> Hi!
>> > The io_* manuals says that we should use aio_context_t as type for aio
>> > handle. That is wrong as the functions are defined with io_context_t
>> > (libaio.h). Patch attached.
>> >
>> > The only oustanding issue is that manual for io_setup says that we must
>> > set the io_context_t to 0 before use. And as the io_context_t is defined
>> > as opaque type (and it's defined as pointer now) the only way to
>> > initalize it without warnigs is memset(&ctxp, 0, sizeof(ctxp));. Perhaps
>> > this is not needed at all, as the ctpx is passed to the syscall and then
>> > initalized in the kernel (at least I haven't seem any checks in the
>> > codepath).
>> 
>> There are checks in place for this, so the man page should not change in
>> that regard.
>
> So should we settle for memset()? I could update send updated patch
> then.

Yeah, memset is what I typically have done.

Thanks, Cyril.

-Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]             ` <x49pqpr9m5l.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
@ 2011-03-16 15:20               ` Cyril Hrubis
       [not found]                 ` <20110316152018.GG2096-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: Cyril Hrubis @ 2011-03-16 15:20 UTC (permalink / raw)
  To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w
  Cc: linux-man-u79uwXL29TY76Z2rM5mHXA, Jeff Moyer

[-- Attachment #1: Type: text/plain, Size: 220 bytes --]

Hi!
> > So should we settle for memset()? I could update send updated patch
> > then.
> 
> Yeah, memset is what I typically have done.
> 

Here comes updated patch.

-- 
Cyril Hrubis
chrubis-AlSwsSmVLrQ@public.gmane.org

[-- Attachment #2: 0001-Fix-io_-manuals.patch --]
[-- Type: text/x-patch, Size: 3453 bytes --]

>From 61ea8972c02120ed534554b134c45086243d911e Mon Sep 17 00:00:00 2001
From: Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org>
Date: Wed, 16 Mar 2011 16:14:19 +0100
Subject: [PATCH] Fix io_* manuals.

The manuals says that we should use aio_context_t as type for ctpx
handle. That is wrong as the functions are defined with io_context_t in
libaio.h.

Also as the io_context_t is opaque type, it should be initalized with:

memset(&ctpx, 0, sizeof(ctpx));

Signed-off-by: Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org>
---
 man2/io_cancel.2    |    2 +-
 man2/io_destroy.2   |    2 +-
 man2/io_getevents.2 |    2 +-
 man2/io_setup.2     |    8 ++++++--
 man2/io_submit.2    |    2 +-
 5 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/man2/io_cancel.2 b/man2/io_cancel.2
index a3fc213..1e21869 100644
--- a/man2/io_cancel.2
+++ b/man2/io_cancel.2
@@ -32,7 +32,7 @@ io_cancel \- cancel an outstanding asynchronous I/O operation
 .\"#include <linux/aio.h>
 .sp
 .\" .HP 16
-.BI "int io_cancel(aio_context_t " ctx_id ", struct iocb *" iocb ,
+.BI "int io_cancel(io_context_t " ctx_id ", struct iocb *" iocb ,
 .BI "              struct io_event *" result );
 .\" .ad
 .\" .hy
diff --git a/man2/io_destroy.2 b/man2/io_destroy.2
index 6a165e1..47d031a 100644
--- a/man2/io_destroy.2
+++ b/man2/io_destroy.2
@@ -31,7 +31,7 @@ io_destroy \- destroy an asynchronous I/O context
 .\" #include <linux/aio.h>
 .sp
 .\" .HP 17
-.BI "int io_destroy(aio_context_t " ctx );
+.BI "int io_destroy(io_context_t " ctx );
 .\" .ad
 .\" .hy
 .sp
diff --git a/man2/io_getevents.2 b/man2/io_getevents.2
index e990f6d..a337404 100644
--- a/man2/io_getevents.2
+++ b/man2/io_getevents.2
@@ -32,7 +32,7 @@ io_getevents \- read asynchronous I/O events from the completion queue
 .\" #include <linux/aio.h>
 .sp
 .\" .HP 19
-.BI "int io_getevents(aio_context_t " ctx_id ", long " min_nr ", long " nr ,
+.BI "int io_getevents(io_context_t " ctx_id ", long " min_nr ", long " nr ,
 .BI "                 struct io_event *" events \
 ", struct timespec *" timeout );
 .\" .ad
diff --git a/man2/io_setup.2 b/man2/io_setup.2
index d9b5117..851b0c4 100644
--- a/man2/io_setup.2
+++ b/man2/io_setup.2
@@ -31,7 +31,7 @@ io_setup \- create an asynchronous I/O context
 .\" #include <linux/aio.h>
 .sp
 .\" .HP 15
-.BI "int io_setup(unsigned " nr_events ", aio_context_t *" ctxp );
+.BI "int io_setup(unsigned " nr_events ", io_context_t *" ctxp );
 .\" .ad
 .\" .hy
 .sp
@@ -42,8 +42,12 @@ Link with \fI\-laio\fP.
 .BR io_setup ()
 creates an asynchronous I/O context capable of receiving
 at least \fInr_events\fP.
-\fIctxp\fP must not point to an AIO context that already exists, and must
+The \fIctxp\fP must not point to an AIO context that already exists, and must
 be initialized to 0 prior to the call.
+
+Note that io_context_t is opaque type and thuss \fIctxp\fP should be zeroed
+with memset(&ctpx, 0, sizeof(ctpx)).
+
 On successful creation of the AIO context, \fI*ctxp\fP is filled in
 with the resulting handle.
 .SH "RETURN VALUE"
diff --git a/man2/io_submit.2 b/man2/io_submit.2
index 1eae429..3b6bbf2 100644
--- a/man2/io_submit.2
+++ b/man2/io_submit.2
@@ -31,7 +31,7 @@ io_submit \- submit asynchronous I/O blocks for processing
 .\" #include <linux/aio.h>
 .sp
 .\" .HP 16
-.BI "int io_submit(aio_context_t " ctx_id ", long " nr \
+.BI "int io_submit(io_context_t " ctx_id ", long " nr \
 ", struct iocb **" iocbpp );
 .\" .ad
 .\" .hy
-- 
1.6.4.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                 ` <20110316152018.GG2096-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
@ 2011-10-13  8:29                   ` Cyril Hrubis
       [not found]                     ` <20111013082918.GA17800-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: Cyril Hrubis @ 2011-10-13  8:29 UTC (permalink / raw)
  To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w
  Cc: linux-man-u79uwXL29TY76Z2rM5mHXA, Jeff Moyer

Hi!
> > > So should we settle for memset()? I could update send updated patch
> > > then.
> > 
> > Yeah, memset is what I typically have done.
> > 
> 
> Here comes updated patch.

I've checked the latest man pages git and these changes aren't there
yet. Any comments?

> From 61ea8972c02120ed534554b134c45086243d911e Mon Sep 17 00:00:00 2001
> From: Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org>
> Date: Wed, 16 Mar 2011 16:14:19 +0100
> Subject: [PATCH] Fix io_* manuals.
> 
> The manuals says that we should use aio_context_t as type for ctpx
> handle. That is wrong as the functions are defined with io_context_t in
> libaio.h.
> 
> Also as the io_context_t is opaque type, it should be initalized with:
> 
> memset(&ctpx, 0, sizeof(ctpx));
> 
> Signed-off-by: Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org>
> ---
>  man2/io_cancel.2    |    2 +-
>  man2/io_destroy.2   |    2 +-
>  man2/io_getevents.2 |    2 +-
>  man2/io_setup.2     |    8 ++++++--
>  man2/io_submit.2    |    2 +-
>  5 files changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/man2/io_cancel.2 b/man2/io_cancel.2
> index a3fc213..1e21869 100644
> --- a/man2/io_cancel.2
> +++ b/man2/io_cancel.2
> @@ -32,7 +32,7 @@ io_cancel \- cancel an outstanding asynchronous I/O operation
>  .\"#include <linux/aio.h>
>  .sp
>  .\" .HP 16
> -.BI "int io_cancel(aio_context_t " ctx_id ", struct iocb *" iocb ,
> +.BI "int io_cancel(io_context_t " ctx_id ", struct iocb *" iocb ,
>  .BI "              struct io_event *" result );
>  .\" .ad
>  .\" .hy
> diff --git a/man2/io_destroy.2 b/man2/io_destroy.2
> index 6a165e1..47d031a 100644
> --- a/man2/io_destroy.2
> +++ b/man2/io_destroy.2
> @@ -31,7 +31,7 @@ io_destroy \- destroy an asynchronous I/O context
>  .\" #include <linux/aio.h>
>  .sp
>  .\" .HP 17
> -.BI "int io_destroy(aio_context_t " ctx );
> +.BI "int io_destroy(io_context_t " ctx );
>  .\" .ad
>  .\" .hy
>  .sp
> diff --git a/man2/io_getevents.2 b/man2/io_getevents.2
> index e990f6d..a337404 100644
> --- a/man2/io_getevents.2
> +++ b/man2/io_getevents.2
> @@ -32,7 +32,7 @@ io_getevents \- read asynchronous I/O events from the completion queue
>  .\" #include <linux/aio.h>
>  .sp
>  .\" .HP 19
> -.BI "int io_getevents(aio_context_t " ctx_id ", long " min_nr ", long " nr ,
> +.BI "int io_getevents(io_context_t " ctx_id ", long " min_nr ", long " nr ,
>  .BI "                 struct io_event *" events \
>  ", struct timespec *" timeout );
>  .\" .ad
> diff --git a/man2/io_setup.2 b/man2/io_setup.2
> index d9b5117..851b0c4 100644
> --- a/man2/io_setup.2
> +++ b/man2/io_setup.2
> @@ -31,7 +31,7 @@ io_setup \- create an asynchronous I/O context
>  .\" #include <linux/aio.h>
>  .sp
>  .\" .HP 15
> -.BI "int io_setup(unsigned " nr_events ", aio_context_t *" ctxp );
> +.BI "int io_setup(unsigned " nr_events ", io_context_t *" ctxp );
>  .\" .ad
>  .\" .hy
>  .sp
> @@ -42,8 +42,12 @@ Link with \fI\-laio\fP.
>  .BR io_setup ()
>  creates an asynchronous I/O context capable of receiving
>  at least \fInr_events\fP.
> -\fIctxp\fP must not point to an AIO context that already exists, and must
> +The \fIctxp\fP must not point to an AIO context that already exists, and must
>  be initialized to 0 prior to the call.
> +
> +Note that io_context_t is opaque type and thuss \fIctxp\fP should be zeroed
> +with memset(&ctpx, 0, sizeof(ctpx)).
> +
>  On successful creation of the AIO context, \fI*ctxp\fP is filled in
>  with the resulting handle.
>  .SH "RETURN VALUE"
> diff --git a/man2/io_submit.2 b/man2/io_submit.2
> index 1eae429..3b6bbf2 100644
> --- a/man2/io_submit.2
> +++ b/man2/io_submit.2
> @@ -31,7 +31,7 @@ io_submit \- submit asynchronous I/O blocks for processing
>  .\" #include <linux/aio.h>
>  .sp
>  .\" .HP 16
> -.BI "int io_submit(aio_context_t " ctx_id ", long " nr \
> +.BI "int io_submit(io_context_t " ctx_id ", long " nr \
>  ", struct iocb **" iocbpp );
>  .\" .ad
>  .\" .hy
> -- 
> 1.6.4.2
> 


-- 
Cyril Hrubis
chrubis-AlSwsSmVLrQ@public.gmane.org
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                     ` <20111013082918.GA17800-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
@ 2011-10-17 19:53                       ` Jeff Moyer
  2012-05-05 12:26                       ` Michael Kerrisk (man-pages)
  1 sibling, 0 replies; 24+ messages in thread
From: Jeff Moyer @ 2011-10-17 19:53 UTC (permalink / raw)
  To: Cyril Hrubis
  Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w, linux-man-u79uwXL29TY76Z2rM5mHXA

Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org> writes:

> Hi!
>> > > So should we settle for memset()? I could update send updated patch
>> > > then.
>> > 
>> > Yeah, memset is what I typically have done.
>> > 
>> 
>> Here comes updated patch.
>
> I've checked the latest man pages git and these changes aren't there
> yet. Any comments?
>> @@ -42,8 +42,12 @@ Link with \fI\-laio\fP.
>>  .BR io_setup ()
>>  creates an asynchronous I/O context capable of receiving
>>  at least \fInr_events\fP.
>> -\fIctxp\fP must not point to an AIO context that already exists, and must
>> +The \fIctxp\fP must not point to an AIO context that already exists, and must
>>  be initialized to 0 prior to the call.
>> +
>> +Note that io_context_t is opaque type and thuss \fIctxp\fP should be zeroed

One extra 's' in thus.

other than that, looks good to me.

-Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                     ` <20111013082918.GA17800-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
  2011-10-17 19:53                       ` Jeff Moyer
@ 2012-05-05 12:26                       ` Michael Kerrisk (man-pages)
       [not found]                         ` <CAKgNAkj68CwJFkqYNvz5X5Jt+6xTwVb1eR+vSkXmFYorQvHJ5A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  1 sibling, 1 reply; 24+ messages in thread
From: Michael Kerrisk (man-pages) @ 2012-05-05 12:26 UTC (permalink / raw)
  To: Cyril Hrubis; +Cc: linux-man-u79uwXL29TY76Z2rM5mHXA, Jeff Moyer

On Thu, Oct 13, 2011 at 9:29 PM, Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org> wrote:
> Hi!
>> > > So should we settle for memset()? I could update send updated patch
>> > > then.
>> >
>> > Yeah, memset is what I typically have done.
>> >
>>
>> Here comes updated patch.
>
> I've checked the latest man pages git and these changes aren't there
> yet. Any comments?

So, I'm struggling. What is the relationship between the io_*()
functions in libaio and the io_*() syscalls?

The page was attempting to document the system calls, which use
aio_context_t structures,

Cheers,

Michael



>> From 61ea8972c02120ed534554b134c45086243d911e Mon Sep 17 00:00:00 2001
>> From: Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org>
>> Date: Wed, 16 Mar 2011 16:14:19 +0100
>> Subject: [PATCH] Fix io_* manuals.
>>
>> The manuals says that we should use aio_context_t as type for ctpx
>> handle. That is wrong as the functions are defined with io_context_t in
>> libaio.h.
>>
>> Also as the io_context_t is opaque type, it should be initalized with:
>>
>> memset(&ctpx, 0, sizeof(ctpx));
>>
>> Signed-off-by: Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org>
>> ---
>>  man2/io_cancel.2    |    2 +-
>>  man2/io_destroy.2   |    2 +-
>>  man2/io_getevents.2 |    2 +-
>>  man2/io_setup.2     |    8 ++++++--
>>  man2/io_submit.2    |    2 +-
>>  5 files changed, 10 insertions(+), 6 deletions(-)
>>
>> diff --git a/man2/io_cancel.2 b/man2/io_cancel.2
>> index a3fc213..1e21869 100644
>> --- a/man2/io_cancel.2
>> +++ b/man2/io_cancel.2
>> @@ -32,7 +32,7 @@ io_cancel \- cancel an outstanding asynchronous I/O operation
>>  .\"#include <linux/aio.h>
>>  .sp
>>  .\" .HP 16
>> -.BI "int io_cancel(aio_context_t " ctx_id ", struct iocb *" iocb ,
>> +.BI "int io_cancel(io_context_t " ctx_id ", struct iocb *" iocb ,
>>  .BI "              struct io_event *" result );
>>  .\" .ad
>>  .\" .hy
>> diff --git a/man2/io_destroy.2 b/man2/io_destroy.2
>> index 6a165e1..47d031a 100644
>> --- a/man2/io_destroy.2
>> +++ b/man2/io_destroy.2
>> @@ -31,7 +31,7 @@ io_destroy \- destroy an asynchronous I/O context
>>  .\" #include <linux/aio.h>
>>  .sp
>>  .\" .HP 17
>> -.BI "int io_destroy(aio_context_t " ctx );
>> +.BI "int io_destroy(io_context_t " ctx );
>>  .\" .ad
>>  .\" .hy
>>  .sp
>> diff --git a/man2/io_getevents.2 b/man2/io_getevents.2
>> index e990f6d..a337404 100644
>> --- a/man2/io_getevents.2
>> +++ b/man2/io_getevents.2
>> @@ -32,7 +32,7 @@ io_getevents \- read asynchronous I/O events from the completion queue
>>  .\" #include <linux/aio.h>
>>  .sp
>>  .\" .HP 19
>> -.BI "int io_getevents(aio_context_t " ctx_id ", long " min_nr ", long " nr ,
>> +.BI "int io_getevents(io_context_t " ctx_id ", long " min_nr ", long " nr ,
>>  .BI "                 struct io_event *" events \
>>  ", struct timespec *" timeout );
>>  .\" .ad
>> diff --git a/man2/io_setup.2 b/man2/io_setup.2
>> index d9b5117..851b0c4 100644
>> --- a/man2/io_setup.2
>> +++ b/man2/io_setup.2
>> @@ -31,7 +31,7 @@ io_setup \- create an asynchronous I/O context
>>  .\" #include <linux/aio.h>
>>  .sp
>>  .\" .HP 15
>> -.BI "int io_setup(unsigned " nr_events ", aio_context_t *" ctxp );
>> +.BI "int io_setup(unsigned " nr_events ", io_context_t *" ctxp );
>>  .\" .ad
>>  .\" .hy
>>  .sp
>> @@ -42,8 +42,12 @@ Link with \fI\-laio\fP.
>>  .BR io_setup ()
>>  creates an asynchronous I/O context capable of receiving
>>  at least \fInr_events\fP.
>> -\fIctxp\fP must not point to an AIO context that already exists, and must
>> +The \fIctxp\fP must not point to an AIO context that already exists, and must
>>  be initialized to 0 prior to the call.
>> +
>> +Note that io_context_t is opaque type and thuss \fIctxp\fP should be zeroed
>> +with memset(&ctpx, 0, sizeof(ctpx)).
>> +
>>  On successful creation of the AIO context, \fI*ctxp\fP is filled in
>>  with the resulting handle.
>>  .SH "RETURN VALUE"
>> diff --git a/man2/io_submit.2 b/man2/io_submit.2
>> index 1eae429..3b6bbf2 100644
>> --- a/man2/io_submit.2
>> +++ b/man2/io_submit.2
>> @@ -31,7 +31,7 @@ io_submit \- submit asynchronous I/O blocks for processing
>>  .\" #include <linux/aio.h>
>>  .sp
>>  .\" .HP 16
>> -.BI "int io_submit(aio_context_t " ctx_id ", long " nr \
>> +.BI "int io_submit(io_context_t " ctx_id ", long " nr \
>>  ", struct iocb **" iocbpp );
>>  .\" .ad
>>  .\" .hy
>> --
>> 1.6.4.2
>>
>
>
> --
> Cyril Hrubis
> chrubis-AlSwsSmVLrQ@public.gmane.org



-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface"; http://man7.org/tlpi/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                         ` <CAKgNAkj68CwJFkqYNvz5X5Jt+6xTwVb1eR+vSkXmFYorQvHJ5A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2012-05-07 13:44                           ` Jeff Moyer
       [not found]                             ` <x4962c8t8b8.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: Jeff Moyer @ 2012-05-07 13:44 UTC (permalink / raw)
  To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w
  Cc: Cyril Hrubis, linux-man-u79uwXL29TY76Z2rM5mHXA

"Michael Kerrisk (man-pages)" <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:

> On Thu, Oct 13, 2011 at 9:29 PM, Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org> wrote:
>> Hi!
>>> > > So should we settle for memset()? I could update send updated patch
>>> > > then.
>>> >
>>> > Yeah, memset is what I typically have done.
>>> >
>>>
>>> Here comes updated patch.
>>
>> I've checked the latest man pages git and these changes aren't there
>> yet. Any comments?
>
> So, I'm struggling. What is the relationship between the io_*()
> functions in libaio and the io_*() syscalls?

The io_* library calls are wrappers around the system calls.  In some
cases, the wrappers simply pass the arguments on to the system call.  In
other cases, there is some work performed by the library.

> The page was attempting to document the system calls, which use
> aio_context_t structures,

Well, aio_context_t is not a structure, it's just an unsigned long.

I guess that we'll ultimately need the io_* syscalls documented in
chapter 2, and the library function documented in chapter 3, right?

Cheers,
Jeff


>>> From 61ea8972c02120ed534554b134c45086243d911e Mon Sep 17 00:00:00 2001
>>> From: Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org>
>>> Date: Wed, 16 Mar 2011 16:14:19 +0100
>>> Subject: [PATCH] Fix io_* manuals.
>>>
>>> The manuals says that we should use aio_context_t as type for ctpx
>>> handle. That is wrong as the functions are defined with io_context_t in
>>> libaio.h.
>>>
>>> Also as the io_context_t is opaque type, it should be initalized with:
>>>
>>> memset(&ctpx, 0, sizeof(ctpx));
>>>
>>> Signed-off-by: Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org>
>>> ---
>>>  man2/io_cancel.2    |    2 +-
>>>  man2/io_destroy.2   |    2 +-
>>>  man2/io_getevents.2 |    2 +-
>>>  man2/io_setup.2     |    8 ++++++--
>>>  man2/io_submit.2    |    2 +-
>>>  5 files changed, 10 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/man2/io_cancel.2 b/man2/io_cancel.2
>>> index a3fc213..1e21869 100644
>>> --- a/man2/io_cancel.2
>>> +++ b/man2/io_cancel.2
>>> @@ -32,7 +32,7 @@ io_cancel \- cancel an outstanding asynchronous I/O operation
>>>  .\"#include <linux/aio.h>
>>>  .sp
>>>  .\" .HP 16
>>> -.BI "int io_cancel(aio_context_t " ctx_id ", struct iocb *" iocb ,
>>> +.BI "int io_cancel(io_context_t " ctx_id ", struct iocb *" iocb ,
>>>  .BI "              struct io_event *" result );
>>>  .\" .ad
>>>  .\" .hy
>>> diff --git a/man2/io_destroy.2 b/man2/io_destroy.2
>>> index 6a165e1..47d031a 100644
>>> --- a/man2/io_destroy.2
>>> +++ b/man2/io_destroy.2
>>> @@ -31,7 +31,7 @@ io_destroy \- destroy an asynchronous I/O context
>>>  .\" #include <linux/aio.h>
>>>  .sp
>>>  .\" .HP 17
>>> -.BI "int io_destroy(aio_context_t " ctx );
>>> +.BI "int io_destroy(io_context_t " ctx );
>>>  .\" .ad
>>>  .\" .hy
>>>  .sp
>>> diff --git a/man2/io_getevents.2 b/man2/io_getevents.2
>>> index e990f6d..a337404 100644
>>> --- a/man2/io_getevents.2
>>> +++ b/man2/io_getevents.2
>>> @@ -32,7 +32,7 @@ io_getevents \- read asynchronous I/O events from the completion queue
>>>  .\" #include <linux/aio.h>
>>>  .sp
>>>  .\" .HP 19
>>> -.BI "int io_getevents(aio_context_t " ctx_id ", long " min_nr ", long " nr ,
>>> +.BI "int io_getevents(io_context_t " ctx_id ", long " min_nr ", long " nr ,
>>>  .BI "                 struct io_event *" events \
>>>  ", struct timespec *" timeout );
>>>  .\" .ad
>>> diff --git a/man2/io_setup.2 b/man2/io_setup.2
>>> index d9b5117..851b0c4 100644
>>> --- a/man2/io_setup.2
>>> +++ b/man2/io_setup.2
>>> @@ -31,7 +31,7 @@ io_setup \- create an asynchronous I/O context
>>>  .\" #include <linux/aio.h>
>>>  .sp
>>>  .\" .HP 15
>>> -.BI "int io_setup(unsigned " nr_events ", aio_context_t *" ctxp );
>>> +.BI "int io_setup(unsigned " nr_events ", io_context_t *" ctxp );
>>>  .\" .ad
>>>  .\" .hy
>>>  .sp
>>> @@ -42,8 +42,12 @@ Link with \fI\-laio\fP.
>>>  .BR io_setup ()
>>>  creates an asynchronous I/O context capable of receiving
>>>  at least \fInr_events\fP.
>>> -\fIctxp\fP must not point to an AIO context that already exists, and must
>>> +The \fIctxp\fP must not point to an AIO context that already exists, and must
>>>  be initialized to 0 prior to the call.
>>> +
>>> +Note that io_context_t is opaque type and thuss \fIctxp\fP should be zeroed
>>> +with memset(&ctpx, 0, sizeof(ctpx)).
>>> +
>>>  On successful creation of the AIO context, \fI*ctxp\fP is filled in
>>>  with the resulting handle.
>>>  .SH "RETURN VALUE"
>>> diff --git a/man2/io_submit.2 b/man2/io_submit.2
>>> index 1eae429..3b6bbf2 100644
>>> --- a/man2/io_submit.2
>>> +++ b/man2/io_submit.2
>>> @@ -31,7 +31,7 @@ io_submit \- submit asynchronous I/O blocks for processing
>>>  .\" #include <linux/aio.h>
>>>  .sp
>>>  .\" .HP 16
>>> -.BI "int io_submit(aio_context_t " ctx_id ", long " nr \
>>> +.BI "int io_submit(io_context_t " ctx_id ", long " nr \
>>>  ", struct iocb **" iocbpp );
>>>  .\" .ad
>>>  .\" .hy
>>> --
>>> 1.6.4.2
>>>
>>
>>
>> --
>> Cyril Hrubis
>> chrubis-AlSwsSmVLrQ@public.gmane.org
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                             ` <x4962c8t8b8.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
@ 2012-05-07 20:40                               ` Michael Kerrisk (man-pages)
       [not found]                                 ` <CAKgNAkh9jnybota9W_-iD6Uc6c2pJuMiTus2GLk53ysvCVhhRQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2012-05-07 21:14                               ` Michael Kerrisk (man-pages)
  1 sibling, 1 reply; 24+ messages in thread
From: Michael Kerrisk (man-pages) @ 2012-05-07 20:40 UTC (permalink / raw)
  To: Jeff Moyer; +Cc: Cyril Hrubis, linux-man-u79uwXL29TY76Z2rM5mHXA

On Tue, May 8, 2012 at 1:44 AM, Jeff Moyer <jmoyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> "Michael Kerrisk (man-pages)" <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
>
>> On Thu, Oct 13, 2011 at 9:29 PM, Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org> wrote:
>>> Hi!
>>>> > > So should we settle for memset()? I could update send updated patch
>>>> > > then.
>>>> >
>>>> > Yeah, memset is what I typically have done.
>>>> >
>>>>
>>>> Here comes updated patch.
>>>
>>> I've checked the latest man pages git and these changes aren't there
>>> yet. Any comments?
>>
>> So, I'm struggling. What is the relationship between the io_*()
>> functions in libaio and the io_*() syscalls?
>
> The io_* library calls are wrappers around the system calls.  In some
> cases, the wrappers simply pass the arguments on to the system call.  In
> other cases, there is some work performed by the library.
>
>> The page was attempting to document the system calls, which use
>> aio_context_t structures,
>
> Well, aio_context_t is not a structure, it's just an unsigned long.
>
> I guess that we'll ultimately need the io_* syscalls documented in
> chapter 2, and the library function documented in chapter 3, right?

Jeff,

Quick question: where is the canonical home of libaio? It's not easy
to find. I'd like to ensure I'l looking at the latest sources, ideally
by pulling from a VCS.

Cheers,

Michael
-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface"; http://man7.org/tlpi/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                 ` <CAKgNAkh9jnybota9W_-iD6Uc6c2pJuMiTus2GLk53ysvCVhhRQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2012-05-07 20:52                                   ` Jeff Moyer
  0 siblings, 0 replies; 24+ messages in thread
From: Jeff Moyer @ 2012-05-07 20:52 UTC (permalink / raw)
  To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w
  Cc: Cyril Hrubis, linux-man-u79uwXL29TY76Z2rM5mHXA

"Michael Kerrisk (man-pages)" <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:

> On Tue, May 8, 2012 at 1:44 AM, Jeff Moyer <jmoyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
>> "Michael Kerrisk (man-pages)" <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
>>
>>> On Thu, Oct 13, 2011 at 9:29 PM, Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org> wrote:
>>>> Hi!
>>>>> > > So should we settle for memset()? I could update send updated patch
>>>>> > > then.
>>>>> >
>>>>> > Yeah, memset is what I typically have done.
>>>>> >
>>>>>
>>>>> Here comes updated patch.
>>>>
>>>> I've checked the latest man pages git and these changes aren't there
>>>> yet. Any comments?
>>>
>>> So, I'm struggling. What is the relationship between the io_*()
>>> functions in libaio and the io_*() syscalls?
>>
>> The io_* library calls are wrappers around the system calls.  In some
>> cases, the wrappers simply pass the arguments on to the system call.  In
>> other cases, there is some work performed by the library.
>>
>>> The page was attempting to document the system calls, which use
>>> aio_context_t structures,
>>
>> Well, aio_context_t is not a structure, it's just an unsigned long.
>>
>> I guess that we'll ultimately need the io_* syscalls documented in
>> chapter 2, and the library function documented in chapter 3, right?
>
> Jeff,
>
> Quick question: where is the canonical home of libaio? It's not easy
> to find. I'd like to ensure I'l looking at the latest sources, ideally
> by pulling from a VCS.

http://git.fedorahosted.org/git/?p=libaio.git

Cheers,
Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                             ` <x4962c8t8b8.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
  2012-05-07 20:40                               ` Michael Kerrisk (man-pages)
@ 2012-05-07 21:14                               ` Michael Kerrisk (man-pages)
       [not found]                                 ` <CAKgNAkjZS0VyV4y6P-NyrLv8_a8G2K6=yFPijef3d3wfQuPwXw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  1 sibling, 1 reply; 24+ messages in thread
From: Michael Kerrisk (man-pages) @ 2012-05-07 21:14 UTC (permalink / raw)
  To: Jeff Moyer; +Cc: Cyril Hrubis, linux-man-u79uwXL29TY76Z2rM5mHXA

Jeff, Cyril,

On Tue, May 8, 2012 at 1:44 AM, Jeff Moyer <jmoyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> "Michael Kerrisk (man-pages)" <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
>
>> On Thu, Oct 13, 2011 at 9:29 PM, Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org> wrote:
>>> Hi!
>>>> > > So should we settle for memset()? I could update send updated patch
>>>> > > then.
>>>> >
>>>> > Yeah, memset is what I typically have done.
>>>> >
>>>>
>>>> Here comes updated patch.
>>>
>>> I've checked the latest man pages git and these changes aren't there
>>> yet. Any comments?
>>
>> So, I'm struggling. What is the relationship between the io_*()
>> functions in libaio and the io_*() syscalls?
>
> The io_* library calls are wrappers around the system calls.  In some
> cases, the wrappers simply pass the arguments on to the system call.  In
> other cases, there is some work performed by the library.
>
>> The page was attempting to document the system calls, which use
>> aio_context_t structures,
>
> Well, aio_context_t is not a structure, it's just an unsigned long.

(Yep, I realized that afterward ;-).)

> I guess that we'll ultimately need the io_* syscalls documented in
> chapter 2, and the library function documented in chapter 3, right?

So, as I understand it (please correct me where I've got something
wrong), things are like this:

0. We've got the 5 kernel io_* syscalls, which use aio_context_t:
io_cancel(), io_destroy(), io_setup(), io_submit(), and
io_getevents().

1. There's a corresponding set of io_* wrappers in libaio that use
io_context_t. These wrappers are sometimes, but not always, very thin
wrappers for the system calls. Examples of thin wrappers are
io_cancel(), io_destroy(), io_setup(), and io_submit(). On the other
hand, io_getevents() is a non-thin wrapper.

2. libaio also provides a number of io_* functions that use the system
calls, but don't correspond directly to one of the kernel syscalls.
For example, io_poll() (inline in libaio.h) and io_queue_init().

3. libaio is *not* part of glibc.

4. There is a set of related man pages in the man-pages package:

a) io_*.2 pages documenting the 5 system calls. These seem to date
from early 2003, have an FSF/GPL copyright/license, and look to have
been written by Kent Yoder. These pages have seen some maintenance
over the years, but are a bit confused as to whether they are
describing the system calls or the libaio interface.

b) aio_*/lio_* pages documenting the aio interface provided by glibc.
These date from 2003 (by Andries Brouwer) and 2010 (a couple of
missing pieces and pages added by me).

(The existence of the above pages corresponds to normal man-pages
practice: man-pages aims to have a complete set if pages for for the
kernel syscalls and the glibc APIs; it's reasonably complete for the
former, but has still some gaps for the latter.

5. libaio has some man pages also. (By the way, these pages carry NO
copyright notice or license in the source file. What is the license?
One can't really imply the license from the COPYING file in the parent
directory.) These pages date from 2002, and seem to have seen no
maintenance since then. The pages are:

a) aio_*/lio_* pages documenting the aio interface provided by glibc.

b) io_*.3 pages that document interfaces provided by libaio.

c) io_*.1 pages (why ".1"?) that document the io_* system calls. But
these pages are mostly stubs. Only io_submit.1 has something like a
complete description.

Looking at the above (5a), I'm puzzled. Why is libaio providing some
man pages for glibc? It makes no sense for one library package to
provide man pages for functions implemented in a separately maintained
library. Further, it creates confusion if someone installs libaio, an
din the process overwrites man pages provided by man-pages.

Here's what I think should be done:

1) For io_submit, io_cancel, io_getevents, io_destroy, io_setup:

a) There should be .2 pages provided by man-pages that document the
raw system calls. These pages need a bit of cleaning up. These pages
should be updated to focus on the system calls, and note the existence
of libaio and the existence of the wrappers it provides.

b) There should be .3 pages provided by libaio. (The pages should be
provided by libaio, because that's the library that implements them.
If those wrappers were in glibc, then I'd have said that man-pages
should provide them.) Since the wrappers are mostly very thin, I think
it would be sufficient to have very short man pages that:
- note the need to link with "-laio"
- document io_context_t versus aio_context_t
- refer the reader to the corresponding .2 page for details of behavior.

2) For the other io_* functions provided by libaio:

a) libaio should provide man pages. (And this seems already to be the case.)

3) For the aio_* and lio_listio functions:

a) The right place to document these is man-pages, since they are
glibc interfaces, not libaio interfaces. man-pages already has such
pages.

b) The versions of these man pages in libaio should be dropped. The
pages seem to be unmaintained, and they describe interfaces that are
not even part of libaio. Along the way, we should check if there are
pieces in the libaio pages that could usefully be added to the
corresponding man-pages pages.

How does the above sound?

Cheers,

Michael

-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface"; http://man7.org/tlpi/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                 ` <CAKgNAkjZS0VyV4y6P-NyrLv8_a8G2K6=yFPijef3d3wfQuPwXw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2012-05-07 21:21                                   ` Jeff Moyer
  2012-05-09 14:27                                   ` Cyril Hrubis
  2013-04-16  6:34                                   ` Michael Kerrisk (man-pages)
  2 siblings, 0 replies; 24+ messages in thread
From: Jeff Moyer @ 2012-05-07 21:21 UTC (permalink / raw)
  To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w
  Cc: Cyril Hrubis, linux-man-u79uwXL29TY76Z2rM5mHXA

"Michael Kerrisk (man-pages)" <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:

> Here's what I think should be done:
>
> 1) For io_submit, io_cancel, io_getevents, io_destroy, io_setup:
>
> a) There should be .2 pages provided by man-pages that document the
> raw system calls. These pages need a bit of cleaning up. These pages
> should be updated to focus on the system calls, and note the existence
> of libaio and the existence of the wrappers it provides.
>
> b) There should be .3 pages provided by libaio. (The pages should be
> provided by libaio, because that's the library that implements them.
> If those wrappers were in glibc, then I'd have said that man-pages
> should provide them.) Since the wrappers are mostly very thin, I think
> it would be sufficient to have very short man pages that:
> - note the need to link with "-laio"
> - document io_context_t versus aio_context_t
> - refer the reader to the corresponding .2 page for details of behavior.
>
> 2) For the other io_* functions provided by libaio:
>
> a) libaio should provide man pages. (And this seems already to be the case.)
>
> 3) For the aio_* and lio_listio functions:
>
> a) The right place to document these is man-pages, since they are
> glibc interfaces, not libaio interfaces. man-pages already has such
> pages.
>
> b) The versions of these man pages in libaio should be dropped. The
> pages seem to be unmaintained, and they describe interfaces that are
> not even part of libaio. Along the way, we should check if there are
> pieces in the libaio pages that could usefully be added to the
> corresponding man-pages pages.
>
> How does the above sound?

Sounds like a plan.  I'll clean this up in the coming weeks, if nobody
beats me to it.

Cheers,
Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                 ` <CAKgNAkjZS0VyV4y6P-NyrLv8_a8G2K6=yFPijef3d3wfQuPwXw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2012-05-07 21:21                                   ` Jeff Moyer
@ 2012-05-09 14:27                                   ` Cyril Hrubis
       [not found]                                     ` <20120509142713.GA7912-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
  2013-04-16  6:34                                   ` Michael Kerrisk (man-pages)
  2 siblings, 1 reply; 24+ messages in thread
From: Cyril Hrubis @ 2012-05-09 14:27 UTC (permalink / raw)
  To: Michael Kerrisk (man-pages); +Cc: Jeff Moyer, linux-man-u79uwXL29TY76Z2rM5mHXA

Hi!
> Here's what I think should be done:
> 
> 1) For io_submit, io_cancel, io_getevents, io_destroy, io_setup:
> 
> a) There should be .2 pages provided by man-pages that document the
> raw system calls. These pages need a bit of cleaning up. These pages
> should be updated to focus on the system calls, and note the existence
> of libaio and the existence of the wrappers it provides.
> 
> b) There should be .3 pages provided by libaio. (The pages should be
> provided by libaio, because that's the library that implements them.
> If those wrappers were in glibc, then I'd have said that man-pages
> should provide them.) Since the wrappers are mostly very thin, I think
> it would be sufficient to have very short man pages that:
> - note the need to link with "-laio"
> - document io_context_t versus aio_context_t
> - refer the reader to the corresponding .2 page for details of behavior.
> 
> 2) For the other io_* functions provided by libaio:
> 
> a) libaio should provide man pages. (And this seems already to be the case.)
> 
> 3) For the aio_* and lio_listio functions:
> 
> a) The right place to document these is man-pages, since they are
> glibc interfaces, not libaio interfaces. man-pages already has such
> pages.
> 
> b) The versions of these man pages in libaio should be dropped. The
> pages seem to be unmaintained, and they describe interfaces that are
> not even part of libaio. Along the way, we should check if there are
> pieces in the libaio pages that could usefully be added to the
> corresponding man-pages pages.
> 
> How does the above sound?

Agree with these changes. And I could lend a hand with some of the work
if needed.

-- 
Cyril Hrubis
chrubis-AlSwsSmVLrQ@public.gmane.org
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                     ` <20120509142713.GA7912-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
@ 2012-05-09 23:59                                       ` Michael Kerrisk (man-pages)
       [not found]                                         ` <CAKgNAkjki3nY8awPZ7tSd6D=xErF9J7D_S_QaeKpXHVq4YL+_Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Kerrisk (man-pages) @ 2012-05-09 23:59 UTC (permalink / raw)
  To: Cyril Hrubis; +Cc: Jeff Moyer, linux-man-u79uwXL29TY76Z2rM5mHXA

On Thu, May 10, 2012 at 2:27 AM, Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org> wrote:
> Hi!
>> Here's what I think should be done:
>>
>> 1) For io_submit, io_cancel, io_getevents, io_destroy, io_setup:
>>
>> a) There should be .2 pages provided by man-pages that document the
>> raw system calls. These pages need a bit of cleaning up. These pages
>> should be updated to focus on the system calls, and note the existence
>> of libaio and the existence of the wrappers it provides.
>>
>> b) There should be .3 pages provided by libaio. (The pages should be
>> provided by libaio, because that's the library that implements them.
>> If those wrappers were in glibc, then I'd have said that man-pages
>> should provide them.) Since the wrappers are mostly very thin, I think
>> it would be sufficient to have very short man pages that:
>> - note the need to link with "-laio"
>> - document io_context_t versus aio_context_t
>> - refer the reader to the corresponding .2 page for details of behavior.
>>
>> 2) For the other io_* functions provided by libaio:
>>
>> a) libaio should provide man pages. (And this seems already to be the case.)
>>
>> 3) For the aio_* and lio_listio functions:
>>
>> a) The right place to document these is man-pages, since they are
>> glibc interfaces, not libaio interfaces. man-pages already has such
>> pages.
>>
>> b) The versions of these man pages in libaio should be dropped. The
>> pages seem to be unmaintained, and they describe interfaces that are
>> not even part of libaio. Along the way, we should check if there are
>> pieces in the libaio pages that could usefully be added to the
>> corresponding man-pages pages.
>>
>> How does the above sound?
>
> Agree with these changes. And I could lend a hand with some of the work
> if needed.

Cyril, perhaps you could tackle some of the tasks in the libaio pages?
I've done most of what I can do on the man-pages side, and the results
are pushed out to git.

Thanks,

Michael

-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface"; http://man7.org/tlpi/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                         ` <CAKgNAkjki3nY8awPZ7tSd6D=xErF9J7D_S_QaeKpXHVq4YL+_Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2012-11-11  8:12                                           ` Michael Kerrisk (man-pages)
       [not found]                                             ` <CAKgNAkg5ukEk_jzH3fouT9pe=HJnV+OhjOL1BzRzxviz67pAgA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Kerrisk (man-pages) @ 2012-11-11  8:12 UTC (permalink / raw)
  To: Cyril Hrubis; +Cc: Jeff Moyer, linux-man-u79uwXL29TY76Z2rM5mHXA

On Thu, May 10, 2012 at 1:59 AM, Michael Kerrisk (man-pages)
<mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> On Thu, May 10, 2012 at 2:27 AM, Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org> wrote:
>> Hi!
>>> Here's what I think should be done:
>>>
>>> 1) For io_submit, io_cancel, io_getevents, io_destroy, io_setup:
>>>
>>> a) There should be .2 pages provided by man-pages that document the
>>> raw system calls. These pages need a bit of cleaning up. These pages
>>> should be updated to focus on the system calls, and note the existence
>>> of libaio and the existence of the wrappers it provides.
>>>
>>> b) There should be .3 pages provided by libaio. (The pages should be
>>> provided by libaio, because that's the library that implements them.
>>> If those wrappers were in glibc, then I'd have said that man-pages
>>> should provide them.) Since the wrappers are mostly very thin, I think
>>> it would be sufficient to have very short man pages that:
>>> - note the need to link with "-laio"
>>> - document io_context_t versus aio_context_t
>>> - refer the reader to the corresponding .2 page for details of behavior.
>>>
>>> 2) For the other io_* functions provided by libaio:
>>>
>>> a) libaio should provide man pages. (And this seems already to be the case.)
>>>
>>> 3) For the aio_* and lio_listio functions:
>>>
>>> a) The right place to document these is man-pages, since they are
>>> glibc interfaces, not libaio interfaces. man-pages already has such
>>> pages.
>>>
>>> b) The versions of these man pages in libaio should be dropped. The
>>> pages seem to be unmaintained, and they describe interfaces that are
>>> not even part of libaio. Along the way, we should check if there are
>>> pieces in the libaio pages that could usefully be added to the
>>> corresponding man-pages pages.
>>>
>>> How does the above sound?
>>
>> Agree with these changes. And I could lend a hand with some of the work
>> if needed.
>
> Cyril, perhaps you could tackle some of the tasks in the libaio pages?
> I've done most of what I can do on the man-pages side, and the results
> are pushed out to git.
>
> Thanks,
>
> Michael

As noted earlier in the thread, I've done everything that I think is
required on the *.2 pages. What is the status of the libaio pages now?

Thanks,

Michael


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface"; http://man7.org/tlpi/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                             ` <CAKgNAkg5ukEk_jzH3fouT9pe=HJnV+OhjOL1BzRzxviz67pAgA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2012-11-12 10:04                                               ` chrubis-AlSwsSmVLrQ
       [not found]                                                 ` <20121112100446.GA6764-J5syqNJeCN7twjQa/ONI9g@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: chrubis-AlSwsSmVLrQ @ 2012-11-12 10:04 UTC (permalink / raw)
  To: Michael Kerrisk (man-pages); +Cc: Jeff Moyer, linux-man-u79uwXL29TY76Z2rM5mHXA

Hi!
> As noted earlier in the thread, I've done everything that I think is
> required on the *.2 pages. What is the status of the libaio pages now?

This basically ended up burried in my mailbox (as I've had higher
priority work at the time).

Jeff what is the status, do you need some help?

-- 
Cyril Hrubis
chrubis-AlSwsSmVLrQ@public.gmane.org
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                                 ` <20121112100446.GA6764-J5syqNJeCN7twjQa/ONI9g@public.gmane.org>
@ 2012-11-12 14:26                                                   ` Jeff Moyer
       [not found]                                                     ` <x49vcdakid2.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: Jeff Moyer @ 2012-11-12 14:26 UTC (permalink / raw)
  To: chrubis-AlSwsSmVLrQ
  Cc: Michael Kerrisk (man-pages), linux-man-u79uwXL29TY76Z2rM5mHXA

chrubis-AlSwsSmVLrQ@public.gmane.org writes:

> Hi!
>> As noted earlier in the thread, I've done everything that I think is
>> required on the *.2 pages. What is the status of the libaio pages now?
>
> This basically ended up burried in my mailbox (as I've had higher
> priority work at the time).
>
> Jeff what is the status, do you need some help?

Yeah, if you want to tackle this, that would be great!

Thanks, Cyril!

-Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                                     ` <x49vcdakid2.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
@ 2012-11-12 16:09                                                       ` chrubis-AlSwsSmVLrQ
       [not found]                                                         ` <20121112160937.GA23439-J5syqNJeCN7twjQa/ONI9g@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: chrubis-AlSwsSmVLrQ @ 2012-11-12 16:09 UTC (permalink / raw)
  To: Jeff Moyer; +Cc: Michael Kerrisk (man-pages), linux-man-u79uwXL29TY76Z2rM5mHXA

Hi!
> >> As noted earlier in the thread, I've done everything that I think is
> >> required on the *.2 pages. What is the status of the libaio pages now?
> >
> > This basically ended up burried in my mailbox (as I've had higher
> > priority work at the time).
> >
> > Jeff what is the status, do you need some help?
> 
> Yeah, if you want to tackle this, that would be great!

Added to my TODO with sligtly lower priority.

-- 
Cyril Hrubis
chrubis-AlSwsSmVLrQ@public.gmane.org
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                                         ` <20121112160937.GA23439-J5syqNJeCN7twjQa/ONI9g@public.gmane.org>
@ 2013-02-25  8:07                                                           ` Michael Kerrisk (man-pages)
       [not found]                                                             ` <CAKgNAkiG3psL_7A74UV2sLKkCYfMZjts+wCFWdkKbaAO_W2Wuw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Kerrisk (man-pages) @ 2013-02-25  8:07 UTC (permalink / raw)
  To: chrubis-AlSwsSmVLrQ; +Cc: Jeff Moyer, linux-man-u79uwXL29TY76Z2rM5mHXA

On Mon, Nov 12, 2012 at 5:09 PM,  <chrubis-AlSwsSmVLrQ@public.gmane.org> wrote:
> Hi!
>> >> As noted earlier in the thread, I've done everything that I think is
>> >> required on the *.2 pages. What is the status of the libaio pages now?
>> >
>> > This basically ended up burried in my mailbox (as I've had higher
>> > priority work at the time).
>> >
>> > Jeff what is the status, do you need some help?
>>
>> Yeah, if you want to tackle this, that would be great!
>
> Added to my TODO with sligtly lower priority.

Any progress here?

Cheers,,

Michael

-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface"; http://man7.org/tlpi/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                                             ` <CAKgNAkiG3psL_7A74UV2sLKkCYfMZjts+wCFWdkKbaAO_W2Wuw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2013-02-27 11:48                                                               ` chrubis-AlSwsSmVLrQ
  2013-02-27 13:02                                                                 ` Jeff Moyer
  0 siblings, 1 reply; 24+ messages in thread
From: chrubis-AlSwsSmVLrQ @ 2013-02-27 11:48 UTC (permalink / raw)
  To: Michael Kerrisk (man-pages); +Cc: Jeff Moyer, linux-man-u79uwXL29TY76Z2rM5mHXA

Hi!
> > Added to my TODO with sligtly lower priority.
> 
> Any progress here?
> 

Not yet, thanks for reminding. I'll try to get to this soon.

-- 
Cyril Hrubis
chrubis-AlSwsSmVLrQ@public.gmane.org
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
  2013-02-27 11:48                                                               ` chrubis-AlSwsSmVLrQ
@ 2013-02-27 13:02                                                                 ` Jeff Moyer
  0 siblings, 0 replies; 24+ messages in thread
From: Jeff Moyer @ 2013-02-27 13:02 UTC (permalink / raw)
  To: chrubis-AlSwsSmVLrQ
  Cc: Michael Kerrisk (man-pages), linux-man-u79uwXL29TY76Z2rM5mHXA

chrubis-AlSwsSmVLrQ@public.gmane.org writes:

> Hi!
>> > Added to my TODO with sligtly lower priority.
>> 
>> Any progress here?
>> 
>
> Not yet, thanks for reminding. I'll try to get to this soon.

I've got other work I'm doing in libaio now, so I'll dig up the old
thread on this and try to remember what needs doing.  ;-)  I think I
should be able to get to this no later than next week.

Michael, you are a patient man!  Thanks for the continued prodding.

Cheers,
Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                 ` <CAKgNAkjZS0VyV4y6P-NyrLv8_a8G2K6=yFPijef3d3wfQuPwXw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2012-05-07 21:21                                   ` Jeff Moyer
  2012-05-09 14:27                                   ` Cyril Hrubis
@ 2013-04-16  6:34                                   ` Michael Kerrisk (man-pages)
       [not found]                                     ` <CAKgNAkg0TjfQpyrJtZc63vTH_NPqe2LTMFYrP1ABLCXtx_f4Wg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2 siblings, 1 reply; 24+ messages in thread
From: Michael Kerrisk (man-pages) @ 2013-04-16  6:34 UTC (permalink / raw)
  To: Jeff Moyer; +Cc: Cyril Hrubis, linux-man

On Mon, May 7, 2012 at 11:14 PM, Michael Kerrisk (man-pages)
<mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> Jeff, Cyril,
>
> On Tue, May 8, 2012 at 1:44 AM, Jeff Moyer <jmoyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
>> "Michael Kerrisk (man-pages)" <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
>>
>>> On Thu, Oct 13, 2011 at 9:29 PM, Cyril Hrubis <chrubis-AlSwsSmVLrQ@public.gmane.org> wrote:
>>>> Hi!
>>>>> > > So should we settle for memset()? I could update send updated patch
>>>>> > > then.
>>>>> >
>>>>> > Yeah, memset is what I typically have done.
>>>>> >
>>>>>
>>>>> Here comes updated patch.
>>>>
>>>> I've checked the latest man pages git and these changes aren't there
>>>> yet. Any comments?
>>>
>>> So, I'm struggling. What is the relationship between the io_*()
>>> functions in libaio and the io_*() syscalls?
>>
>> The io_* library calls are wrappers around the system calls.  In some
>> cases, the wrappers simply pass the arguments on to the system call.  In
>> other cases, there is some work performed by the library.
>>
>>> The page was attempting to document the system calls, which use
>>> aio_context_t structures,
>>
>> Well, aio_context_t is not a structure, it's just an unsigned long.
>
> (Yep, I realized that afterward ;-).)
>
>> I guess that we'll ultimately need the io_* syscalls documented in
>> chapter 2, and the library function documented in chapter 3, right?
>
> So, as I understand it (please correct me where I've got something
> wrong), things are like this:
>
> 0. We've got the 5 kernel io_* syscalls, which use aio_context_t:
> io_cancel(), io_destroy(), io_setup(), io_submit(), and
> io_getevents().
>
> 1. There's a corresponding set of io_* wrappers in libaio that use
> io_context_t. These wrappers are sometimes, but not always, very thin
> wrappers for the system calls. Examples of thin wrappers are
> io_cancel(), io_destroy(), io_setup(), and io_submit(). On the other
> hand, io_getevents() is a non-thin wrapper.
>
> 2. libaio also provides a number of io_* functions that use the system
> calls, but don't correspond directly to one of the kernel syscalls.
> For example, io_poll() (inline in libaio.h) and io_queue_init().
>
> 3. libaio is *not* part of glibc.
>
> 4. There is a set of related man pages in the man-pages package:
>
> a) io_*.2 pages documenting the 5 system calls. These seem to date
> from early 2003, have an FSF/GPL copyright/license, and look to have
> been written by Kent Yoder. These pages have seen some maintenance
> over the years, but are a bit confused as to whether they are
> describing the system calls or the libaio interface.
>
> b) aio_*/lio_* pages documenting the aio interface provided by glibc.
> These date from 2003 (by Andries Brouwer) and 2010 (a couple of
> missing pieces and pages added by me).
>
> (The existence of the above pages corresponds to normal man-pages
> practice: man-pages aims to have a complete set if pages for for the
> kernel syscalls and the glibc APIs; it's reasonably complete for the
> former, but has still some gaps for the latter.
>
> 5. libaio has some man pages also. (By the way, these pages carry NO
> copyright notice or license in the source file. What is the license?
> One can't really imply the license from the COPYING file in the parent
> directory.) These pages date from 2002, and seem to have seen no
> maintenance since then. The pages are:
>
> a) aio_*/lio_* pages documenting the aio interface provided by glibc.
>
> b) io_*.3 pages that document interfaces provided by libaio.
>
> c) io_*.1 pages (why ".1"?) that document the io_* system calls. But
> these pages are mostly stubs. Only io_submit.1 has something like a
> complete description.
>
> Looking at the above (5a), I'm puzzled. Why is libaio providing some
> man pages for glibc? It makes no sense for one library package to
> provide man pages for functions implemented in a separately maintained
> library. Further, it creates confusion if someone installs libaio, an
> din the process overwrites man pages provided by man-pages.
>
> Here's what I think should be done:
>
> 1) For io_submit, io_cancel, io_getevents, io_destroy, io_setup:
>
> a) There should be .2 pages provided by man-pages that document the
> raw system calls. These pages need a bit of cleaning up. These pages
> should be updated to focus on the system calls, and note the existence
> of libaio and the existence of the wrappers it provides.
>
> b) There should be .3 pages provided by libaio. (The pages should be
> provided by libaio, because that's the library that implements them.
> If those wrappers were in glibc, then I'd have said that man-pages
> should provide them.) Since the wrappers are mostly very thin, I think
> it would be sufficient to have very short man pages that:
> - note the need to link with "-laio"
> - document io_context_t versus aio_context_t
> - refer the reader to the corresponding .2 page for details of behavior.
>
> 2) For the other io_* functions provided by libaio:
>
> a) libaio should provide man pages. (And this seems already to be the case.)
>
> 3) For the aio_* and lio_listio functions:
>
> a) The right place to document these is man-pages, since they are
> glibc interfaces, not libaio interfaces. man-pages already has such
> pages.
>
> b) The versions of these man pages in libaio should be dropped. The
> pages seem to be unmaintained, and they describe interfaces that are
> not even part of libaio. Along the way, we should check if there are
> pieces in the libaio pages that could usefully be added to the
> corresponding man-pages pages.
>
> How does the above sound?

So from the side of the man-pages projerct, I think we're done. Jeff,
Cyril, do you see anything that I still need to do on my side?

Thanks,

Michael
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: aio manuals
       [not found]                                     ` <CAKgNAkg0TjfQpyrJtZc63vTH_NPqe2LTMFYrP1ABLCXtx_f4Wg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2013-04-16 10:27                                       ` chrubis-AlSwsSmVLrQ
  0 siblings, 0 replies; 24+ messages in thread
From: chrubis-AlSwsSmVLrQ @ 2013-04-16 10:27 UTC (permalink / raw)
  To: Michael Kerrisk (man-pages); +Cc: Jeff Moyer, linux-man

Hi!
> So from the side of the man-pages projerct, I think we're done. Jeff,
> Cyril, do you see anything that I still need to do on my side?

We had a Hackweek here in SUSE (8. - 12.), so I've returned to my usuall
job just Yesterday. I will rework the patches for the aio manpages
hopefully during this week.

-- 
Cyril Hrubis
chrubis-AlSwsSmVLrQ@public.gmane.org
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2013-04-16 10:27 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-09 18:06 aio manuals Cyril Hrubis
     [not found] ` <20110309180600.GA14533-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
2011-03-09 17:53   ` Jeff Moyer
     [not found]     ` <x49ei6gnpsx.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
2011-03-16 10:43       ` Cyril Hrubis
     [not found]         ` <20110316104356.GB32095-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
2011-03-16 14:26           ` Jeff Moyer
     [not found]             ` <x49pqpr9m5l.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
2011-03-16 15:20               ` Cyril Hrubis
     [not found]                 ` <20110316152018.GG2096-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
2011-10-13  8:29                   ` Cyril Hrubis
     [not found]                     ` <20111013082918.GA17800-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
2011-10-17 19:53                       ` Jeff Moyer
2012-05-05 12:26                       ` Michael Kerrisk (man-pages)
     [not found]                         ` <CAKgNAkj68CwJFkqYNvz5X5Jt+6xTwVb1eR+vSkXmFYorQvHJ5A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-07 13:44                           ` Jeff Moyer
     [not found]                             ` <x4962c8t8b8.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
2012-05-07 20:40                               ` Michael Kerrisk (man-pages)
     [not found]                                 ` <CAKgNAkh9jnybota9W_-iD6Uc6c2pJuMiTus2GLk53ysvCVhhRQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-07 20:52                                   ` Jeff Moyer
2012-05-07 21:14                               ` Michael Kerrisk (man-pages)
     [not found]                                 ` <CAKgNAkjZS0VyV4y6P-NyrLv8_a8G2K6=yFPijef3d3wfQuPwXw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-07 21:21                                   ` Jeff Moyer
2012-05-09 14:27                                   ` Cyril Hrubis
     [not found]                                     ` <20120509142713.GA7912-n1fJoQsqRnsVI8jrpt9EEQ@public.gmane.org>
2012-05-09 23:59                                       ` Michael Kerrisk (man-pages)
     [not found]                                         ` <CAKgNAkjki3nY8awPZ7tSd6D=xErF9J7D_S_QaeKpXHVq4YL+_Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-11  8:12                                           ` Michael Kerrisk (man-pages)
     [not found]                                             ` <CAKgNAkg5ukEk_jzH3fouT9pe=HJnV+OhjOL1BzRzxviz67pAgA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-12 10:04                                               ` chrubis-AlSwsSmVLrQ
     [not found]                                                 ` <20121112100446.GA6764-J5syqNJeCN7twjQa/ONI9g@public.gmane.org>
2012-11-12 14:26                                                   ` Jeff Moyer
     [not found]                                                     ` <x49vcdakid2.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
2012-11-12 16:09                                                       ` chrubis-AlSwsSmVLrQ
     [not found]                                                         ` <20121112160937.GA23439-J5syqNJeCN7twjQa/ONI9g@public.gmane.org>
2013-02-25  8:07                                                           ` Michael Kerrisk (man-pages)
     [not found]                                                             ` <CAKgNAkiG3psL_7A74UV2sLKkCYfMZjts+wCFWdkKbaAO_W2Wuw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-02-27 11:48                                                               ` chrubis-AlSwsSmVLrQ
2013-02-27 13:02                                                                 ` Jeff Moyer
2013-04-16  6:34                                   ` Michael Kerrisk (man-pages)
     [not found]                                     ` <CAKgNAkg0TjfQpyrJtZc63vTH_NPqe2LTMFYrP1ABLCXtx_f4Wg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-16 10:27                                       ` chrubis-AlSwsSmVLrQ

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.