SimGrid  3.13
Versatile Simulation of Distributed Systems
smx_host_private.h File Reference
#include <xbt/base.h>
#include "simgrid/simix.h"
#include "popping_private.h"

Classes

struct  s_smx_host_priv
 Host datatype from SIMIX POV. More...
 

Typedefs

typedef struct s_smx_host_priv s_smx_host_priv_t
 Host datatype from SIMIX POV. More...
 

Functions

XBT_PRIVATE void _SIMIX_host_free_process_arg (void *)
 
XBT_PRIVATE void SIMIX_host_create (sg_host_t host)
 Internal function to create a SIMIX host. More...
 
XBT_PRIVATE void SIMIX_host_destroy (void *host)
 Internal function to destroy a SIMIX host. More...
 
XBT_PRIVATE void SIMIX_host_add_auto_restart_process (sg_host_t host, const char *name, xbt_main_func_t code, void *data, const char *hostname, double kill_time, int argc, char **argv, xbt_dict_t properties, int auto_restart)
 Add a process to the list of the processes that the host will restart when it comes back This function add a process to the list of the processes that will be restarted when the host comes back. More...
 
XBT_PRIVATE void SIMIX_host_restart_processes (sg_host_t host)
 
XBT_PRIVATE void SIMIX_host_autorestart (sg_host_t host)
 Restart the list of processes that have been registered to the host. More...
 
XBT_PRIVATE smx_synchro_t SIMIX_execution_start (smx_process_t issuer, const char *name, double flops_amount, double priority, double bound, unsigned long affinity_mask)
 
XBT_PRIVATE smx_synchro_t SIMIX_execution_parallel_start (const char *name, int host_nb, sg_host_t *host_list, double *flops_amount, double *bytes_amount, double amount, double rate)
 
XBT_PRIVATE void SIMIX_execution_destroy (smx_synchro_t synchro)
 
XBT_PRIVATE void SIMIX_execution_cancel (smx_synchro_t synchro)
 
XBT_PRIVATE double SIMIX_execution_get_remains (smx_synchro_t synchro)
 
XBT_PRIVATE e_smx_state_t SIMIX_execution_get_state (smx_synchro_t synchro)
 
XBT_PRIVATE void SIMIX_execution_set_priority (smx_synchro_t synchro, double priority)
 
XBT_PRIVATE void SIMIX_execution_set_bound (smx_synchro_t synchro, double bound)
 
XBT_PRIVATE void SIMIX_execution_set_affinity (smx_synchro_t synchro, sg_host_t host, unsigned long mask)
 
XBT_PRIVATE void SIMIX_execution_suspend (smx_synchro_t synchro)
 
XBT_PRIVATE void SIMIX_execution_resume (smx_synchro_t synchro)
 
XBT_PRIVATE void SIMIX_post_host_execute (smx_synchro_t synchro)
 
XBT_PRIVATE void SIMIX_set_category (smx_synchro_t synchro, const char *category)
 
XBT_PRIVATE sg_host_t SIMIX_vm_create (const char *name, sg_host_t ind_phys_host)
 Internal function to create a SIMIX host. More...
 
XBT_PRIVATE void SIMIX_vm_destroy (sg_host_t ind_vm)
 Function to destroy a SIMIX VM host. More...
 
XBT_PRIVATE void SIMIX_vm_resume (sg_host_t ind_vm, smx_process_t issuer)
 Function to resume a SIMIX VM host. More...
 
XBT_PRIVATE void SIMIX_vm_suspend (sg_host_t ind_vm, smx_process_t issuer)
 Function to suspend a SIMIX VM host. More...
 
XBT_PRIVATE void SIMIX_vm_save (sg_host_t ind_vm, smx_process_t issuer)
 Function to save a SIMIX VM host. More...
 
XBT_PRIVATE void SIMIX_vm_restore (sg_host_t ind_vm, smx_process_t issuer)
 Function to restore a SIMIX VM host. More...
 
XBT_PRIVATE void SIMIX_vm_start (sg_host_t ind_vm)
 
XBT_PRIVATE void SIMIX_vm_shutdown (sg_host_t ind_vm, smx_process_t issuer)
 Function to shutdown a SIMIX VM host. More...
 
