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
Remove redundant access specifier.
[simgrid.git]
/
src
/
plugins
/
vm
/
VirtualMachineImpl.hpp
diff --git
a/src/plugins/vm/VirtualMachineImpl.hpp
b/src/plugins/vm/VirtualMachineImpl.hpp
index
387aaa0
..
026071e
100644
(file)
--- a/
src/plugins/vm/VirtualMachineImpl.hpp
+++ b/
src/plugins/vm/VirtualMachineImpl.hpp
@@
-1,16
+1,14
@@
-/* Copyright (c) 2004-2015. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2004-2017. 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. */
-#include <boost/intrusive/list.hpp>
-#include <deque>
-
-#include <xbt/base.h>
-
#include "simgrid/s4u/VirtualMachine.hpp"
#include "simgrid/s4u/VirtualMachine.hpp"
+#include "src/simix/ActorImpl.hpp"
#include "src/surf/HostImpl.hpp"
#include "src/surf/HostImpl.hpp"
+#include <algorithm>
+#include <deque>
+#include <unordered_map>
#ifndef VM_INTERFACE_HPP_
#define VM_INTERFACE_HPP_
#ifndef VM_INTERFACE_HPP_
#define VM_INTERFACE_HPP_
@@
-18,6
+16,8
@@
#define GUESTOS_NOISE 100 // This value corresponds to the cost of the global action associated to the VM
// It corresponds to the cost of a VM running no tasks.
#define GUESTOS_NOISE 100 // This value corresponds to the cost of the global action associated to the VM
// It corresponds to the cost of a VM running no tasks.
+typedef struct s_dirty_page* dirty_page_t;
+
namespace simgrid {
namespace vm {
namespace simgrid {
namespace vm {
@@
-26,7
+26,7
@@
namespace vm {
***********/
class XBT_PRIVATE VMModel;
***********/
class XBT_PRIVATE VMModel;
-class XBT_PRIVATE VirtualMachineImpl;
+XBT_PUBLIC_CLASS VirtualMachineImpl; // Made visible to the Java plugin
/*************
* Callbacks *
/*************
* Callbacks *
@@
-55,27
+55,25
@@
extern XBT_PRIVATE simgrid::xbt::signal<void(simgrid::vm::VirtualMachineImpl*)>
* @brief SURF VM interface class
* @details A VM represent a virtual machine
*/
* @brief SURF VM interface class
* @details A VM represent a virtual machine
*/
-class VirtualMachineImpl : public surf::HostImpl {
+XBT_PUBLIC_CLASS VirtualMachineImpl : public surf::HostImpl
+{
friend simgrid::s4u::VirtualMachine;
public:
friend simgrid::s4u::VirtualMachine;
public:
- explicit VirtualMachineImpl(s4u::VirtualMachine
* piface, s4u::Host* hos
t);
+ explicit VirtualMachineImpl(s4u::VirtualMachine
* piface, s4u::Host * host, int coreAmoun
t);
~VirtualMachineImpl();
/** @brief Suspend the VM */
~VirtualMachineImpl();
/** @brief Suspend the VM */
- virtual void suspend();
+ virtual void suspend(
simgrid::simix::ActorImpl* issuer
);
/** @brief Resume the VM */
virtual void resume();
/** @brief Resume the VM */
virtual void resume();
- /** @brief Save the VM (Not yet implemented) */
- virtual void save();
-
- /** @brief Restore the VM (Not yet implemented) */
- virtual void restore();
+ /** @brief Shutdown the VM */
+ virtual void shutdown(simgrid::simix::ActorImpl* issuer);
- /** @brief
Migrate the VM to the destination host
*/
- virtual void
migrate
(s4u::Host* dest);
+ /** @brief
Change the physical host on which the given VM is running
*/
+ virtual void
setPm
(s4u::Host* dest);
/** @brief Get the physical machine hosting the VM */
s4u::Host* getPm();
/** @brief Get the physical machine hosting the VM */
s4u::Host* getPm();
@@
-91,24
+89,21
@@
public:
surf::Action* action_ = nullptr;
/* Dirty pages stuff */
surf::Action* action_ = nullptr;
/* Dirty pages stuff */
+ std::unordered_map<std::string, dirty_page_t> dp_objs;
int dp_enabled = 0;
int dp_enabled = 0;
- xbt_dict_t dp_objs = nullptr;
double dp_updated_by_deleted_tasks = 0;
double dp_updated_by_deleted_tasks = 0;
-protected:
- simgrid::s4u::Host* hostPM_;
-
-public:
e_surf_vm_state_t getState();
void setState(e_surf_vm_state_t state);
static std::deque<s4u::VirtualMachine*> allVms_;
e_surf_vm_state_t getState();
void setState(e_surf_vm_state_t state);
static std::deque<s4u::VirtualMachine*> allVms_;
+ int coreAmount() { return coreAmount_; }
bool isMigrating = false;
private:
bool isMigrating = false;
private:
+ simgrid::s4u::Host* hostPM_;
s_vm_params_t params_;
s_vm_params_t params_;
-
-protected:
+ int coreAmount_;
e_surf_vm_state_t vmState_ = SURF_VM_STATE_CREATED;
};
e_surf_vm_state_t vmState_ = SURF_VM_STATE_CREATED;
};
@@
-121,7
+116,8
@@
protected:
*/
class VMModel : public surf::HostModel {
public:
*/
class VMModel : public surf::HostModel {
public:
- void adjustWeightOfDummyCpuActions() override{};
+ VMModel();
+ void ignoreEmptyVmInPmLMM() override{};
double nextOccuringEvent(double now) override;
void updateActionsState(double /*now*/, double /*delta*/) override{};
double nextOccuringEvent(double now) override;
void updateActionsState(double /*now*/, double /*delta*/) override{};