37 "config: mm.block_size_magnitude must yield a whole number of OS pages, within 30"
41 "config: fiber.stack_size must be within one page..SIZE_MAX/2"
48 "config: fiber.max_workers must be within fiber.workers..SRN_MAX_WORKERS"
55 "config: reactor.ring_magnitude must be within 1..16"
60 "config: reactor.reap_batch must be within 1..ring capacity"
void srn_config_validate(const srn_configuration_t *config)
A configuration with every field set to its default.
The single place that holds every runtime knob.
#define SRN_MAX_WORKERS
The absolute worker ceiling.
size_t srn_mm_get_os_page_size(void)
Retutrns the OS page size.
#define FALLBACK_PAGE_SIZE
Every runtime knob, in one place.
srn_reactor_config_t reactor
srn_limits_config_t limits
size_t workers
Worker count used when a run does not specify one.
size_t max_workers
Hard ceiling a requested worker count is clamped to.
size_t stack_size
Size of every fiber stack, in bytes.
size_t ns_name_max_len
Longest namespace name accepted, in bytes.
size_t string_max_len
Largest string accepted, in bytes.
size_t block_size_magnitude
Magnitude of one block the arena hands out from.
size_t reap_batch
Most completions a worker drains from its channel in a single pass.
size_t ring_magnitude
Magnitude of each channel's SQ/CQ rings, capacity is 1 << magnitude.
#define PANIC_IF_NULL(ptr)
#define PANIC_IF(cond, msg)