XBT_PRIVATE e_surf_vm_state_t SIMIX_vm_get_state (sg_host_t ind_vm)
 
XBT_PRIVATE void SIMIX_vm_migrate (sg_host_t ind_vm, sg_host_t ind_dst_pm)
 Function to migrate a SIMIX VM host. More...
 
XBT_PRIVATE voidSIMIX_vm_get_pm (sg_host_t ind_vm)
 Function to get the physical host of the given SIMIX VM host. More...
 
XBT_PRIVATE void SIMIX_vm_set_bound (sg_host_t ind_vm, double bound)
 Function to set the CPU bound of the given SIMIX VM host. More...
 
XBT_PRIVATE void SIMIX_vm_set_affinity (sg_host_t ind_vm, sg_host_t ind_pm, unsigned long mask)
 Function to set the CPU affinity of the given SIMIX VM host. More...
 
XBT_PRIVATE void SIMIX_vm_migratefrom_resumeto (sg_host_t vm, sg_host_t src_pm, sg_host_t dst_pm)
 Encompassing simcall to prevent the removal of the src or the dst node at the end of a VM migration The simcall actually invokes the following calls: simcall_vm_set_affinity(vm, src_pm, 0); simcall_vm_migrate(vm, dst_pm); simcall_vm_resume(vm);. More...
 

Typedef Documentation

Host datatype from SIMIX POV.

Function Documentation

XBT_PRIVATE void _SIMIX_host_free_process_arg ( void )
XBT_PRIVATE void SIMIX_host_create ( sg_host_t  host)

Internal function to create a SIMIX host.

Parameters
namename of the host to create
XBT_PRIVATE void SIMIX_host_destroy ( void h)

Internal function to destroy a SIMIX host.

Parameters
hthe host to destroy (a sg_host_t)
XBT_PRIVATE void SIMIX_host_add_auto_restart_process ( sg_host_t  host,
const char *  name,
xbt_main_func_t  code,
void data,
const char *  hostname,
double  kill_time,
int  argc,
char **  argv,
xbt_dict_t  properties,
int  auto_restart 
)

Add a process to the list of the processes that the host will restart when it comes back This function add a process to the list of the processes that will be restarted when the host comes back.

It is expected that this function is called when the host is down. The processes will only be restarted once, meaning that you will have to register the process again to restart the process again.

XBT_PRIVATE void SIMIX_host_restart_processes ( sg_host_t  host)
XBT_PRIVATE void SIMIX_host_autorestart ( sg_host_t  host)

Restart the list of processes that have been registered to the host.

XBT_PRIVATE smx_synchro_t SIMIX_execution_start ( smx_process_t  issuer,
const char *  name,
double  flops_amount,
double  priority,
double  bound,
unsigned long  affinity_mask 
)
XBT_PRIVATE smx_synchro_t SIMIX_execution_parallel_start ( const char *  name,
int  host_nb,
sg_host_t host_list,
double *  flops_amount,
double *  bytes_amount,
double  amount,
double  rate 
)
XBT_PRIVATE void SIMIX_execution_destroy ( smx_synchro_t  synchro)
XBT_PRIVATE void SIMIX_execution_cancel ( smx_synchro_t  synchro)
XBT_PRIVATE double SIMIX_execution_get_remains ( smx_synchro_t  synchro)
XBT_PRIVATE e_smx_state_t SIMIX_execution_get_state ( smx_synchro_t  synchro)
XBT_PRIVATE void SIMIX_execution_set_priority ( smx_synchro_t  synchro,
double  priority 
)
XBT_PRIVATE void SIMIX_execution_set_bound ( smx_synchro_t  synchro,
double  bound 
)
XBT_PRIVATE void SIMIX_execution_set_affinity ( smx_synchro_t  synchro,
sg_host_t  host,
unsigned long  mask 
)
XBT_PRIVATE void SIMIX_execution_suspend ( smx_synchro_t  synchro)
XBT_PRIVATE void SIMIX_execution_resume ( smx_synchro_t  synchro)
XBT_PRIVATE void SIMIX_post_host_execute ( smx_synchro_t  synchro)
XBT_PRIVATE void SIMIX_set_category ( smx_synchro_t  synchro,
const char *  category 
)
XBT_PRIVATE sg_host_t SIMIX_vm_create ( const char *  name,
sg_host_t  ind_phys_host 
)

