Skip to content
Snippets Groups Projects
meson_options.txt 4.82 KiB
Newer Older
  • Learn to ignore specific revisions
  •   description: 'Allow EMPER fibers to use userspace RCU',
    
    option(
      'log_level',
      type: 'combo',
    
      choices: ['automatic', 'Error', 'Warning', 'Info', 'Debug', 'FineDebug', 'FinerDebug', 'FinestDebug', 'ALL'],
    
    option(
      'blocked_context_set',
      type: 'boolean',
      value: false,
      description: 'Store all currently blocked contexts for debugging in the set Blockable<LogLevel>::blocked'
    )
    
      type: 'combo',
      choices: ['utc', 'local', 'none'],
      value: 'local',
      description: 'Add a %H%M.%ns 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', 'throttle', 'all'],
    
      'worker_sleep_strategy',
      type: 'combo',
      description: 'The used algorithm to suspend and wakeup workers',
      choices: ['semaphore', 'pipe'],
      value: 'semaphore',
    
    option(
      'wakeup_semaphore_implementation',
      type: 'combo',
      choices: [
    	'posix',
    	'locked',
    	'futex',
      ],
      value: 'posix',
      description: 'Semaphore implementation to suspend/wakeup workers',
    )
    
    option(
      'locked_ws_queue',
      type: 'boolean',
      value: false,
      description: 'Use a fully locked queue for work-stealing',
    )
    
    option(
      'locked_mpsc_queue',
      type: 'boolean',
      value: false,
      description: 'Use the locked variant for the MPSC queue'
    )
    
    option(
      'locked_unbounded_queue_implementation',
      type: 'combo',
      choices: [
    	'mutex',
    	'rwlock',
    	'shared_mutex',
    	'boost_shared_mutex',
      ],
      value: 'mutex',
      description: 'LockedUnboundedQueue implementation',
    )
    
    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(
      'waitfree_work_stealing',
      type: 'boolean',
      value: false,
      description: 'Do not retry stealing when the popTop race was lost'
    )
    
    option(
      'work_stealing_victim_count',
      type: 'integer',
      value: 0,
      description: 'Absolute count of victims tried in the work-stealing'
    )
    option(
      'work_stealing_victim_denominator',
      type: 'integer',
      value: 0,
      description: 'Fraction of all workers to steal work from'
    )
    
    option(
      'overflow_queue',
      type: 'boolean',
      value: true,
      description: 'Use an overflow queue in case scheduling queues become full',
    )
    
    option(
      'check_anywhere_queue_while_stealing',
    
      type: 'combo',
      choices: ['auto', 'true', 'false'],
      value: 'auto',
    
      description: 'Check the anywhere queue after some failed stealed attempts',
    )
    
    option(
      'io',
      type: 'boolean',
      value: true,
      description: 'Add support for asynchronous IO using io_uring'
    )
    
    option(
      'io_single_uring',
      type: 'boolean',
      value: false,
      description: 'Use only a single io_uring'
    )
    
    option(
      'io_try_syscall',
      type: 'boolean',
      value: false,
      description: 'Try non blocking syscalls before submitting the request to 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'
    )
    
    option(
      'io_completer_behavior',
      type: 'combo',
      description: 'The behaviour of the IO completer thread',
    
      choices: ['schedule', 'maybe_wakeup', 'none'],
    
    option(
      'set_affinity_on_block',
      type: 'boolean',
      value: false,
      description: 'Set the affinity when blocking',
    )
    
    option(
      'io_completer_sched_param',
      type: 'combo',
      description: 'The scheduling parmaters used for the completer thread',
      choices: ['unchanged', 'normal', 'nice_10', 'nice_19', 'idle'],
      value: 'unchanged',
    )
    
    Florian Fischer's avatar
    Florian Fischer committed
    option(
      'io_stealing',
      type: 'boolean',
      description: 'Work-Stealing workers will also try to steal IO from other workers',
      value: false,
    )
    
    option(
      'io_waitfree_stealing',
      type: 'boolean',
      description: 'Work-Stealing workers will also try to steal waitfree IO from other workers',
      value: false,
    )
    
      type: 'boolean',
    
      description: 'Synchronize the concurrent access to CQs with a lockless algorithm',
      value: false,
    )
    option(
      'io_lockless_memory_order',
      type: 'combo',
      choices: ['weak', 'strong'],
      description: 'Memory ordering used for the lockless CQ algorithm',
      value: 'weak',