37 "config: mm.block_size_magnitude must yield a whole number of OS pages, within 30"
42 "config: fiber.stack_size must be within one page..SIZE_MAX/2"
49 "config: fiber.max_workers must be within 1..SRN_MAX_WORKERS"
54 "config: fiber.workers must not exceed fiber.max_workers"
61 "config: reactor.ring_magnitude must be within 1..16"
66 "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)