zephyr/subsys/rtio/Kconfig
Tom Burdick 121462b129 rtio: Low (Memory) Cost Concurrent scheduler
Schedules I/O chains in the same order as they arrive providing a fixed
amount of concurrency. The low memory cost comes at the cost of some
computational cost that is likely to be acceptable with small amounts
of concurrency.

The code cost is about 4x higher than the simple linear executor
which isn't entirely unexpected as the logic requirements are quite a bit
more than doing the next thing in the queue.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2022-06-28 13:53:13 -04:00

47 lines
1.6 KiB
Plaintext

# Copyright (c) 2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
menuconfig RTIO
bool "RTIO"
if RTIO
config RTIO_EXECUTOR_SIMPLE
bool "A simple executor for RTIO"
default y
help
An simple RTIO executor that will execute a queue of requested I/O
operations as if they are a single chain of submission queue entries. This
does not support concurrent chains or submissions.
config RTIO_EXECUTOR_CONCURRENT
bool "A low cost concurrent executor for RTIO"
default y
help
A low memory cost RTIO executor that will execute a queue of requested I/O
with a fixed amount of concurrency using minimal memory overhead.
config RTIO_SUBMIT_SEM
bool "Use a semaphore when waiting for completions in rtio_submit"
help
When calling rtio_submit a semaphore is available to sleep the calling
thread for each completion queue event until the wait count is met. This
adds a small RAM overhead for a single semaphore. By default wait_for will
use polling on the completion queue with a k_yield() in between iterations.
config RTIO_CONSUME_SEM
bool "Use a semaphore when waiting for completions in rtio_cqe_consume_block"
help
When calling rtio_cqe_consume_block a semaphore is available to sleep the
calling thread for each completion queue event until the wait count is met.
This adds a small RAM overhead for a single semaphore. By default the call
will use polling on the completion queue with a k_yield() in between
iterations.
module = RTIO
module-str = RTIO
module-help = Sets log level for RTIO support
source "subsys/logging/Kconfig.template.log_config"
endif