Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
inline all VM tracing functions
authorMartin Quinson <martin.quinson@loria.fr>
Mon, 21 Nov 2016 01:34:54 +0000 (02:34 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Mon, 21 Nov 2016 01:34:54 +0000 (02:34 +0100)
src/msg/instr_msg_vm.cpp [deleted file]
src/msg/msg_private.h
src/msg/msg_vm.cpp
src/xbt/log.c
tools/cmake/DefinePackages.cmake

diff --git a/src/msg/instr_msg_vm.cpp b/src/msg/instr_msg_vm.cpp
deleted file mode 100644 (file)
index 1ddf437..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Copyright (c) 2012-2015. 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. */
-
-#include "msg_private.h"
-#include "simgrid/s4u/VirtualMachine.hpp"
-
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_msg_vm, instr, "MSG VM");
-
-/*
- * Instrumentation functions to trace MSG VMs (msg_vm_t)
- */
-void TRACE_msg_vm_change_host(msg_vm_t vm, msg_host_t old_host, msg_host_t new_host)
-{
-  if (TRACE_msg_vm_is_enabled()){
-    static long long int counter = 0;
-    char key[INSTR_DEFAULT_STR_SIZE];
-    snprintf (key, INSTR_DEFAULT_STR_SIZE, "%lld", counter++);
-
-    //start link
-    container_t msg = PJ_container_get(vm->name().c_str());
-    type_t type = PJ_type_get ("MSG_VM_LINK", PJ_type_get_root());
-    new_pajeStartLink (MSG_get_clock(), PJ_container_get_root(), type, msg, "M", key);
-
-    //destroy existing container of this vm
-    container_t existing_container = PJ_container_get(vm->name().c_str());
-    PJ_container_remove_from_parent (existing_container);
-    PJ_container_free(existing_container);
-
-    //create new container on the new_host location
-    PJ_container_new(vm->name().c_str(), INSTR_MSG_VM, PJ_container_get(sg_host_get_name(new_host)));
-
-    //end link
-    msg  = PJ_container_get(vm->name().c_str());
-    type = PJ_type_get ("MSG_VM_LINK", PJ_type_get_root());
-    new_pajeEndLink (MSG_get_clock(), PJ_container_get_root(), type, msg, "M", key);
-  }
-}
-
-void TRACE_msg_vm_start(msg_vm_t vm)
-{
-  if (TRACE_msg_vm_is_enabled()){
-    container_t vm_container = PJ_container_get(vm->name().c_str());
-    type_t type = PJ_type_get ("MSG_VM_STATE", vm_container->type);
-    val_t value = PJ_value_get_or_new ("start", "0 0 1", type); //start is blue
-    new_pajePushState (MSG_get_clock(), vm_container, type, value);
-  }
-
-}
-
-void TRACE_msg_vm_kill(msg_vm_t vm) {
-  if (TRACE_msg_vm_is_enabled()) {
-    //kill means that this vm no longer exists, let's destroy it
-    container_t process = PJ_container_get(vm->name().c_str());
-    PJ_container_remove_from_parent (process);
-    PJ_container_free (process);
-  }
-}
-
-void TRACE_msg_vm_suspend(msg_vm_t vm)
-{
-  if (TRACE_msg_vm_is_enabled()){
-    container_t vm_container = PJ_container_get(vm->name().c_str());
-    type_t type = PJ_type_get ("MSG_VM_STATE", vm_container->type);
-    val_t value = PJ_value_get_or_new ("suspend", "1 0 0", type); //suspend is red
-    new_pajePushState (MSG_get_clock(), vm_container, type, value);
-  }
-}
-
-void TRACE_msg_vm_resume(msg_vm_t vm)
-{
-  if (TRACE_msg_vm_is_enabled()){
-    container_t vm_container = PJ_container_get(vm->name().c_str());
-    type_t type = PJ_type_get ("MSG_VM_STATE", vm_container->type);
-    new_pajePopState (MSG_get_clock(), vm_container, type);
-  }
-}
-
-void TRACE_msg_vm_save(msg_vm_t vm)
-{
-  if (TRACE_msg_vm_is_enabled()){
-    container_t vm_container = PJ_container_get(vm->name().c_str());
-    type_t type = PJ_type_get ("MSG_VM_STATE", vm_container->type);
-    val_t value = PJ_value_get_or_new ("save", "0 1 0", type); //save is green
-    new_pajePushState (MSG_get_clock(), vm_container, type, value);
-  }
-}
-
-void TRACE_msg_vm_restore(msg_vm_t vm)
-{
-  if (TRACE_msg_vm_is_enabled()){
-    container_t vm_container = PJ_container_get(vm->name().c_str());
-    type_t type = PJ_type_get ("MSG_VM_STATE", vm_container->type);
-    new_pajePopState (MSG_get_clock(), vm_container, type);
-  }
-}
-
-// that's the end, let's destroy it
-void TRACE_msg_vm_end(msg_vm_t vm)
-{
-  if (TRACE_msg_vm_is_enabled()) {
-    container_t container = PJ_container_get(vm->name().c_str());
-    PJ_container_remove_from_parent (container);
-    PJ_container_free (container);
-  }
-}
index b094543..fa1262c 100644 (file)
@@ -170,16 +170,6 @@ XBT_PRIVATE void TRACE_msg_process_resume(msg_process_t process);
 XBT_PRIVATE void TRACE_msg_process_sleep_in(msg_process_t process);   //called from msg/gos.c
 XBT_PRIVATE void TRACE_msg_process_sleep_out(msg_process_t process);
 
 XBT_PRIVATE void TRACE_msg_process_sleep_in(msg_process_t process);   //called from msg/gos.c
 XBT_PRIVATE void TRACE_msg_process_sleep_out(msg_process_t process);
 
