diff --git a/eval.py b/eval.py
index 863bb0ab0eea8a337a3a4cca93d9bdae2f92b7ae..642a8071242096ef4e3278d3b02c962662d00cdb 100755
--- a/eval.py
+++ b/eval.py
@@ -75,6 +75,7 @@ CLIENT_CHECKOUT = EMPER_DEFAULT_CHECKOUT
 EMPER_FIRST_CHECKOUT = 'muhq/io-first'
 
 EMPER_LINKED_FUTURE_CHECKOUT = 'muhq/linked_future_echoserver'
+EMPER_REAP_COMPLETIONS_PROVIDE_MEMORY_HEAP = 'muhq/reapCompletions_provide_memory_heap'
 
 EMPER_WAKEUP_CONDVAR_CHECKOUT = 'cfba846c7763faf63877329b227c2b23af4fc568'
 
@@ -82,23 +83,35 @@ EMPER_BEFORE_COUNTING_TRY_LOCK_CHECKOUT = '5edc8e5eea4134badfa0bf1ee35bf8b671037
 EMPER_BEFORE_BATCH_CQE_CHECKOUT = 'c8828c263618865866f20870c8488d8de11c776a'
 EMPER_BEFORE_CHANGES_TO_WORKER_SLEEP_ALGO = 'cfba846c7763faf63877329b227c2b23af4fc568'
 
+EMPER_BATCH_DEQUEUE_ANYWHERE = '6d63965bccb9c9612b85bbb46c31a1eacd3c6693'
+
 EMPER_CQ_LOCK_CHECKOUT = 'muhq/cq_lock'
 
