2014-10-06 05:44:43 +08:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
2015-06-28 22:08:57 +08:00
|
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
2014-10-06 05:44:43 +08:00
|
|
|
#
|
|
|
|
|
|
|
|
config FS_AIO
|
|
|
|
bool "Asynchronous I/O support"
|
|
|
|
default n
|
2022-05-28 02:17:10 +08:00
|
|
|
depends on SCHED_WORKQUEUE
|
2014-10-06 05:44:43 +08:00
|
|
|
---help---
|
|
|
|
Enable support for aynchronous I/O. This selection enables the
|
|
|
|
interfaces declared in include/aio.h.
|
|
|
|
|
|
|
|
if FS_AIO
|
2014-10-06 22:10:02 +08:00
|
|
|
|
|
|
|
config FS_NAIOC
|
|
|
|
int "Pre-allocated AIO containers"
|
|
|
|
default 8
|
|
|
|
---help---
|
|
|
|
The AIO containers hold an AIO control block and appends information
|
|
|
|
needed by the logic running within the RTOS. These structures are
|
|
|
|
pre-allocated, the number pre-allocated controlled by this setting.
|
|
|
|
|
|
|
|
This setting controls the number of asynchronous I/O operations that
|
|
|
|
can be queued at one time. When this count is exhausted, the caller
|
|
|
|
of aio_read(), aio_write(), or aio_fsync() will be forced to wait
|
|
|
|
for an available container. That wait is minimized because each
|
|
|
|
container is released prior to starting the next I/O.
|
|
|
|
|
|
|
|
The AIO logic includes priority inheritance logic to prevent
|
|
|
|
priority inversion problems: The priority of the low-priority work
|
|
|
|
queue will be boosted, if necessary, to level of the waiting thread.
|
|
|
|
|
2014-10-06 05:44:43 +08:00
|
|
|
endif
|