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'
)