From 183a5154d404c45560226d5f39ce5a8d7e3799e3 Mon Sep 17 00:00:00 2001 From: Michael Mueller Date: Tue, 13 Feb 2024 17:37:16 +0100 Subject: [PATCH] Added communication signal to Tukija. --- src/mx/tasking/worker.cpp | 4 ++-- src/mx/tasking/worker.h | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/mx/tasking/worker.cpp b/src/mx/tasking/worker.cpp index a851e8c..b75cf70 100644 --- a/src/mx/tasking/worker.cpp +++ b/src/mx/tasking/worker.cpp @@ -15,11 +15,11 @@ using namespace mx::tasking; -Worker::Worker(const std::uint16_t id, const std::uint16_t target_core_id, const std::uint16_t target_numa_node_id, +Worker::Worker(const std::uint16_t id, const std::uint16_t target_core_id, const std::uint16_t target_numa_node_id, std::uint64_t* volatile tukija_sig, const util::maybe_atomic &is_running, const std::uint16_t prefetch_distance, memory::reclamation::LocalEpoch &local_epoch, const std::atomic &global_epoch, profiling::Statistic &statistic) noexcept - : _target_core_id(target_core_id), _prefetch_distance(prefetch_distance), + : _target_core_id(target_core_id), _tukija_signal(tukija_sig), _prefetch_distance(prefetch_distance), _channel(id, target_numa_node_id, prefetch_distance), _local_epoch(local_epoch), _global_epoch(global_epoch), _statistic(statistic), _is_running(is_running) { diff --git a/src/mx/tasking/worker.h b/src/mx/tasking/worker.h index 1854357..3ed5d3b 100644 --- a/src/mx/tasking/worker.h +++ b/src/mx/tasking/worker.h @@ -20,7 +20,7 @@ namespace mx::tasking { class alignas(64) Worker { public: - Worker(std::uint16_t id, std::uint16_t target_core_id, std::uint16_t target_numa_node_id, + Worker(std::uint16_t id, std::uint16_t target_core_id, std::uint16_t target_numa_node_id, std::uint64_t* volatile tukija_sig, const util::maybe_atomic &is_running, std::uint16_t prefetch_distance, memory::reclamation::LocalEpoch &local_epoch, const std::atomic &global_epoch, profiling::Statistic &statistic) noexcept; @@ -68,6 +68,9 @@ private: // Flag for "running" state of MxTasking. const util::maybe_atomic &_is_running; + // Communication channel to Tukija + std::uint64_t *volatile _tukija_signal; + /** * Analyzes the given task and chooses the execution method regarding synchronization. * @param task Task to be executed.