-/* declaration of instrumentation functions from instr_msg_vm.c */
-XBT_PRIVATE void TRACE_msg_vm_change_host(msg_vm_t vm, msg_host_t old_host, msg_host_t new_host);
-XBT_PRIVATE void TRACE_msg_vm_start(msg_vm_t vm);
-XBT_PRIVATE void TRACE_msg_vm_kill(msg_vm_t process);
-XBT_PRIVATE void TRACE_msg_vm_suspend(msg_vm_t vm);
-XBT_PRIVATE void TRACE_msg_vm_resume(msg_vm_t vm);
-XBT_PRIVATE void TRACE_msg_vm_save(msg_vm_t vm);
-XBT_PRIVATE void TRACE_msg_vm_restore(msg_vm_t vm);
-XBT_PRIVATE void TRACE_msg_vm_end(msg_vm_t vm);
-
 SG_END_DECL()
 
 XBT_PUBLIC(msg_process_t) MSG_process_create_with_environment(
 SG_END_DECL()
 
 XBT_PUBLIC(msg_process_t) MSG_process_create_with_environment(
index 5eb5d1b..4015439 100644 (file)
@@ -185,7 +185,11 @@ void MSG_vm_destroy(msg_vm_t vm)
     vm->destroy();
   });
 
     vm->destroy();
   });
 
