Commit 7da8e687 authored by Florian Fischer's avatar Florian Fischer
Browse files

[meson] set check_anywhere_queue_while_stealing automatic

We introduced the check_anywhere_queue_while_steal configuration
as an optimization to get the IO completions reaped by the completer
faster into the normal WSQ.
But now the emper has configurations where we don't use a completer
thus making this optimization useless or rather harmful.

By default automatically decide the value of
check_anywhere_queue_while_stealing based on the value of
io_completer_behavior.
parent 3b2d6f8e
Pipeline #73429 passed with stages
in 15 minutes and 33 seconds
......@@ -44,7 +44,6 @@ conf_data.set('EMPER_WORKER_WAKEUP_STRATEGY', get_option('worker_wakeup_strategy
conf_data.set('EMPER_LOCKED_WS_QUEUE', get_option('locked_ws_queue'))
conf_data.set('EMPER_LOCKED_MPSC_QUEUE', get_option('locked_mpsc_queue'))
conf_data.set('EMPER_OVERFLOW_QUEUE', get_option('overflow_queue'))
conf_data.set('EMPER_CHECK_ANYWHERE_QUEUE_WHILE_STEALING', get_option('check_anywhere_queue_while_stealing'))
conf_data.set('EMPER_STATS', get_option('stats'))
conf_data.set('EMPER_OVERFLOW_QUEUE', get_option('overflow_queue'))
conf_data.set('EMPER_BLOCKED_CONTEXT_SET', get_option('blocked_context_set'))
......@@ -133,6 +132,17 @@ endif
conf_data.set('EMPER_IO_COMPLETER_BEHAVIOR', io_completer_behavior)
# Decide on scheduling optimization introduced because of the completer
# moving work to the AnywhereQueue.
check_anywhere_queue_while_stealing = get_option('check_anywhere_queue_while_stealing')
if check_anywhere_queue_while_stealing == 'auto'
conf_data.set('EMPER_CHECK_ANYWHERE_QUEUE_WHILE_STEALING',
io_completer_behavior == 'schedule')
else
conf_data.set('EMPER_CHECK_ANYWHERE_QUEUE_WHILE_STEALING',
check_anywhere_queue_while_stealing == 'true')
endif
# check io meson options consistency
if get_option('io_single_uring')
if not (io_completer_behavior == 'schedule')
......
......@@ -113,8 +113,9 @@ option(
)
option(
'check_anywhere_queue_while_stealing',
type: 'boolean',
value: true,
type: 'combo',
choices: ['auto', 'true', 'false'],
value: 'auto',
description: 'Check the anywhere queue after some failed stealed attempts',
)
option(
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment