From: Arnaud Giersch Date: Tue, 22 Feb 2011 22:08:07 +0000 (+0100) Subject: Make messages intelligent about their size. X-Git-Tag: v0.1~119 X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/commitdiff_plain/802ce8090d999864f8b55f6c2e19ac4fe0805ff3?ds=sidebyside;hp=3a610d4d2775be71fa1297f7f335376b2945984e Make messages intelligent about their size. --- diff --git a/communicator.cpp b/communicator.cpp index ecb207a..7abdf76 100644 --- a/communicator.cpp +++ b/communicator.cpp @@ -6,7 +6,6 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(comm); #include "misc.h" -#include "options.h" #include "simgrid_features.h" #include "tracing.h" @@ -55,10 +54,7 @@ communicator::~communicator() msg_comm_t communicator::real_send(const char* dest, message* msg) { XBT_DEBUG("send %s to %s", msg->to_string().c_str(), dest); - double msg_size = sizeof *msg; - if (msg->get_type() == message::LOAD) - msg_size += opt::comm_cost(msg->get_amount()); - m_task_t task = MSG_task_create("message", 0.0, msg_size, msg); + m_task_t task = MSG_task_create("message", 0.0, msg->get_size(), msg); TRACE_msg_set_task_category(task, msg->get_type() == message::LOAD ? TRACE_CAT_DATA : TRACE_CAT_CTRL); diff --git a/messages.cpp b/messages.cpp index 0abf913..f5df396 100644 --- a/messages.cpp +++ b/messages.cpp @@ -4,6 +4,7 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(comm); #include "misc.h" +#include "options.h" #include "messages.h" @@ -16,6 +17,15 @@ std::string message::to_string() return oss.str(); } +double message::get_size() const +{ + // arbitrary: 8 for type, and 8 for amount + double size = 16; + if (type == LOAD) + size += opt::comm_cost(amount); + return size; +} + void message_queue::push(m_task_t task) { mutex.acquire(); diff --git a/messages.h b/messages.h index 70d675d..605b3be 100644 --- a/messages.h +++ b/messages.h @@ -14,6 +14,7 @@ public: message_type get_type() const { return type; } double get_amount() const { return amount; } + double get_size() const; std::string to_string();