+EMPER_BUF_SEL_CHECKOUT = 'muhq/buffer-selection'
+
+EMPER_SQPOLL_CHECKOUT = 'muhq/sqpoll'
+
 EMPER_FLAVORS = {
-    'release': {},
-    'clang': {
-        'build_env': {
-            'CC': 'clang',
-            'CXX': 'clang++'
-        }
+    'vanilla': {},
+    #'buf-sel': {
+    #    'checkout': EMPER_BUF_SEL_CHECKOUT,
+    #},
+    'pipe': {
+        'meson_options': '-Dworker_sleep_strategy=pipe'
+    },
+    'pipe-no-completer': {
+        'meson_options': '-Dworker_sleep_strategy=pipe -Dio_completer_behavior=none'
     },
     'no-stats': {
         'meson_options': '-Dstats=False'
     },
+    'heap-alloc-continuation-buf': {
+        'checkout': EMPER_REAP_COMPLETIONS_PROVIDE_MEMORY_HEAP
+    },
     'before-batch-cqe': {
         'checkout': EMPER_BEFORE_BATCH_CQE_CHECKOUT,
         'meson_options': '-Dlog_level=OFF',
-        'patches': ['fix_free_vs_delete.patch'],
+        'patches': ['fix_free_vs_delete.patch', 'before-batch-cqe.patch'],
     },
     'notify-all': {
         'meson_options': '-Dworker_wakeup_strategy=all'
@@ -106,18 +119,27 @@ EMPER_FLAVORS = {
     'no-sleep': {
         'meson_options': '-Dworker_sleep=false'
     },
-    #'sqpoll': {'meson_options': '-Dio_uring_sqpoll=true'},
+    'sqpoll': {
+        'meson_options': '-Dio_uring_sq_poller=one',
+        'checkout': EMPER_SQPOLL_CHECKOUT,
+        'patches': ['getcpu.patch']
+    },
+    'sqpoll-numa': {
+        'meson_options': '-Dio_uring_sq_poller=numa',
+        'checkout': EMPER_SQPOLL_CHECKOUT,
+        'patches': ['getcpu.patch']
+    },
     'callback': {
         'patches': ['use_callback_echoserver.patch']
     },
     'wakeup-condvar': {
         'checkout': EMPER_WAKEUP_CONDVAR_CHECKOUT,
-        'patches': ['fix_free_vs_delete.patch'],
+        'patches': ['fix_free_vs_delete.patch', 'wakeup-condvar.patch'],
     },
     'wakeup-all-condvar': {
         'checkout': EMPER_WAKEUP_CONDVAR_CHECKOUT,
         'meson_options': '-Dworker_wakeup_strategy=all',
-        'patches': ['fix_free_vs_delete.patch'],
+        'patches': ['fix_free_vs_delete.patch', 'wakeup-condvar.patch'],
     },
     'wakeup-futex': {
         'meson_options': '-Dwakeup_semaphore_implementation=futex'
@@ -145,7 +167,7 @@ EMPER_FLAVORS = {
     'big-reap-cqe-section': {
         'checkout': EMPER_BEFORE_COUNTING_TRY_LOCK_CHECKOUT,
         'meson_options': '-Dlog_level=OFF',
-        'patches': ['fix_free_vs_delete.patch'],
+        'patches': ['fix_free_vs_delete.patch', 'before-batch-cqe.patch'],
     },
     'completer-wakeup': {
         'meson_options': '-Dio_completer_behavior=maybe_wakeup'
@@ -159,9 +181,21 @@ EMPER_FLAVORS = {
         '-Dworker_sleep=false -Dio_completer_behavior=maybe_wakeup',
         'server_cmd_suffix': '100'
     },
+    'no-sleep-computation-1ms': {
+        'meson_options':
+        '-Dworker_sleep=false', 'server_cmd_suffix': ' 1000'
+    },
+    'no-sleep-no-completer-computation-1ms': {
+        'meson_options':
+        '-Dworker_sleep=false -Dio_completer_behavior=maybe_wakeup',
+        'server_cmd_suffix': ' 1000'
+    },
     'computation-100us': {
         'server_cmd_suffix': '100'
     },
+    'computation-200us': {
+        'server_cmd_suffix': ' 200'
+    },
     'completer-wakeup-computation-100us': {
         'meson_options': '-Dio_completer_behavior=maybe_wakeup',
         'server_cmd_suffix': '100'
@@ -179,7 +213,7 @@ EMPER_FLAVORS = {
     },
     'first': {
         'checkout': EMPER_FIRST_CHECKOUT,
-        'patches': ['fix_free_vs_delete.patch'],
+        'patches': ['fix_free_vs_delete.patch', 'wakeup-condvar.patch'],
     },
     '4': {
         'server_cmd_prefix': f'env {emper_create_env_worker_count(4)}'
@@ -187,6 +221,10 @@ EMPER_FLAVORS = {
     '20': {
         'server_cmd_prefix': EMPER_20_WORKER_ENV_CMD
     },
+    '20-nopin': {
+        'server_cmd_prefix':
+        EMPER_20_WORKER_ENV_CMD + ' EMPER_PIN_WORKERS=false',
+    },
     '20-computation-100us': {
         'server_cmd_prefix': EMPER_20_WORKER_ENV_CMD,
         'server_cmd_suffix': '100'
@@ -200,25 +238,91 @@ EMPER_FLAVORS = {
         'server_cmd_prefix': EMPER_20_WORKER_ENV_CMD,
         'server_cmd_suffix': '200'
     },
-    '20-nopin-computation-200us-nopin': {
+    '20-nopin-computation-200us': {
         'server_cmd_prefix':
         EMPER_20_WORKER_ENV_CMD + ' EMPER_PIN_WORKERS=false',
         'server_cmd_suffix': '200'
     },
     'linked-futures': {
         'checkout': EMPER_LINKED_FUTURE_CHECKOUT,
-        'patches': ['fix_free_vs_delete.patch'],
+        'patches': ['fix_free_vs_delete.patch', 'wakeup-condvar.patch'],
     },
     'linked-futures-notify-all': {
         'checkout': EMPER_LINKED_FUTURE_CHECKOUT,
-        'patches': ['fix_free_vs_delete.patch'],
+        'patches': ['fix_free_vs_delete.patch', 'wakeup-condvar.patch'],
         'meson_options': '-Dworker_wakeup_strategy=all'
     },
     'before-new-worker-sleep-algo': {
         'checkout': EMPER_BEFORE_CHANGES_TO_WORKER_SLEEP_ALGO,
-        'patches': ['fix_free_vs_delete.patch'],
+        'patches': ['fix_free_vs_delete.patch', 'before-batch-cqe.patch'],
         'meson_options': '-Dlog_level=OFF',
     },
+    'bdqfa': {
+        'checkout': EMPER_BATCH_DEQUEUE_ANYWHERE,
+    },
+    'bdqfa-200us': {
+        'checkout': EMPER_BATCH_DEQUEUE_ANYWHERE,
+        'server_cmd_suffix': '200'
+    },
+    'bdqfa-20-nopin': {
+        'checkout': EMPER_BATCH_DEQUEUE_ANYWHERE,
+        'server_cmd_prefix':
+        EMPER_20_WORKER_ENV_CMD + ' EMPER_PIN_WORKERS=false',
+    },
+    'bdqfa-20-nopin-200us': {
+        'checkout': EMPER_BATCH_DEQUEUE_ANYWHERE,
+        'server_cmd_prefix':
+        EMPER_20_WORKER_ENV_CMD + ' EMPER_PIN_WORKERS=false',
+        'server_cmd_suffix': '200'
+    },
+    'laws': {
+        'meson_options': ('-Ddefault_scheduling_strategy=locality_aware_work_stealing '
+                          '-Dset_affinity_on_block=true'),
+    },
+    'laws-200us': {
+        'meson_options': ('-Ddefault_scheduling_strategy=locality_aware_work_stealing '
+                          '-Dset_affinity_on_block=true'),
+        'server_cmd_suffix': '200'
+    },
+    'laws-20-nopin': {
+        'server_cmd_prefix':
+        EMPER_20_WORKER_ENV_CMD + ' EMPER_PIN_WORKERS=false',
+        'meson_options': ('-Ddefault_scheduling_strategy=locality_aware_work_stealing '
+                          '-Dset_affinity_on_block=true'),
+    },
+    'laws-20-nopin-200us': {
+        'server_cmd_prefix':
+        EMPER_20_WORKER_ENV_CMD + ' EMPER_PIN_WORKERS=false',
+        'meson_options': ('-Ddefault_scheduling_strategy=locality_aware_work_stealing '
+                          '-Dset_affinity_on_block=true'),
+        'server_cmd_suffix': '200'
+    },
+    'laws-bdqfa': {
+        'checkout': EMPER_BATCH_DEQUEUE_ANYWHERE,
+        'meson_options': ('-Ddefault_scheduling_strategy=locality_aware_work_stealing '
+                          '-Dset_affinity_on_block=true'),
+    },
+    'laws-bdqfa-200us': {
+        'checkout': EMPER_BATCH_DEQUEUE_ANYWHERE,
+        'meson_options': ('-Ddefault_scheduling_strategy=locality_aware_work_stealing '
+                          '-Dset_affinity_on_block=true'),
+        'server_cmd_suffix': '200'
+    },
+    'laws-bdqfa-20-nopin': {
+        'checkout': EMPER_BATCH_DEQUEUE_ANYWHERE,
+        'server_cmd_prefix':
+        EMPER_20_WORKER_ENV_CMD + ' EMPER_PIN_WORKERS=false',
+        'meson_options': ('-Ddefault_scheduling_strategy=locality_aware_work_stealing '
+                          '-Dset_affinity_on_block=true'),
+    },
+    'laws-bdqfa-20-nopin-200us': {
+        'checkout': EMPER_BATCH_DEQUEUE_ANYWHERE,
+        'server_cmd_prefix':
+        EMPER_20_WORKER_ENV_CMD + ' EMPER_PIN_WORKERS=false',
+        'meson_options': ('-Ddefault_scheduling_strategy=locality_aware_work_stealing '
+                          '-Dset_affinity_on_block=true'),
+        'server_cmd_suffix': '200'
+    },
 }
 
 CONS = [500, 1000, 5000, 10000, 15000, 20000, 25000]
diff --git a/patches/before-batch-cqe.patch b/patches/before-batch-cqe.patch
new file mode 100644
index 0000000000000000000000000000000000000000..cace59428e49f32fd4dbf20ca8efe2eed4f08812
--- /dev/null
+++ b/patches/before-batch-cqe.patch
@@ -0,0 +1,30 @@
+diff --git a/emper/strategies/ws/WsScheduler.hpp b/emper/strategies/ws/WsScheduler.hpp
+index 63a634d..911512d 100644
+--- a/emper/strategies/ws/WsScheduler.hpp
++++ b/emper/strategies/ws/WsScheduler.hpp
+@@ -13,11 +13,7 @@ class WsStrategy;
+ class WsScheduler : public AbstractWorkStealingScheduler {
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wattributes"
+-	WsStrategy& wsStrategy
+-#ifndef EMPER_STATS
+-			ATTR_UNUSED
+-#endif
+-			;
++	WsStrategy& wsStrategy ATTR_UNUSED ;
+ #pragma GCC diagnostic pop
+ 
+  protected:
+diff --git a/tests/SimpleActorTest.cpp b/tests/SimpleActorTest.cpp
+index 76b4cfe..94059a2 100644
+--- a/tests/SimpleActorTest.cpp
++++ b/tests/SimpleActorTest.cpp
+@@ -49,7 +49,7 @@ static void mainFiber(void* runtime_ptr) {
+ 	CPS cps;
+ 	for (unsigned int fiberNum = 0; fiberNum < FIBER_COUNT; ++fiberNum) {
+ 		spawn(
+-				[&sumActor, fiberNum] {
++				[&sumActor] {
+ 					WDBG(Dispatcher::getCurrentFiber()
+ 							 << " (" << fiberNum << ") starts to count to " << FIBERS_COUNT_TO);
+ 					for (uint64_t i = 1; i <= FIBERS_COUNT_TO; ++i) {
diff --git a/patches/getcpu.patch b/patches/getcpu.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8f6c274e0758047d8e669ccf1d3d75e366894f9e
--- /dev/null
+++ b/patches/getcpu.patch
@@ -0,0 +1,21 @@
+diff --git a/emper/io/IoContext.cpp b/emper/io/IoContext.cpp
+index 3e0ef11..16a70eb 100644
+--- a/emper/io/IoContext.cpp
++++ b/emper/io/IoContext.cpp
+@@ -6,6 +6,7 @@
+ #include <liburing/io_uring.h>	// for io_uring_cqe, io_uring_params, IORI...
+ #include <numa.h>
+ #include <sched.h>
++#include <syscall.h>
+ #include <sys/eventfd.h>	// for eventfd
+ #include <unistd.h>				// for close
+ 
+@@ -365,7 +366,7 @@ IoContext::IoContext(Runtime &runtime, size_t uring_entries) : runtime(runtime)
+ 			} else if constexpr (emper::IO_SQ_POLLER == IoSqPoller::numa) {
+ 				// get our numa node
+ 				unsigned cpu, node;
+-				int err = getcpu(&cpu, &node);
++				int err = syscall(__NR_getcpu, &cpu, &node);
+ 				if (unlikely(err)) {
+ 					DIE_MSG_ERRNO("getcpu failed");
+ 				}
diff --git a/patches/wakeup-condvar.patch b/patches/wakeup-condvar.patch
new file mode 100644
index 0000000000000000000000000000000000000000..99dae2fd47d7594e0131ec88d8aa484fd0cf56b4
--- /dev/null
+++ b/patches/wakeup-condvar.patch
@@ -0,0 +1,17 @@
+diff --git a/emper/strategies/ws/WsScheduler.hpp b/emper/strategies/ws/WsScheduler.hpp
+index 63a634d..911512d 100644
+--- a/emper/strategies/ws/WsScheduler.hpp
++++ b/emper/strategies/ws/WsScheduler.hpp
+@@ -13,11 +13,7 @@ class WsStrategy;
+ class WsScheduler : public AbstractWorkStealingScheduler {
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wattributes"
+-	WsStrategy& wsStrategy
+-#ifndef EMPER_STATS
+-			ATTR_UNUSED
+-#endif
+-			;
++	WsStrategy& wsStrategy ATTR_UNUSED ;
+ #pragma GCC diagnostic pop
+ 
+  protected: