Lines Matching full:aio

20  * This file contains support for the POSIX 1003.1B AIO/LIO facility.
72 #include <sys/aio.h>
95 FEATURE(aio, "Asynchronous I/O");
98 static MALLOC_DEFINE(M_LIO, "lio", "listio aio control block list");
99 static MALLOC_DEFINE(M_AIO, "aio", "structures for asynchronous I/O");
101 static SYSCTL_NODE(_vfs, OID_AUTO, aio, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
122 * The code will adjust the actual number of AIO processes towards this
132 "Maximum number of aio requests to queue, globally");
136 "Number of queued aio requests");
140 "Number of aio requests presently handled by the buf subsystem");
145 "Number of aio requests presently handled by unmapped I/O buffers");
158 "Maximum active aio requests per process");
163 "Maximum queued aio requests per process");
167 "Maximum buf aio requests per process");
170 * Though redundant with vfs.aio.max_aio_queue_per_proc, POSIX requires
172 * vfs.aio.aio_listio_max.
176 0, "Maximum aio requests for a single lio_listio call");
204 * If the routine that services an AIO request blocks while running in an
205 * AIO kernel process it can starve other I/O requests. BIO requests
206 * queued via aio_qbio() complete asynchronously and do not use AIO kernel
230 * AIO process info
235 int aioprocflags; /* (c) AIO proc flags */
237 struct proc *aioproc; /* (*) the AIO proc */
258 * per process aio data structure
264 int kaio_count; /* (a) size of AIO queue */
272 struct task kaio_task; /* (*) task to kick aio processes */
282 #define KAIO_WAKEUP 0x2 /* wakeup process when AIO completes */
285 * Operations used to interact with userland aio control blocks.
341 /* kqueue filters for aio */
381 "aio",
386 DECLARE_MODULE(aio, aio_mod, SI_SUB_VFS, SI_ORDER_ANY);
387 MODULE_VERSION(aio, 1);
407 kaio_zone = uma_zcreate("AIO", sizeof(struct kaioinfo), NULL, NULL, in aio_onceonly()
680 * Select a job to run (called by an AIO daemon).
738 * The AIO processing activity for LIO_READ/LIO_WRITE. This is the code that
1052 * The AIO daemon, most of the actual work is done in aio_process_*,
1077 * Allocate and ready the aio control info. There is one aiop structure in aio_daemon()
1159 * Create a new AIO daemon. This is mostly a kernel-thread fork routine. The
1160 * AIO daemon modifies its environment itself.
1190 * VCHR devices. This method doesn't use an aio helper thread, and
1364 * supported by AIO with the old sigevent structure. in convert_old_sigevent()
1478 * Queue a new AIO request. Choosing either the threaded or direct bio VCHR
1783 "is attempting to use unsafe AIO requests"); in aio_queue_file()
2015 * aio_cancel cancels any non-bio aio operations not currently in progress.
2479 /* syscall - wait for the next completion of an aio request */
2740 * supported by AIO with the old sigevent structure. in convert_old_sigevent32()