Internal function to create a SIMIX host.

Parameters
namename of the host to create
datasome user data (may be NULL)
XBT_PRIVATE void SIMIX_vm_destroy ( sg_host_t  ind_vm)

Function to destroy a SIMIX VM host.

Parameters
hostthe vm host to destroy (a sg_host_t)
XBT_PRIVATE void SIMIX_vm_resume ( sg_host_t  ind_vm,
smx_process_t  issuer 
)

Function to resume a SIMIX VM host.

This function restart the execution of the VM. All the processes on this VM will run again.

Parameters
hostthe vm host to resume (a sg_host_t)
XBT_PRIVATE void SIMIX_vm_suspend ( sg_host_t  ind_vm,
smx_process_t  issuer 
)

Function to suspend a SIMIX VM host.

This function stops the execution of the VM. All the processes on this VM will pause. The state of the VM is preserved on memory. We can later resume it again.

Parameters
hostthe vm host to suspend (a sg_host_t)
XBT_PRIVATE void SIMIX_vm_save ( sg_host_t  ind_vm,
smx_process_t  issuer 
)

Function to save a SIMIX VM host.

This function is the same as vm_suspend, but the state of the VM is saved to the disk, and not preserved on memory. We can later restore it again.

Parameters
hostthe vm host to save (a sg_host_t)
XBT_PRIVATE void SIMIX_vm_restore ( sg_host_t  ind_vm,
smx_process_t  issuer 
)

Function to restore a SIMIX VM host.

This function restart the execution of the VM. All the processes on this VM will run again.

Parameters
hostthe vm host to restore (a sg_host_t)
XBT_PRIVATE void SIMIX_vm_start ( sg_host_t  ind_vm)
XBT_PRIVATE void SIMIX_vm_shutdown ( sg_host_t  ind_vm,
smx_process_t  issuer 
)

Function to shutdown a SIMIX VM host.

This function powers off the VM. All the processes on this VM will be killed. But, the state of the VM is preserved on memory. We can later start it again.

Parameters
hostthe vm host to shutdown (a sg_host_t)
XBT_PRIVATE e_surf_vm_state_t SIMIX_vm_get_state ( sg_host_t  ind_vm)
XBT_PRIVATE void SIMIX_vm_migrate ( sg_host_t  ind_vm,
sg_host_t  ind_dst_pm 
)

Function to migrate a SIMIX VM host.

Parameters
hostthe vm host to migrate (a sg_host_t)
XBT_PRIVATE void* SIMIX_vm_get_pm ( sg_host_t  ind_vm)

Function to get the physical host of the given SIMIX VM host.

Parameters
hostthe vm host to get_phys_host (a sg_host_t)
XBT_PRIVATE void SIMIX_vm_set_bound ( sg_host_t  ind_vm,
double  bound 
)

Function to set the CPU bound of the given SIMIX VM host.

Parameters
hostthe vm host (a sg_host_t)
boundbound (a double)
XBT_PRIVATE void SIMIX_vm_set_affinity ( sg_host_t  ind_vm,
sg_host_t  ind_pm,
unsigned long  mask 
)

Function to set the CPU affinity of the given SIMIX VM host.

Parameters
hostthe vm host (a sg_host_t)
hostthe pm host (a sg_host_t)
maskaffinity mask (a unsigned long)
XBT_PRIVATE void SIMIX_vm_migratefrom_resumeto ( sg_host_t  vm,
sg_host_t  src_pm,
sg_host_t  dst_pm 
)

Encompassing simcall to prevent the removal of the src or the dst node at the end of a VM migration The simcall actually invokes the following calls: simcall_vm_set_affinity(vm, src_pm, 0); simcall_vm_migrate(vm, dst_pm); simcall_vm_resume(vm);.

It is called at the end of the migration_rx_fun function from msg/msg_vm.c

Parameters
vmVM to migrate
src_pmSource physical host
dst_pmtDestination physical host