From 802ce8090d999864f8b55f6c2e19ac4fe0805ff3 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Tue, 22 Feb 2011 23:08:07 +0100 Subject: [PATCH] Make messages intelligent about their size. --- communicator.cpp | 6 +----- messages.cpp | 10 ++++++++++ messages.h | 1 + 3 files changed, 12 insertions(+), 5 deletions(-) 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(); -- 2.39.5