|
|
If you want higher performance for your applications, such as database applications, use the Kernel Implementation. The Kernel Implementation contains the following caveats:
The aio_flags member of the aiocb control block must be set to AIO_RAW if you want to access raw disk slices. The following example shows you how to set this flag:
aiocb.aio_flags = AIO_RAW;
The Asynchronous I/O interface uses aio_memlock to perform memory lock operations. See aio_memlock(3aio). Before starting an Asynchronous I/O request, the application must lock an area of memory to be used for the I/O buffer. The size of the locked area is determined by the number of requests that may be outstanding at any point in time. Only the I/O buffer area must be locked. Once this buffer has been locked with aio_memlock, it can not be resized or unlocked. When the application exits, the memory is unlocked automatically.