Re: AIO Support and related package information??

From: Sébastien Dugué
Date: Thu Sep 22 2005 - 02:46:23 EST


Hi Vikas,


On Thu, 2005-09-22 at 04:08 +0100, vikas gupta wrote:
> hello ALL ,
>
> I am very curious about the AIO support in kernel. I
> have downloaded the
> recent kernel 2.6.13 and applied suparna's patches on
> that but now i got stuck as
> now there are two different packages are available.

You should try Ben LaHaise's patchset which includes
Suparna's patches. It's available as a single patch at:

http://www.kvack.org/~bcrl/patches/aio-2.6.13-rc6-B1-all.diff

and broken down at:
http://www.kvack.org/~bcrl/patches/aio-2.6.13-rc6-B1/

>
> 1) libaio rpm
>

libaio is meant as a way for using the kernel AIO support but
does not provide a POSIX compliant interface.

> There are many rpm available such as
> libaio-0.3.xxx-02.src rpm and many
> more but at http://lse.sourceforge.net/io/aio.html
> ,Somebody has said to use
> libaio-0.3.99 package ..

I've been using libaio-0.3.92 with success.

>
> So can you please give me some guidelines on after
> applying the patch how
> to proceed further???
>
> Is these packages are part of linux kernel
> installation ????
>
> Is this package implementation is really necessary and
> if yes then what
> are the packages we need to install.
>
> And if any other resource is required then from where
> i can get that
> resource.
>
> 2) libposix API library of
> http://www.bullopensource.org/posix.
>
> How to use it???
> Is it any other way of implementing the AIO
> Support or it is to
> provide posix conformance to the kernel.


Just like libaio, libposix-aio uses the kernel AIO support but
provides a POSIX compliant interface.

There are no man pages yet, but you can look a the SuSV3
specification (links are on http://www.bullopensource.org/posix/).

For completeness, I should add that there is a POSIX AIO
implementation in glibc librt but it uses helper threads to achieve
asynchrony and does not use kernel support.

>
> 3) What is the relation between libposixaio pacakage
> supported by bullsource.net and libaio pacakage
> supported by redhat ....

None, libposix-aio used to rely on libaio for the syscalls but that's
no longer the case.

>
> 4) I am able to built that libposix package without
> libaio ??????

Normal.

>
> 5) are these pacakages are supported for othewr
> platforms such as arm and ppc ,I am not able to build
> libposix for arm platform.Do Cross compiling is
> supported ???
>

Right now support is provided for:

i386 - tested
ia64 - not tested
x86_64 - not tested

If you're willing to add support for other platforms there is
only one file to add for implementing the architecture dependant
syscalls, such as syscall_arm.h or syscall_ppc.h. Look at the sources.

>
>
> 6) How to use these api in test program
>
> Can i use it as mentioned below ????
>
> Test1.c
>
> #include <aio.h>
> #include <errno.h>
> #include <stdio.h>
> #include <string.h>
> #include <unistd.h>
>
> #define BYTES 8
>
> int main( int argc, char *argv[] )
> {
> int i, r;
> int fildes;
> struct aiocb cb;
> char buff[BYTES];
>
> if ((fildes = open( "/etc/resolv.conf", O_RDONLY
> )) < 0) {
> perror( "opening file" ); return 1;
> }
>
> cb.aio_fildes = fildes;
> cb.aio_offset = 0;
> cb.aio_buf = buff;
> cb.aio_nbytes = BYTES;
> cb.aio_reqprio = 0;
> cb.aio_sigevent.sigev_notify = SIGEV_NONE;
>
> errno = 0;
> r = aio_read( &cb );
> printf( "aio_read() ret: %i\terrno: %i\n", r,
> errno );
>
> while (aio_error( &cb ) == EINPROGRESS) {
> usleep( 10 ); }
>
> for (i = 0; i < BYTES; i++) { printf( "%c ",
> buff[i] ); } printf(
> "\n" );
>
> errno = 0;
> r = aio_return( &cb );
> printf( "aio_return() ret: %i\tBYTES: %i\terrno:
> %i\n", r, BYTES,
> errno );
>
> return 0;
> }

That should be OK. Look at the examples in libposix-aio, in
the check and testbed subdirectories.


>
>
>
> Any other information, if u can provide then it will
> be of great use ...
>
>
> Thanks in advance ...
>
> Vikas

Hope this helps,

Sébastien.

--
------------------------------------------------------

Sébastien Dugué BULL/FREC:B1-247
phone: (+33) 476 29 77 70 Bullcom: 229-7770

mailto:sebastien.dugue@xxxxxxxx

Linux POSIX AIO: http://www.bullopensource.org/posix

------------------------------------------------------

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/