summaryrefslogtreecommitdiffhomepage
path: root/src/os/unix/ngx_linux_aio_read.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2011-09-30Merging r4130, r4131, r4135:Igor Sysoev1-9/+7
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.
2011-09-30Merging r4077, r4101, r4102:Igor Sysoev1-0/+4
open_file_cache related fixes: *) Bugfix: open_file_cache lost is_directio flag. On file retest open_file_cache lost is_directio if file wasn't changed. This caused unaligned operations under Linux to fail with EINVAL. It wasn't noticeable with AIO though, as errors wasn't properly logged. *) Bugfix: open_file_cache did not update file info on retest. If file inode was not changed, cached file information was not updated on retest. As a result stale information might be cached forever if file attributes was changed and/or file was extended.
2010-10-12update event flags after successful io_submit()Igor Sysoev1-0/+4
2009-11-05export aio presence knowledge to prevent using "aio sendfile",Igor Sysoev1-7/+6
if aio does not present
2009-08-28FreeBSD and Linux AIO supportIgor Sysoev1-0/+131