]> git.kaiwu.me - nginx.git/commit
Merging r4130, r4131, r4135:
authorIgor Sysoev <igor@sysoev.ru>
Fri, 30 Sep 2011 14:12:53 +0000 (14:12 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Fri, 30 Sep 2011 14:12:53 +0000 (14:12 +0000)
commit287e2cae6dcce09bcfa464e87edd65c602811d16
treeb97f441e239dda59e3f81de0a0f83e1912ff9b52
parent6f23d1a5817fd7e15d643d5ed8ddbbe37cfd6664
Merging r4130, r4131, r4135:

Linux AIO related fixes:

*) Fixing Linux AIO syscalls return value handling:
syscall(2) uses usual libc convention, it returns -1 on error and
sets errno. Obsolete _syscall(2) returns negative value of error.

*) Fixing Linux AIO initiatialization: AIO operations are disabled
if kernel does not support them.  Previously worker just exited.

*) The "worker_aio_requests" directive.

The default value is 32 AIO simultaneous requests per worker. Previously
they were hardcoded to 1024, and it was too large, since Linux allocated
them early on io_setup(), but not on request itself. So with default value
of /proc/sys/fs/aio-max-nr equal to 65536 only 64 worker processes could
be run simultaneously. 32 AIO requests are enough for modern disks even if
server runs only 1 worker.
src/event/modules/ngx_epoll_module.c
src/os/unix/ngx_linux_aio_read.c