FreeBSD disk AIO support

Igor Sysoev is at rambler-co.ru
Mon Aug 24 13:13:58 MSD 2009


On Mon, Aug 24, 2009 at 02:23:55AM +0400, Andrei Nigmatulin wrote:

> On Monday 24 August 2009 01:13, Igor Sysoev wrote:
> > On Sun, Aug 23, 2009 at 10:44:58PM +0400, Вадим wrote:
> > > Здравствуйте.
> > >
> > > OpenSUSE 11.0 и выше, например.
> >
> > Поставил openSUSE 11.1.
> >
> > > uname -r
> >
> > 2.6.27.7-9-default
> >
> > > /lib/libc.so.6
> >
> > GNU C Library stable release version 2.9 (20081117), by Roland McGrath et
> > al. ...
> >
> > /usr/include/libaio.h:
> >
> > struct iocb {
> >         PADDEDptr(void *data, __pad1);  /* Return in the io completion
> > event */ PADDED(unsigned key, __pad2);   /* For use in identifying io
> > requests */
> >
> >         short           aio_lio_opcode;
> >         short           aio_reqprio;
> >         int             aio_fildes;
> >
> >         union {
> >                 struct io_iocb_common           c;
> > ...
> >
> > struct io_iocb_common {
> >         PADDEDptr(void  *buf, __pad1);
> >         PADDEDul(nbytes, __pad2);
> >         long long       offset;
> >         long long       __pad3, __pad4;
> > };      /* result code is the amount read or -'ve errno */
> >
> >
> > Полей .aio_flags и .aio_resfd в struct iocb нет. Ну и как это собирать ?
> 
> А если
> 
> -#include <libaio.h>
> +#include <linux/aio_abi.h>
> 
> ?

В <linux/aio_abi.h> есть.

> Вообще кошмар какой-то развели на linux с aio: есть aio.h, libaio.h и 
> linux/aio_abi.h. Что, зачем и почему так много - до конца не понятно...

aio.h - это POSIX AIO, а libaio.h и linux/aio_abi.h - это Линуксовый AIO.
И по идее, два последних должны соответстововать друг другу.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list