-  TRACE_msg_vm_end(vm);
+  if (TRACE_msg_vm_is_enabled()) {
+    container_t container = PJ_container_get(vm->name().c_str());
+    PJ_container_remove_from_parent(container);
+    PJ_container_free(container);
+  }
 }
 
 /** @brief Start a vm (i.e., boot the guest operating system)
 }
 
 /** @brief Start a vm (i.e., boot the guest operating system)
@@ -197,7 +201,12 @@ void MSG_vm_start(msg_vm_t vm)
 {
   simcall_vm_start(vm);
 
 {
   simcall_vm_start(vm);
 
-  TRACE_msg_vm_start(vm);
+  if (TRACE_msg_vm_is_enabled()) {
+    container_t vm_container = PJ_container_get(vm->name().c_str());
+    type_t type              = PJ_type_get("MSG_VM_STATE", vm_container->type);
+    val_t value              = PJ_value_get_or_new("start", "0 0 1", type); // start is blue
+    new_pajePushState(MSG_get_clock(), vm_container, type, value);
+  }
 }
 
 /** @brief Immediately kills all processes within the given VM. Any memory that they allocated will be leaked.
 }
 
 /** @brief Immediately kills all processes within the given VM. Any memory that they allocated will be leaked.
@@ -208,11 +217,9 @@ void MSG_vm_start(msg_vm_t vm)
  */
 void MSG_vm_shutdown(msg_vm_t vm)
 {
  */
 void MSG_vm_shutdown(msg_vm_t vm)
 {
-  /* msg_vm_t equals to msg_host_t */
   simcall_vm_shutdown(vm);
   MSG_process_sleep(0.); // Make sure that the processes in the VM are killed in this scheduling round before processing
                          // (eg with the VM destroy)
   simcall_vm_shutdown(vm);
   MSG_process_sleep(0.); // Make sure that the processes in the VM are killed in this scheduling round before processing
                          // (eg with the VM destroy)
-  // TRACE_msg_vm_(vm);
 }
 
 /* We have two mailboxes. mbox is used to transfer migration data between source and destination PMs. mbox_ctl is used
 }
 
 /* We have two mailboxes. mbox is used to transfer migration data between source and destination PMs. mbox_ctl is used
@@ -338,7 +345,30 @@ static int migration_rx_fun(int argc, char *argv[])
    vm->pimpl_vm_->isMigrating = false;
    XBT_DEBUG("VM(%s) moved from PM(%s) to PM(%s)", sg_host_get_name(ms->vm), sg_host_get_name(ms->src_pm),
              sg_host_get_name(ms->dst_pm));
    vm->pimpl_vm_->isMigrating = false;
    XBT_DEBUG("VM(%s) moved from PM(%s) to PM(%s)", sg_host_get_name(ms->vm), sg_host_get_name(ms->src_pm),
              sg_host_get_name(ms->dst_pm));
-   TRACE_msg_vm_change_host(ms->vm, ms->src_pm, ms->dst_pm);
+
+   if (TRACE_msg_vm_is_enabled()) {
+     static long long int counter = 0;
+     char key[INSTR_DEFAULT_STR_SIZE];
+     snprintf(key, INSTR_DEFAULT_STR_SIZE, "%lld", counter++);
+
+     // start link
+     container_t msg = PJ_container_get(vm->name().c_str());
+     type_t type     = PJ_type_get("MSG_VM_LINK", PJ_type_get_root());
+     new_pajeStartLink(MSG_get_clock(), PJ_container_get_root(), type, msg, "M", key);
+
+     // destroy existing container of this vm
+     container_t existing_container = PJ_container_get(vm->name().c_str());
+     PJ_container_remove_from_parent(existing_container);
+     PJ_container_free(existing_container);
+
+     // create new container on the new_host location
+     PJ_container_new(vm->name().c_str(), INSTR_MSG_VM, PJ_container_get(sg_host_get_name(ms->dst_pm)));
+
+     // end link
+     msg  = PJ_container_get(vm->name().c_str());
+     type = PJ_type_get("MSG_VM_LINK", PJ_type_get_root());
+     new_pajeEndLink(MSG_get_clock(), PJ_container_get_root(), type, msg, "M", key);
+   }
   }
   // Inform the SRC that the migration has been correctly performed
   {
   }
   // Inform the SRC that the migration has been correctly performed
   {
@@ -893,7 +923,12 @@ void MSG_vm_suspend(msg_vm_t vm)
 
   XBT_DEBUG("vm_suspend done");
 
 
   XBT_DEBUG("vm_suspend done");
 
-  TRACE_msg_vm_suspend(vm);
+  if (TRACE_msg_vm_is_enabled()) {
+    container_t vm_container = PJ_container_get(vm->name().c_str());
+    type_t type              = PJ_type_get("MSG_VM_STATE", vm_container->type);
+    val_t value              = PJ_value_get_or_new("suspend", "1 0 0", type); // suspend is red
+    new_pajePushState(MSG_get_clock(), vm_container, type, value);
+  }
 }
 
 /** @brief Resume the execution of the VM. All processes on the VM run again.
 }
 
 /** @brief Resume the execution of the VM. All processes on the VM run again.
@@ -905,7 +940,11 @@ void MSG_vm_resume(msg_vm_t vm)
 {
   simcall_vm_resume(vm);
 
 {
   simcall_vm_resume(vm);
 
-  TRACE_msg_vm_resume(vm);
+  if (TRACE_msg_vm_is_enabled()) {
+    container_t vm_container = PJ_container_get(vm->name().c_str());
+    type_t type              = PJ_type_get("MSG_VM_STATE", vm_container->type);
+    new_pajePopState(MSG_get_clock(), vm_container, type);
+  }
 }
 
 
 }
 
 
@@ -924,7 +963,13 @@ void MSG_vm_save(msg_vm_t vm)
     THROWF(vm_error, 0, "VM(%s) is migrating", sg_host_get_name(vm));
 
   simcall_vm_save(vm);
     THROWF(vm_error, 0, "VM(%s) is migrating", sg_host_get_name(vm));
 
   simcall_vm_save(vm);
-  TRACE_msg_vm_save(vm);
+
+  if (TRACE_msg_vm_is_enabled()) {
+    container_t vm_container = PJ_container_get(vm->name().c_str());
+    type_t type              = PJ_type_get("MSG_VM_STATE", vm_container->type);
+    val_t value              = PJ_value_get_or_new("save", "0 1 0", type); // save is green
+    new_pajePushState(MSG_get_clock(), vm_container, type, value);
+  }
 }
 
 /** @brief Restore the execution of the VM. All processes on the VM run again.
 }
 
 /** @brief Restore the execution of the VM. All processes on the VM run again.
@@ -937,7 +982,11 @@ void MSG_vm_restore(msg_vm_t vm)
 {
   simcall_vm_restore(vm);
 
 {
   simcall_vm_restore(vm);
 
-  TRACE_msg_vm_restore(vm);
+  if (TRACE_msg_vm_is_enabled()) {
+    container_t vm_container = PJ_container_get(vm->name().c_str());
+    type_t type              = PJ_type_get("MSG_VM_STATE", vm_container->type);
+    new_pajePopState(MSG_get_clock(), vm_container, type);
+  }
 }
 
 /** @brief Get the physical host of a given VM.
 }
 
 /** @brief Get the physical host of a given VM.
index 6362a34..0f076b4 100644 (file)
@@ -137,7 +137,6 @@ static void xbt_log_connect_categories(void)
   XBT_LOG_CONNECT(instr_config);
   XBT_LOG_CONNECT(instr_msg);
   XBT_LOG_CONNECT(instr_msg_process);
   XBT_LOG_CONNECT(instr_config);
   XBT_LOG_CONNECT(instr_msg);
   XBT_LOG_CONNECT(instr_msg_process);
-  XBT_LOG_CONNECT(instr_msg_vm);
   XBT_LOG_CONNECT(instr_paje_containers);
   XBT_LOG_CONNECT(instr_paje_header);
   XBT_LOG_CONNECT(instr_paje_trace);
   XBT_LOG_CONNECT(instr_paje_containers);
   XBT_LOG_CONNECT(instr_paje_header);
   XBT_LOG_CONNECT(instr_paje_trace);
index 87152e4..f732463 100644 (file)
@@ -408,7 +408,6 @@ set(SIMGRID_SRC
 set(MSG_SRC
   src/msg/instr_msg_process.cpp
   src/msg/instr_msg_task.cpp
 set(MSG_SRC
   src/msg/instr_msg_process.cpp
   src/msg/instr_msg_task.cpp
-  src/msg/instr_msg_vm.cpp
   src/msg/msg_actions.cpp
   src/msg/msg_deployment.cpp
   src/msg/msg_environment.cpp
   src/msg/msg_actions.cpp
   src/msg/msg_deployment.cpp
   src/msg/msg_environment.cpp