option( 'userspace_rcu', type: 'boolean', value: false, description: 'Allow EMPER fibers to use userspace RCU', ) option( 'log_level', type: 'combo', choices: ['automatic', 'OFF', 'Error', 'Warning', 'Info', 'Debug', 'FineDebug', 'FinerDebug', 'FinestDebug', 'ALL'], value: 'automatic', ) option( 'blocked_context_set', type: 'boolean', value: false, description: 'Store all currently blocked contexts for debugging in the set Blockable<LogLevel>::blocked' ) option( 'log_timestamp', type: 'boolean', value: true, description: 'Add a timestamp to the EMPER log messages', ) option( 'worker_sleep', type: 'boolean', value: true, description: 'Enable sleeping worker support', ) option( 'worker_wakeup_strategy', type: 'combo', description: 'The strategy used to wakeup sleeping workers (only effective if worker_sleep is enabled)', choices: ['one', 'all'], value: 'one', ) option( 'locked_ws_queue', type: 'boolean', value: false, description: 'Use a fully locked queue for work-stealing', ) option( 'overflow_queue', type: 'boolean', value: true, description: 'Use a overflow queue in case the primary queue is full' ) option( 'locked_mpsc_queue', type: 'boolean', value: false, description: 'Use the locked variant for the MPSC queue' ) option( 'stats', type: 'boolean', value: false, description: 'Collect stats and print them at the end of the execution' ) option( 'default_scheduling_strategy', type: 'combo', choices: [ 'work_stealing', 'locality_aware_work_stealing', ], value: 'work_stealing', ) option( 'overflow_queue', type: 'boolean', value: true, description: 'Use an overflow queue in case scheduling queues become full', ) option( 'io', type: 'boolean', value: true, description: 'Add support for asynchronous IO using io_uring' ) option( 'io_worker_uring_entries', type: 'integer', value: 16, description: 'Number of entries in each worker io_uring' ) option( 'io_uring_sqpoll', type: 'boolean', value: false, description: 'Enable io_urings SQPOLL feature (start a separate kernel thread which polls the sq reducing the amount of syscalls to submit new requests. This is a privileged operation.).' ) option( 'io_uring_shared_wq', type: 'boolean', value: false, description: 'Share a common async backend between all io_urings' )