Native asynchronous I/O with cloned processes

You can enable or disable native asynchronous I/O with cloned processes by setting the vx_allow_cloned_naio tunable. Specifying a value of 1 enables native asynchronous I/O with cloned processes, while specifying a value of 0 disables native asynchronous I/O with cloned processes. The default value is 0.

Processes that are cloned by using the CLONE_VM flag share an address space with their parent. When such threads issue native asynchronous I/O by using the io_submit() call, the system can panic if those threads return and exit before the I/O completes. You can avoid this issue by setting the vx_allow_cloned_naio tunable to 0, which causes such threads to issue the I/O synchronously.

Well-behaved applications that do not have threads exiting with pending asynchronous I/O do not have this restriction. When using such applications, such as Sybase, you can set the vx_allow_cloned_naio tunable to 1, which avoids the performance impact of such threads having asynchronous I/O become synchronous.