aboutsummaryrefslogtreecommitdiff
path: root/share/man/man4/aio.4
Commit message (Collapse)AuthorAgeFilesLines
* Add aio_writev and aio_readvAlan Somers2021-01-031-1/+3
| | | | | | | | | | | | | | POSIX AIO is great, but it lacks vectored I/O functions. This commit fixes that shortcoming by adding aio_writev and aio_readv. They aren't part of the standard, but they're an obvious extension. They work just like their synchronous equivalents pwritev and preadv. It isn't yet possible to use vectored aiocbs with lio_listio, but that could be added in the future. Reviewed by: jhb, kib, bcr Relnotes: yes Differential Revision: https://reviews.freebsd.org/D27743
* Clarify usage of aio(4) with kqueue(2)Alan Somers2017-06-231-2/+18
| | | | | | | | | Reviewed by: jhb MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D11299 Notes: svn path=/head/; revision=320255
* Update after r303154 to note that operations on local files are safe.John Baldwin2016-07-221-1/+3
| | | | Notes: svn path=/head/; revision=303202
* Add more documentation regarding unsafe AIO requests.John Baldwin2016-07-211-7/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | The asynchronous I/O changes made previously result in different behavior out of the box. Previously all AIO requests failed with ENOSYS / SIGSYS unless aio.ko was explicitly loaded. Now, some AIO requests complete and others ("unsafe" requests) fail with EOPNOTSUPP. Reword the introductory paragraph in aio(4) to add a general description of AIO before describing the vfs.aio.enable_unsafe sysctl. Remove the ENOSYS error description from aio_fsync(2), aio_read(2), and aio_write(2) and replace it with a description of EOPNOTSUPP. Remove the ENOSYS error description from aio_mlock(2). Log a message to the system log the first time a process requests an "unsafe" AIO request that fails with EOPNOTSUPP. This is modeled on the log message used for processes using the legacy pty devices. Reviewed by: kib (earlier version) MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D7151 Notes: svn path=/head/; revision=303164
* Add documentation for the sigevent structure.John Baldwin2016-07-151-1/+50
| | | | | | | | | | | | | | | | | - Add a sigevent(3) manpage to give a general overview of the sigevent structure and the available notification mechanisms. - Document that AIO requests contain a nested sigevent structure that can be used to request completion notification. - Expand the sigevent details in other manuals to note details such as the extra values stored in a queued signal's information or in a posted kevent. Reviewed by: kib MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D7122 Notes: svn path=/head/; revision=302899
* Refactor the AIO subsystem to permit file-type-specific handling andJohn Baldwin2016-03-011-12/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | improve cancellation robustness. Introduce a new file operation, fo_aio_queue, which is responsible for queueing and completing an asynchronous I/O request for a given file. The AIO subystem now exports library of routines to manipulate AIO requests as well as the ability to run a handler function in the "default" pool of AIO daemons to service a request. A default implementation for file types which do not include an fo_aio_queue method queues requests to the "default" pool invoking the fo_read or fo_write methods as before. The AIO subsystem permits file types to install a private "cancel" routine when a request is queued to permit safe dequeueing and cleanup of cancelled requests. Sockets now use their own pool of AIO daemons and service per-socket requests in FIFO order. Socket requests will not block indefinitely permitting timely cancellation of all requests. Due to the now-tight coupling of the AIO subsystem with file types, the AIO subsystem is now a standard part of all kernels. The VFS_AIO kernel option and aio.ko module are gone. Many file types may block indefinitely in their fo_read or fo_write callbacks resulting in a hung AIO daemon. This can result in hung user processes (when processes attempt to cancel all outstanding requests during exit) or a hung system. To protect against this, AIO requests are only permitted for known "safe" files by default. AIO requests for all file types can be enabled by setting the new vfs.aio.enable_usafe sysctl to a non-zero value. The AIO tests have been updated to skip operations on unsafe file types if the sysctl is zero. Currently, AIO requests on sockets and raw disks are considered safe and are enabled by default. aio_mlock() is also enabled by default. Reviewed by: cem, jilles Discussed with: kib (earlier version) Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D5289 Notes: svn path=/head/; revision=296277
* Re-encode files from ISO-8859-1 to UTF-8Ulrich Spörlein2011-05-221-1/+1
| | | | Notes: svn path=/head/; revision=222176
* Cross reference lio_listio(2).Tim J. Robbins2003-01-141-0/+1
| | | | Notes: svn path=/head/; revision=109221
* mdoc(7) police: nit.Ruslan Ermilov2002-12-101-1/+0
| | | | | | | Approved by: re Notes: svn path=/head/; revision=107727
* * Modernize aio(4), providing instructions for static and dynamic kernelSheldon Hearn2002-10-241-1/+8
| | | | | | | | | | | | | | | | | linking. * Fix disorder in the SEE ALSO sections of aio_*(2). * Remove unnecessary cross-references from the SEE ALSO sections of aio_*(2); config(8), kldload(8) and kldunload(8) are cross-referenced from aio(4). * Remove the KERNEL OPTIONS sections from aio_*(2), now that these pages cross-reference aio(4), which contains suitable kernel linking reference material. Notes: svn path=/head/; revision=105864
* Add a simple man page for the aio facility.Dag-Erling Smørgrav2002-10-241-0/+61
Notes: svn path=/head/; revision=105860