From cf51d55db1e6cb288ebc0a77a2977ec24f013bc0 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Tue, 19 Dec 2017 19:06:52 +0100 Subject: [PATCH 1/1] tracking works better if signals are triggered --- src/kernel/activity/ExecImpl.cpp | 3 ++- src/kernel/activity/ExecImpl.hpp | 2 +- src/simix/smx_host.cpp | 1 + src/surf/plugins/dirty_page_tracking.cpp | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/kernel/activity/ExecImpl.cpp b/src/kernel/activity/ExecImpl.cpp index 89bcbe3f0e..0484cc746c 100644 --- a/src/kernel/activity/ExecImpl.cpp +++ b/src/kernel/activity/ExecImpl.cpp @@ -81,6 +81,7 @@ void simgrid::kernel::activity::ExecImpl::post() timeoutDetector = nullptr; } + onCompletion(this); /* If there are simcalls associated with the synchro, then answer them */ if (not simcalls.empty()) SIMIX_execution_finish(this); @@ -90,4 +91,4 @@ void simgrid::kernel::activity::ExecImpl::post() * Callbacks * *************/ simgrid::xbt::signal simgrid::kernel::activity::ExecImpl::onCreation; -simgrid::xbt::signal simgrid::kernel::activity::ExecImpl::onDestruction; +simgrid::xbt::signal simgrid::kernel::activity::ExecImpl::onCompletion; diff --git a/src/kernel/activity/ExecImpl.hpp b/src/kernel/activity/ExecImpl.hpp index 4e68dc43b5..f71e3cc113 100644 --- a/src/kernel/activity/ExecImpl.hpp +++ b/src/kernel/activity/ExecImpl.hpp @@ -31,7 +31,7 @@ public: surf_action_t surfAction_ = nullptr; /* The Surf execution action encapsulated */ surf::Action* timeoutDetector = nullptr; static simgrid::xbt::signal onCreation; - static simgrid::xbt::signal onDestruction; + static simgrid::xbt::signal onCompletion; }; } } diff --git a/src/simix/smx_host.cpp b/src/simix/smx_host.cpp index 38667177cc..ed49843c8a 100644 --- a/src/simix/smx_host.cpp +++ b/src/simix/smx_host.cpp @@ -165,6 +165,7 @@ SIMIX_execution_start(const char* name, double flops_amount, double priority, do } XBT_DEBUG("Create execute synchro %p: %s", exec.get(), exec->name.c_str()); + simgrid::kernel::activity::ExecImpl::onCreation(exec); return exec; } diff --git a/src/surf/plugins/dirty_page_tracking.cpp b/src/surf/plugins/dirty_page_tracking.cpp index e923f55031..329f12396c 100644 --- a/src/surf/plugins/dirty_page_tracking.cpp +++ b/src/surf/plugins/dirty_page_tracking.cpp @@ -74,7 +74,7 @@ static void onExecCreation(simgrid::kernel::activity::ExecImplPtr exec) } } -static void onExecDestruction(simgrid::kernel::activity::ExecImplPtr exec) +static void onExecCompletion(simgrid::kernel::activity::ExecImplPtr exec) { simgrid::s4u::VirtualMachine* vm = dynamic_cast(exec->host_); if (vm == nullptr) @@ -99,7 +99,7 @@ void sg_vm_live_migration_plugin_init() simgrid::vm::VirtualMachineImpl::extension_create(); simgrid::vm::VirtualMachineImpl::onVmCreation.connect(&onVirtualMachineCreation); simgrid::kernel::activity::ExecImpl::onCreation.connect(&onExecCreation); - simgrid::kernel::activity::ExecImpl::onDestruction.connect(&onExecDestruction); + simgrid::kernel::activity::ExecImpl::onCompletion.connect(&onExecCompletion); } } -- 2.20.1