summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
8d32b53)
this was the last field, MSG tasks are now objects
have to remove the useless layer now!
typedef struct msg_task {
simdata_task_t simdata; /**< @brief simulator data */
typedef struct msg_task {
simdata_task_t simdata; /**< @brief simulator data */
- long long int counter; /* task unique identifier for instrumentation */
} s_msg_task_t;
/** @brief Task datatype.
} s_msg_task_t;
/** @brief Task datatype.
/* MSG_task_put related functions */
void TRACE_msg_task_put_start(msg_task_t task)
{
/* MSG_task_put related functions */
void TRACE_msg_task_put_start(msg_task_t task)
{
- XBT_DEBUG("PUT,in %p, %lld, %s", task, task->counter, task->simdata->get_tracing_category().c_str());
+ XBT_DEBUG("PUT,in %p, %lld, %s", task, task->simdata->get_counter(), task->simdata->get_tracing_category().c_str());
if (TRACE_actor_is_enabled()) {
container_t process_container = simgrid::instr::Container::by_name(instr_pid(MSG_process_self()));
if (TRACE_actor_is_enabled()) {
container_t process_container = simgrid::instr::Container::by_name(instr_pid(MSG_process_self()));
- std::string key = std::string("p") + std::to_string(task->counter);
+ std::string key = std::string("p") + std::to_string(task->simdata->get_counter());
simgrid::instr::Container::get_root()->get_link("ACTOR_TASK_LINK")->start_event(process_container, "SR", key);
}
}
simgrid::instr::Container::get_root()->get_link("ACTOR_TASK_LINK")->start_event(process_container, "SR", key);
}
}
if (TRACE_actor_is_enabled() && ret != MSG_HOST_FAILURE && ret != MSG_TRANSFER_FAILURE && ret != MSG_TIMEOUT) {
container_t process_container = simgrid::instr::Container::by_name(instr_pid(MSG_process_self()));
if (TRACE_actor_is_enabled() && ret != MSG_HOST_FAILURE && ret != MSG_TRANSFER_FAILURE && ret != MSG_TIMEOUT) {
container_t process_container = simgrid::instr::Container::by_name(instr_pid(MSG_process_self()));
- std::string key = std::string("p") + std::to_string((*task)->counter);
+ std::string key = std::string("p") + std::to_string((*task)->simdata->get_counter());
simgrid::instr::Container::get_root()->get_link("ACTOR_TASK_LINK")->end_event(process_container, "SR", key);
}
return ret;
simgrid::instr::Container::get_root()->get_link("ACTOR_TASK_LINK")->end_event(process_container, "SR", key);
}
return ret;
#include "src/kernel/activity/CommImpl.hpp"
#include "src/kernel/activity/ExecImpl.hpp"
#include "src/kernel/activity/CommImpl.hpp"
#include "src/kernel/activity/ExecImpl.hpp"
+static long long int msg_task_max_counter = 0;
+
/**************** datatypes **********************************/
namespace simgrid {
namespace msg {
/**************** datatypes **********************************/
namespace simgrid {
namespace msg {
std::string name_ = "";
std::string tracing_category_ = "";
void* userdata_ = nullptr;
std::string name_ = "";
std::string tracing_category_ = "";
void* userdata_ = nullptr;
+ long long int counter_;
public:
~Task();
explicit Task(std::string name, double flops_amount, double bytes_amount, void* data)
: name_(std::move(name)), userdata_(data), flops_amount(flops_amount), bytes_amount(bytes_amount)
{
public:
~Task();
explicit Task(std::string name, double flops_amount, double bytes_amount, void* data)
: name_(std::move(name)), userdata_(data), flops_amount(flops_amount), bytes_amount(bytes_amount)
{
+ counter_ = msg_task_max_counter++;
}
void set_used();
void set_not_used() { this->is_used = false; }
}
void set_used();
void set_not_used() { this->is_used = false; }
bool has_tracing_category() { return not tracing_category_.empty(); }
void* get_user_data() { return userdata_; }
void set_user_data(void* data) { userdata_ = data; }
bool has_tracing_category() { return not tracing_category_.empty(); }
void* get_user_data() { return userdata_; }
void set_user_data(void* data) { userdata_ = data; }
+ long long int get_counter() { return counter_; }
kernel::activity::ExecImplPtr compute = nullptr; /* SIMIX modeling of computation */
s4u::CommPtr comm = nullptr; /* S4U modeling of communication */
kernel::activity::ExecImplPtr compute = nullptr; /* SIMIX modeling of computation */
s4u::CommPtr comm = nullptr; /* S4U modeling of communication */
*/
msg_task_t MSG_task_create(const char *name, double flop_amount, double message_size, void *data)
{
*/
msg_task_t MSG_task_create(const char *name, double flop_amount, double message_size, void *data)
{
- static std::atomic_ullong counter{0};
-
msg_task_t task = new s_msg_task_t;
/* Simulator Data */
task->simdata = new simgrid::msg::Task(name ? name : "", flop_amount, message_size, data);
msg_task_t task = new s_msg_task_t;
/* Simulator Data */
task->simdata = new simgrid::msg::Task(name ? name : "", flop_amount, message_size, data);
- /* Task structure */
- task->counter = counter++;
-
- MC_ignore_heap(&(task->counter), sizeof(task->counter));
+ MC_ignore_heap(&(task->simdata->get_counter()), sizeof(long long int));