A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kill the useless simgrid::surf::surfExitCallbacks callback
[simgrid.git]
/
src
/
surf
/
surf_interface.cpp
diff --git
a/src/surf/surf_interface.cpp
b/src/surf/surf_interface.cpp
index
67c6b6b
..
fa9aaa2
100644
(file)
--- a/
src/surf/surf_interface.cpp
+++ b/
src/surf/surf_interface.cpp
@@
-1,4
+1,4
@@
-/* Copyright (c) 2004-201
7
. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-201
8
. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
@@
-8,8
+8,10
@@
#include "simgrid/s4u/Engine.hpp"
#include "simgrid/sg_config.h"
#include "src/instr/instr_private.hpp" // TRACE_is_enabled(). FIXME: remove by subscribing tracing to the surf signals
#include "simgrid/s4u/Engine.hpp"
#include "simgrid/sg_config.h"
#include "src/instr/instr_private.hpp" // TRACE_is_enabled(). FIXME: remove by subscribing tracing to the surf signals
+#include "src/kernel/lmm/maxmin.hpp" // Constraint
#include "src/kernel/routing/NetPoint.hpp"
#include "src/surf/HostImpl.hpp"
#include "src/kernel/routing/NetPoint.hpp"
#include "src/surf/HostImpl.hpp"
+#include "xbt/utility.hpp"
#include <fstream>
#include <set>
#include <fstream>
#include <set>
@@
-319,7
+321,7
@@
void surf_exit()
{
TRACE_end(); /* Just in case it was not called by the upper layer (or there is no upper layer) */
{
TRACE_end(); /* Just in case it was not called by the upper layer (or there is no upper layer) */
- s
g_host_exit
();
+ s
imgrid::s4u::Engine::shutdown
();
sg_link_exit();
for (auto const& e : storage_types) {
simgrid::surf::StorageType* stype = e.second;
sg_link_exit();
for (auto const& e : storage_types) {
simgrid::surf::StorageType* stype = e.second;
@@
-335,7
+337,6
@@
void surf_exit()
delete model;
delete all_existing_models;
delete model;
delete all_existing_models;
- simgrid::surf::surfExitCallbacks();
if (future_evt_set) {
delete future_evt_set;
if (future_evt_set) {
delete future_evt_set;
@@
-344,7
+345,6
@@
void surf_exit()
tmgr_finalize();
sg_platf_exit();
tmgr_finalize();
sg_platf_exit();
- simgrid::s4u::Engine::shutdown();
NOW = 0; /* Just in case the user plans to restart the simulation afterward */
}
NOW = 0; /* Just in case the user plans to restart the simulation afterward */
}
@@
-374,6
+374,8
@@
Model::~Model(){
delete runningActionSet_;
delete failedActionSet_;
delete doneActionSet_;
delete runningActionSet_;
delete failedActionSet_;
delete doneActionSet_;
+ delete modifiedSet_;
+ delete maxminSystem_;
}
Action* Model::actionHeapPop()
}
Action* Model::actionHeapPop()
@@
-410,13
+412,13
@@
double Model::nextOccuringEventLazy(double now)
continue;
/* bogus priority, skip it */
continue;
/* bogus priority, skip it */
- if (action->getPriority() <= 0 || action->getHat()
==
LATENCY)
+ if (action->getPriority() <= 0 || action->getHat()
== Action::Type::
LATENCY)
continue;
action->updateRemainingLazy(now);
double min = -1;
continue;
action->updateRemainingLazy(now);
double min = -1;
- double share =
lmm_variable_getvalue(action->getVariable()
);
+ double share =
action->getVariable()->get_value(
);
if (share > 0) {
double time_to_completion;
if (share > 0) {
double time_to_completion;
@@
-442,7
+444,7
@@
double Model::nextOccuringEventLazy(double now)
action->getMaxDuration());
if (min > -1) {
action->getMaxDuration());
if (min > -1) {
- action->heapUpdate(actionHeap_, min, max_dur_flag ?
MAX_DURATION :
NORMAL);
+ action->heapUpdate(actionHeap_, min, max_dur_flag ?
Action::Type::MAX_DURATION : Action::Type::
NORMAL);
XBT_DEBUG("Insert at heap action(%p) min %f now %f", action, min, now);
} else
DIE_IMPOSSIBLE;
XBT_DEBUG("Insert at heap action(%p) min %f now %f", action, min, now);
} else
DIE_IMPOSSIBLE;
@@
-465,7
+467,7
@@
double Model::nextOccuringEventFull(double /*now*/) {
double min = -1;
for (Action& action : *getRunningActionSet()) {
double min = -1;
for (Action& action : *getRunningActionSet()) {
- double value =
lmm_variable_getvalue(action.getVariable()
);
+ double value =
action.getVariable()->get_value(
);
if (value > 0) {
if (action.getRemains() > 0)
value = action.getRemainsNoUpdate() / value;
if (value > 0) {
if (action.getRemains() > 0)
value = action.getRemainsNoUpdate() / value;
@@
-539,6
+541,11
@@
void Resource::turnOff()
isOn_ = false;
}
isOn_ = false;
}
+double Resource::getLoad()
+{
+ return constraint_->get_usage();
+}
+
Model* Resource::model() const
{
return model_;
Model* Resource::model() const
{
return model_;
@@
-570,15
+577,6
@@
lmm_constraint_t Resource::constraint() const
* Action *
**********/
* Action *
**********/
-const char *surf_action_state_names[6] = {
- "SURF_ACTION_READY",
- "SURF_ACTION_RUNNING",
- "SURF_ACTION_FAILED",
- "SURF_ACTION_DONE",
- "SURF_ACTION_TO_FREE",
- "SURF_ACTION_NOT_IN_THE_SYSTEM"
-};
-
namespace simgrid {
namespace surf {
namespace simgrid {
namespace surf {
@@
-622,7
+620,7
@@
Action::State Action::getState() const
void Action::setState(Action::State state)
{
void Action::setState(Action::State state)
{
- s
tateSet_->erase(stateSet_->iterator_to(*this)
);
+ s
imgrid::xbt::intrusive_erase(*stateSet_, *this
);
switch (state) {
case Action::State::ready:
stateSet_ = model_->getReadyActionSet();
switch (state) {
case Action::State::ready:
stateSet_ = model_->getReadyActionSet();
@@
-646,14
+644,14
@@
void Action::setState(Action::State state)
double Action::getBound() const
{
double Action::getBound() const
{
- return
(variable_) ? lmm_variable_getbound(variable_
) : 0;
+ return
variable_ ? variable_->get_bound(
) : 0;
}
void Action::setBound(double bound)
{
XBT_IN("(%p,%g)", this, bound);
if (variable_)
}
void Action::setBound(double bound)
{
XBT_IN("(%p,%g)", this, bound);
if (variable_)
-
lmm_update_variable_bound(getModel()->getMaxminSystem(),
variable_, bound);
+
getModel()->getMaxminSystem()->update_variable_bound(
variable_, bound);
if (getModel()->getUpdateMechanism() == UM_LAZY && getLastUpdate() != surf_get_clock())
heapRemove(getModel()->getActionHeap());
if (getModel()->getUpdateMechanism() == UM_LAZY && getLastUpdate() != surf_get_clock())
heapRemove(getModel()->getActionHeap());
@@
-680,7
+678,7
@@
void Action::setSharingWeight(double weight)
{
XBT_IN("(%p,%g)", this, weight);
sharingWeight_ = weight;
{
XBT_IN("(%p,%g)", this, weight);
sharingWeight_ = weight;
-
lmm_update_variable_weight(getModel()->getMaxminSystem(),
getVariable(), weight);
+
getModel()->getMaxminSystem()->update_variable_weight(
getVariable(), weight);
if (getModel()->getUpdateMechanism() == UM_LAZY)
heapRemove(getModel()->getActionHeap());
if (getModel()->getUpdateMechanism() == UM_LAZY)
heapRemove(getModel()->getActionHeap());
@@
-691,7
+689,7
@@
void Action::cancel(){
setState(Action::State::failed);
if (getModel()->getUpdateMechanism() == UM_LAZY) {
if (action_lmm_hook.is_linked())
setState(Action::State::failed);
if (getModel()->getUpdateMechanism() == UM_LAZY) {
if (action_lmm_hook.is_linked())
-
getModel()->getModifiedSet()->erase(getModel()->getModifiedSet()->iterator_to(*this)
);
+
simgrid::xbt::intrusive_erase(*getModel()->getModifiedSet(), *this
);
heapRemove(getModel()->getActionHeap());
}
}
heapRemove(getModel()->getActionHeap());
}
}
@@
-700,14
+698,14
@@
int Action::unref(){
refcount_--;
if (not refcount_) {
if (action_hook.is_linked())
refcount_--;
if (not refcount_) {
if (action_hook.is_linked())
- s
tateSet_->erase(stateSet_->iterator_to(*this)
);
+ s
imgrid::xbt::intrusive_erase(*stateSet_, *this
);
if (getVariable())
if (getVariable())
-
lmm_variable_free(getModel()->getMaxminSystem(),
getVariable());
+
getModel()->getMaxminSystem()->variable_free(
getVariable());
if (getModel()->getUpdateMechanism() == UM_LAZY) {
/* remove from heap */
heapRemove(getModel()->getActionHeap());
if (action_lmm_hook.is_linked())
if (getModel()->getUpdateMechanism() == UM_LAZY) {
/* remove from heap */
heapRemove(getModel()->getActionHeap());
if (action_lmm_hook.is_linked())
-
getModel()->getModifiedSet()->erase(getModel()->getModifiedSet()->iterator_to(*this)
);
+
simgrid::xbt::intrusive_erase(*getModel()->getModifiedSet(), *this
);
}
delete this;
return 1;
}
delete this;
return 1;
@@
-718,8
+716,8
@@
int Action::unref(){
void Action::suspend()
{
XBT_IN("(%p)", this);
void Action::suspend()
{
XBT_IN("(%p)", this);
- if (suspended_ !=
2
) {
-
lmm_update_variable_weight(getModel()->getMaxminSystem(),
getVariable(), 0.0);
+ if (suspended_ !=
SuspendStates::sleeping
) {
+
getModel()->getMaxminSystem()->update_variable_weight(
getVariable(), 0.0);
if (getModel()->getUpdateMechanism() == UM_LAZY){
heapRemove(getModel()->getActionHeap());
if (getModel()->getUpdateMechanism() == UM_LAZY && stateSet_ == getModel()->getRunningActionSet() &&
if (getModel()->getUpdateMechanism() == UM_LAZY){
heapRemove(getModel()->getActionHeap());
if (getModel()->getUpdateMechanism() == UM_LAZY && stateSet_ == getModel()->getRunningActionSet() &&
@@
-728,7
+726,7
@@
void Action::suspend()
updateRemainingLazy(surf_get_clock());
}
}
updateRemainingLazy(surf_get_clock());
}
}
- suspended_ =
1
;
+ suspended_ =
SuspendStates::suspended
;
}
XBT_OUT();
}
}
XBT_OUT();
}
@@
-736,9
+734,9
@@
void Action::suspend()
void Action::resume()
{
XBT_IN("(%p)", this);
void Action::resume()
{
XBT_IN("(%p)", this);
- if (suspended_ !=
2
) {
-
lmm_update_variable_weight(getModel()->getMaxminSystem(),
getVariable(), getPriority());
- suspended_ =
0
;
+ if (suspended_ !=
SuspendStates::sleeping
) {
+
getModel()->getMaxminSystem()->update_variable_weight(
getVariable(), getPriority());
+ suspended_ =
SuspendStates::not_suspended
;
if (getModel()->getUpdateMechanism() == UM_LAZY)
heapRemove(getModel()->getActionHeap());
}
if (getModel()->getUpdateMechanism() == UM_LAZY)
heapRemove(getModel()->getActionHeap());
}
@@
-747,7
+745,7
@@
void Action::resume()
bool Action::isSuspended()
{
bool Action::isSuspended()
{
- return suspended_ ==
1
;
+ return suspended_ ==
SuspendStates::suspended
;
}
/* insert action on heap using a given key and a hat (heap_action_type)
* a hat can be of three types for communications:
}
/* insert action on heap using a given key and a hat (heap_action_type)
* a hat can be of three types for communications:
@@
-756,7
+754,7
@@
bool Action::isSuspended()
* LATENCY = this is a heap entry to warn us when the latency is payed
* MAX_DURATION =this is a heap entry to warn us when the max_duration limit is reached
*/
* LATENCY = this is a heap entry to warn us when the latency is payed
* MAX_DURATION =this is a heap entry to warn us when the max_duration limit is reached
*/
-void Action::heapInsert(heap_type& heap, double key,
enum heap_action_t
ype hat)
+void Action::heapInsert(heap_type& heap, double key,
Action::T
ype hat)
{
hat_ = hat;
heapHandle_ = heap.emplace(std::make_pair(key, this));
{
hat_ = hat;
heapHandle_ = heap.emplace(std::make_pair(key, this));
@@
-764,14
+762,14
@@
void Action::heapInsert(heap_type& heap, double key, enum heap_action_type hat)
void Action::heapRemove(heap_type& heap)
{
void Action::heapRemove(heap_type& heap)
{
- hat_ = NOTSET;
+ hat_ =
Action::Type::
NOTSET;
if (heapHandle_) {
heap.erase(*heapHandle_);
clearHeapHandle();
}
}
if (heapHandle_) {
heap.erase(*heapHandle_);
clearHeapHandle();
}
}
-void Action::heapUpdate(heap_type& heap, double key,
enum heap_action_t
ype hat)
+void Action::heapUpdate(heap_type& heap, double key,
Action::T
ype hat)
{
hat_ = hat;
if (heapHandle_) {
{
hat_ = hat;
if (heapHandle_) {