X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4f6f4197d794403edec36db6fb1c0d1987bdda9d..d206d98b5c7c80f0614239ec37a21ebf7c69faa6:/src/simix/popping_bodies.c diff --git a/src/simix/popping_bodies.c b/src/simix/popping_bodies.c index 7b4a39c15a..4384ea1a8f 100644 --- a/src/simix/popping_bodies.c +++ b/src/simix/popping_bodies.c @@ -14,31 +14,10 @@ */ #include "smx_private.h" -#include "mc/mc_interface.h" +#include "mc/mc_forward.h" #include "xbt/ex.h" -inline static smx_host_t simcall_BODY_host_get_by_name(const char* name) { - smx_process_t self = SIMIX_process_self(); - - /* Go to that function to follow the code flow through the simcall barrier */ - if (0) SIMIX_host_get_by_name(name); - /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */ - - self->simcall.call = SIMCALL_HOST_GET_BY_NAME; - memset(&self->simcall.result, 0, sizeof(self->simcall.result)); - memset(self->simcall.args, 0, sizeof(self->simcall.args)); - self->simcall.args[0].cc = (const char*) name; - if (self != simix_global->maestro_process) { - XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name, - SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call); - SIMIX_process_yield(self); - } else { - SIMIX_simcall_handle(&self->simcall, 0); - } - return self->simcall.result.dp; - } - -inline static const char* simcall_BODY_host_get_name(smx_host_t host) { +inline static const char* simcall_BODY_host_get_name(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -59,7 +38,7 @@ inline static const char* simcall_BODY_host_get_name(smx_host_t host) { return self->simcall.result.cc; } -inline static void simcall_BODY_host_on(smx_host_t host) { +inline static void simcall_BODY_host_on(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -80,7 +59,7 @@ inline static void simcall_BODY_host_on(smx_host_t host) { } -inline static void simcall_BODY_host_off(smx_host_t host) { +inline static void simcall_BODY_host_off(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -101,7 +80,7 @@ inline static void simcall_BODY_host_off(smx_host_t host) { } -inline static xbt_dict_t simcall_BODY_host_get_properties(smx_host_t host) { +inline static xbt_dict_t simcall_BODY_host_get_properties(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -122,7 +101,7 @@ inline static xbt_dict_t simcall_BODY_host_get_properties(smx_host_t host) { return self->simcall.result.dp; } -inline static int simcall_BODY_host_get_core(smx_host_t host) { +inline static int simcall_BODY_host_get_core(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -143,7 +122,7 @@ inline static int simcall_BODY_host_get_core(smx_host_t host) { return self->simcall.result.i; } -inline static xbt_swag_t simcall_BODY_host_get_process_list(smx_host_t host) { +inline static xbt_swag_t simcall_BODY_host_get_process_list(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -164,7 +143,7 @@ inline static xbt_swag_t simcall_BODY_host_get_process_list(smx_host_t host) { return self->simcall.result.dp; } -inline static double simcall_BODY_host_get_speed(smx_host_t host) { +inline static double simcall_BODY_host_get_speed(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -185,7 +164,7 @@ inline static double simcall_BODY_host_get_speed(smx_host_t host) { return self->simcall.result.d; } -inline static double simcall_BODY_host_get_available_speed(smx_host_t host) { +inline static double simcall_BODY_host_get_available_speed(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -206,7 +185,7 @@ inline static double simcall_BODY_host_get_available_speed(smx_host_t host) { return self->simcall.result.d; } -inline static int simcall_BODY_host_get_state(smx_host_t host) { +inline static int simcall_BODY_host_get_state(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -227,7 +206,7 @@ inline static int simcall_BODY_host_get_state(smx_host_t host) { return self->simcall.result.i; } -inline static double simcall_BODY_host_get_current_power_peak(smx_host_t host) { +inline static double simcall_BODY_host_get_current_power_peak(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -248,7 +227,7 @@ inline static double simcall_BODY_host_get_current_power_peak(smx_host_t host) { return self->simcall.result.d; } -inline static double simcall_BODY_host_get_power_peak_at(smx_host_t host, int pstate_index) { +inline static double simcall_BODY_host_get_power_peak_at(sg_host_t host, int pstate_index) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -270,7 +249,7 @@ inline static double simcall_BODY_host_get_power_peak_at(smx_host_t host, int ps return self->simcall.result.d; } -inline static int simcall_BODY_host_get_nb_pstates(smx_host_t host) { +inline static int simcall_BODY_host_get_nb_pstates(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -291,14 +270,58 @@ inline static int simcall_BODY_host_get_nb_pstates(smx_host_t host) { return self->simcall.result.i; } -inline static void simcall_BODY_host_set_power_peak_at(smx_host_t host, int pstate_index) { +inline static double simcall_BODY_host_get_wattmin_at(sg_host_t host, int pstate_index) { + smx_process_t self = SIMIX_process_self(); + + /* Go to that function to follow the code flow through the simcall barrier */ + if (0) SIMIX_host_get_wattmin_at(host, pstate_index); + /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */ + + self->simcall.call = SIMCALL_HOST_GET_WATTMIN_AT; + memset(&self->simcall.result, 0, sizeof(self->simcall.result)); + memset(self->simcall.args, 0, sizeof(self->simcall.args)); + self->simcall.args[0].dp = (void*) host; + self->simcall.args[1].i = (int) pstate_index; + if (self != simix_global->maestro_process) { + XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name, + SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call); + SIMIX_process_yield(self); + } else { + SIMIX_simcall_handle(&self->simcall, 0); + } + return self->simcall.result.d; + } + +inline static double simcall_BODY_host_get_wattmax_at(sg_host_t host, int pstate_index) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ - if (0) SIMIX_host_set_power_peak_at(host, pstate_index); + if (0) SIMIX_host_get_wattmax_at(host, pstate_index); /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */ - self->simcall.call = SIMCALL_HOST_SET_POWER_PEAK_AT; + self->simcall.call = SIMCALL_HOST_GET_WATTMAX_AT; + memset(&self->simcall.result, 0, sizeof(self->simcall.result)); + memset(self->simcall.args, 0, sizeof(self->simcall.args)); + self->simcall.args[0].dp = (void*) host; + self->simcall.args[1].i = (int) pstate_index; + if (self != simix_global->maestro_process) { + XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name, + SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call); + SIMIX_process_yield(self); + } else { + SIMIX_simcall_handle(&self->simcall, 0); + } + return self->simcall.result.d; + } + +inline static void simcall_BODY_host_set_pstate(sg_host_t host, int pstate_index) { + smx_process_t self = SIMIX_process_self(); + + /* Go to that function to follow the code flow through the simcall barrier */ + if (0) SIMIX_host_set_pstate(host, pstate_index); + /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */ + + self->simcall.call = SIMCALL_HOST_SET_PSTATE; memset(&self->simcall.result, 0, sizeof(self->simcall.result)); memset(self->simcall.args, 0, sizeof(self->simcall.args)); self->simcall.args[0].dp = (void*) host; @@ -313,7 +336,28 @@ inline static void simcall_BODY_host_set_power_peak_at(smx_host_t host, int psta } -inline static double simcall_BODY_host_get_consumed_energy(smx_host_t host) { +inline static int simcall_BODY_host_get_pstate(sg_host_t host) { + smx_process_t self = SIMIX_process_self(); + + /* Go to that function to follow the code flow through the simcall barrier */ + if (0) SIMIX_host_get_pstate(host); + /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */ + + self->simcall.call = SIMCALL_HOST_GET_PSTATE; + memset(&self->simcall.result, 0, sizeof(self->simcall.result)); + memset(self->simcall.args, 0, sizeof(self->simcall.args)); + self->simcall.args[0].dp = (void*) host; + if (self != simix_global->maestro_process) { + XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name, + SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call); + SIMIX_process_yield(self); + } else { + SIMIX_simcall_handle(&self->simcall, 0); + } + return self->simcall.result.i; + } + +inline static double simcall_BODY_host_get_consumed_energy(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -334,7 +378,7 @@ inline static double simcall_BODY_host_get_consumed_energy(smx_host_t host) { return self->simcall.result.d; } -inline static smx_synchro_t simcall_BODY_host_execute(const char* name, smx_host_t host, double flops_amount, double priority, double bound, unsigned long affinity_mask) { +inline static smx_synchro_t simcall_BODY_host_execute(const char* name, sg_host_t host, double flops_amount, double priority, double bound, unsigned long affinity_mask) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -360,7 +404,7 @@ inline static smx_synchro_t simcall_BODY_host_execute(const char* name, smx_host return self->simcall.result.dp; } -inline static smx_synchro_t simcall_BODY_host_parallel_execute(const char* name, int host_nb, smx_host_t* host_list, double* flops_amount, double* bytes_amount, double amount, double rate) { +inline static smx_synchro_t simcall_BODY_host_parallel_execute(const char* name, int host_nb, sg_host_t* host_list, double* flops_amount, double* bytes_amount, double amount, double rate) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -515,7 +559,7 @@ inline static void simcall_BODY_host_execution_set_bound(smx_synchro_t execution } -inline static void simcall_BODY_host_execution_set_affinity(smx_synchro_t execution, smx_host_t ws, unsigned long mask) { +inline static void simcall_BODY_host_execution_set_affinity(smx_synchro_t execution, sg_host_t ws, unsigned long mask) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -559,7 +603,7 @@ inline static int simcall_BODY_host_execution_wait(smx_synchro_t execution) { return self->simcall.result.i; } -inline static xbt_dict_t simcall_BODY_host_get_mounted_storage_list(smx_host_t host) { +inline static xbt_dict_t simcall_BODY_host_get_mounted_storage_list(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -580,7 +624,7 @@ inline static xbt_dict_t simcall_BODY_host_get_mounted_storage_list(smx_host_t h return self->simcall.result.dp; } -inline static xbt_dynar_t simcall_BODY_host_get_attached_storage_list(smx_host_t host) { +inline static xbt_dynar_t simcall_BODY_host_get_attached_storage_list(sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -601,7 +645,7 @@ inline static xbt_dynar_t simcall_BODY_host_get_attached_storage_list(smx_host_t return self->simcall.result.dp; } -inline static void simcall_BODY_host_get_params(smx_host_t ind_vm, ws_params_t params) { +inline static void simcall_BODY_host_get_params(sg_host_t ind_vm, vm_params_t params) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -623,7 +667,7 @@ inline static void simcall_BODY_host_get_params(smx_host_t ind_vm, ws_params_t p } -inline static void simcall_BODY_host_set_params(smx_host_t ind_vm, ws_params_t params) { +inline static void simcall_BODY_host_set_params(sg_host_t ind_vm, vm_params_t params) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -645,7 +689,7 @@ inline static void simcall_BODY_host_set_params(smx_host_t ind_vm, ws_params_t p } -inline static smx_host_t simcall_BODY_vm_create(const char* name, smx_host_t ind_pm) { +inline static sg_host_t simcall_BODY_vm_create(const char* name, sg_host_t ind_pm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -667,7 +711,7 @@ inline static smx_host_t simcall_BODY_vm_create(const char* name, smx_host_t ind return self->simcall.result.dp; } -inline static void simcall_BODY_vm_start(smx_host_t ind_vm) { +inline static void simcall_BODY_vm_start(sg_host_t ind_vm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -688,7 +732,7 @@ inline static void simcall_BODY_vm_start(smx_host_t ind_vm) { } -inline static int simcall_BODY_vm_get_state(smx_host_t ind_vm) { +inline static int simcall_BODY_vm_get_state(sg_host_t ind_vm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -709,7 +753,7 @@ inline static int simcall_BODY_vm_get_state(smx_host_t ind_vm) { return self->simcall.result.i; } -inline static void simcall_BODY_vm_migrate(smx_host_t ind_vm, smx_host_t ind_dst_pm) { +inline static void simcall_BODY_vm_migrate(sg_host_t ind_vm, sg_host_t ind_dst_pm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -731,7 +775,7 @@ inline static void simcall_BODY_vm_migrate(smx_host_t ind_vm, smx_host_t ind_dst } -inline static void* simcall_BODY_vm_get_pm(smx_host_t ind_vm) { +inline static void* simcall_BODY_vm_get_pm(sg_host_t ind_vm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -752,7 +796,7 @@ inline static void* simcall_BODY_vm_get_pm(smx_host_t ind_vm) { return self->simcall.result.dp; } -inline static void simcall_BODY_vm_set_bound(smx_host_t ind_vm, double bound) { +inline static void simcall_BODY_vm_set_bound(sg_host_t ind_vm, double bound) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -774,7 +818,7 @@ inline static void simcall_BODY_vm_set_bound(smx_host_t ind_vm, double bound) { } -inline static void simcall_BODY_vm_set_affinity(smx_host_t ind_vm, smx_host_t ind_pm, unsigned long mask) { +inline static void simcall_BODY_vm_set_affinity(sg_host_t ind_vm, sg_host_t ind_pm, unsigned long mask) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -797,7 +841,7 @@ inline static void simcall_BODY_vm_set_affinity(smx_host_t ind_vm, smx_host_t in } -inline static void simcall_BODY_vm_destroy(smx_host_t ind_vm) { +inline static void simcall_BODY_vm_destroy(sg_host_t ind_vm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -818,7 +862,7 @@ inline static void simcall_BODY_vm_destroy(smx_host_t ind_vm) { } -inline static void simcall_BODY_vm_suspend(smx_host_t ind_vm) { +inline static void simcall_BODY_vm_suspend(sg_host_t ind_vm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -839,7 +883,7 @@ inline static void simcall_BODY_vm_suspend(smx_host_t ind_vm) { } -inline static void simcall_BODY_vm_resume(smx_host_t ind_vm) { +inline static void simcall_BODY_vm_resume(sg_host_t ind_vm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -860,7 +904,7 @@ inline static void simcall_BODY_vm_resume(smx_host_t ind_vm) { } -inline static void simcall_BODY_vm_shutdown(smx_host_t ind_vm) { +inline static void simcall_BODY_vm_shutdown(sg_host_t ind_vm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -881,7 +925,7 @@ inline static void simcall_BODY_vm_shutdown(smx_host_t ind_vm) { } -inline static void simcall_BODY_vm_save(smx_host_t ind_vm) { +inline static void simcall_BODY_vm_save(sg_host_t ind_vm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -902,7 +946,7 @@ inline static void simcall_BODY_vm_save(smx_host_t ind_vm) { } -inline static void simcall_BODY_vm_restore(smx_host_t ind_vm) { +inline static void simcall_BODY_vm_restore(sg_host_t ind_vm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -923,7 +967,7 @@ inline static void simcall_BODY_vm_restore(smx_host_t ind_vm) { } -inline static void simcall_BODY_vm_migratefrom_resumeto(smx_host_t vm, smx_host_t src_pm, smx_host_t dst_pm) { +inline static void simcall_BODY_vm_migratefrom_resumeto(sg_host_t vm, sg_host_t src_pm, sg_host_t dst_pm) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -1039,7 +1083,7 @@ inline static void simcall_BODY_process_cleanup(smx_process_t process) { } -inline static void simcall_BODY_process_change_host(smx_process_t process, smx_host_t dest) { +inline static void simcall_BODY_process_change_host(smx_process_t process, sg_host_t dest) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -1209,7 +1253,7 @@ inline static void simcall_BODY_process_set_data(smx_process_t process, void* da } -inline static smx_host_t simcall_BODY_process_get_host(smx_process_t process) { +inline static sg_host_t simcall_BODY_process_get_host(smx_process_t process) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -1444,7 +1488,7 @@ inline static void simcall_BODY_rdv_destroy(smx_rdv_t rdv) { } -inline static unsigned int simcall_BODY_rdv_comm_count_by_host(smx_rdv_t rdv, smx_host_t host) { +inline static unsigned int simcall_BODY_rdv_comm_count_by_host(smx_rdv_t rdv, sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -2286,7 +2330,7 @@ inline static int simcall_BODY_sem_get_capacity(smx_sem_t sem) { return self->simcall.result.i; } -inline static sg_size_t simcall_BODY_file_read(smx_file_t fd, sg_size_t size, smx_host_t host) { +inline static sg_size_t simcall_BODY_file_read(smx_file_t fd, sg_size_t size, sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -2309,7 +2353,7 @@ inline static sg_size_t simcall_BODY_file_read(smx_file_t fd, sg_size_t size, sm return self->simcall.result.sgsz; } -inline static sg_size_t simcall_BODY_file_write(smx_file_t fd, sg_size_t size, smx_host_t host) { +inline static sg_size_t simcall_BODY_file_write(smx_file_t fd, sg_size_t size, sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -2332,7 +2376,7 @@ inline static sg_size_t simcall_BODY_file_write(smx_file_t fd, sg_size_t size, s return self->simcall.result.sgsz; } -inline static smx_file_t simcall_BODY_file_open(const char* fullpath, smx_host_t host) { +inline static smx_file_t simcall_BODY_file_open(const char* fullpath, sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -2354,7 +2398,7 @@ inline static smx_file_t simcall_BODY_file_open(const char* fullpath, smx_host_t return self->simcall.result.dp; } -inline static int simcall_BODY_file_close(smx_file_t fd, smx_host_t host) { +inline static int simcall_BODY_file_close(smx_file_t fd, sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */ @@ -2376,7 +2420,7 @@ inline static int simcall_BODY_file_close(smx_file_t fd, smx_host_t host) { return self->simcall.result.i; } -inline static int simcall_BODY_file_unlink(smx_file_t fd, smx_host_t host) { +inline static int simcall_BODY_file_unlink(smx_file_t fd, sg_host_t host) { smx_process_t self = SIMIX_process_self(); /* Go to that function to follow the code flow through the simcall barrier */