From: Martin Quinson Date: Sun, 1 Nov 2015 23:39:29 +0000 (+0100) Subject: inline two more getter simcalls: host_get_core and host_get_state X-Git-Tag: v3_13~1604 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/ce9554b1de3402ba9c6b647f502e09d7ce4b6d2b?hp=fcf60a686ecafe108ddfa713e108ec55c3bd8263 inline two more getter simcalls: host_get_core and host_get_state --- diff --git a/include/simgrid/host.h b/include/simgrid/host.h index 28987a3980..46a7f53c67 100644 --- a/include/simgrid/host.h +++ b/include/simgrid/host.h @@ -64,6 +64,8 @@ XBT_PUBLIC(void) sg_host_init(void); // =========== user-level functions =============== XBT_PUBLIC(double) sg_host_get_speed(sg_host_t host); XBT_PUBLIC(double) sg_host_get_available_speed(sg_host_t host); +XBT_PUBLIC(int) sg_host_get_core(sg_host_t host); +XBT_PUBLIC(int) sg_host_get_state(sg_host_t host); SG_END_DECL() diff --git a/include/simgrid/simix.h b/include/simgrid/simix.h index a2cce64f06..e05a1565c9 100644 --- a/include/simgrid/simix.h +++ b/include/simgrid/simix.h @@ -301,11 +301,7 @@ XBT_PUBLIC(void) SIMIX_comm_finish(smx_synchro_t synchro); XBT_PUBLIC(xbt_dict_t) simcall_host_get_properties(sg_host_t host); XBT_PUBLIC(void) simcall_host_on(sg_host_t host); XBT_PUBLIC(void) simcall_host_off(sg_host_t host); -XBT_PUBLIC(int) simcall_host_get_core(sg_host_t host); XBT_PUBLIC(xbt_swag_t) simcall_host_get_process_list(sg_host_t host); -/* Two possible states, 1 - CPU ON and 0 CPU OFF */ -XBT_PUBLIC(int) simcall_host_get_state(sg_host_t host); -XBT_PUBLIC(void *) simcall_host_get_data(sg_host_t host); XBT_PUBLIC(void) simcall_host_set_data(sg_host_t host, void *data); diff --git a/src/msg/msg_host.c b/src/msg/msg_host.c index 20c3a2b82e..bd937c8d6e 100644 --- a/src/msg/msg_host.c +++ b/src/msg/msg_host.c @@ -236,7 +236,7 @@ double MSG_get_host_speed(msg_host_t h) { xbt_assert((h != NULL), "Invalid parameters"); - return (sg_host_get_speed(h)); + return sg_host_get_speed(h); } @@ -250,7 +250,7 @@ int MSG_host_get_core_number(msg_host_t host) { xbt_assert((host != NULL), "Invalid parameters"); - return (simcall_host_get_core(host)); + return sg_host_get_core(host); } /** \ingroup m_host_management @@ -318,7 +318,7 @@ void MSG_host_set_property_value(msg_host_t host, const char *name, char *value, int MSG_host_is_on(msg_host_t host) { xbt_assert((host != NULL), "Invalid parameters (host is NULL)"); - return (simcall_host_get_state(host)); + return sg_host_get_state(host); } /** @ingroup m_host_management * @@ -329,7 +329,7 @@ int MSG_host_is_on(msg_host_t host) int MSG_host_is_off(msg_host_t host) { xbt_assert((host != NULL), "Invalid parameters (host is NULL)"); - return !(simcall_host_get_state(host)); + return !(sg_host_get_state(host)); } /** \ingroup m_host_management diff --git a/src/s4u/s4u_host.cpp b/src/s4u/s4u_host.cpp index ee6ea5b7d3..30c08ab942 100644 --- a/src/s4u/s4u_host.cpp +++ b/src/s4u/s4u_host.cpp @@ -58,7 +58,7 @@ void Host::turnOff() { simcall_host_off(p_inferior); } bool Host::isOn() { - return simcall_host_get_state(p_inferior); + return sg_host_get_state(p_inferior); } boost::unordered_map &Host::mountedStorages() { diff --git a/src/simgrid/host.cpp b/src/simgrid/host.cpp index 36a9598e36..14ef0cd773 100644 --- a/src/simgrid/host.cpp +++ b/src/simgrid/host.cpp @@ -131,3 +131,13 @@ double sg_host_get_speed(sg_host_t host){ double sg_host_get_available_speed(sg_host_t host){ return surf_host_get_available_speed(host); } +/** @brief Returns the number of core of the processor. */ +int sg_host_get_core(sg_host_t host) { + return surf_host_get_core(host); +} +/** @brief Returns the state of a host. + * @return 1 if the host is active or 0 if it has crashed. + */ +int sg_host_get_state(sg_host_t host) { + return surf_host_get_state(surf_host_resource_priv(host)); +} diff --git a/src/simix/libsmx.c b/src/simix/libsmx.c index d5fba72702..ae76c1ea56 100644 --- a/src/simix/libsmx.c +++ b/src/simix/libsmx.c @@ -68,18 +68,6 @@ xbt_dict_t simcall_asr_get_properties(const char *name) return simcall_BODY_asr_get_properties(name); } -/** - * \ingroup simix_host_management - * \brief Returns the number of core of the processor. - * - * \param host A SIMIX host - * \return The number of core - */ -int simcall_host_get_core(sg_host_t host) -{ - return simcall_BODY_host_get_core(host); -} - /** * \ingroup simix_host_management * \brief Returns the list of processes attached to the host. @@ -92,19 +80,6 @@ xbt_swag_t simcall_host_get_process_list(sg_host_t host) return simcall_BODY_host_get_process_list(host); } -/** - * \ingroup simix_host_management - * \brief Returns the state of a host. - * - * Two states are possible: 1 if the host is active or 0 if it has crashed. - * \param host A SIMIX host - * \return 1 if the host is available, 0 otherwise - */ -int simcall_host_get_state(sg_host_t host) -{ - return simcall_BODY_host_get_state(host); -} - /** * \ingroup simix_host_management * \brief Returns the power peak of a host. diff --git a/src/simix/popping_accessors.h b/src/simix/popping_accessors.h index abe3f6238d..e812ee3ce0 100644 --- a/src/simix/popping_accessors.h +++ b/src/simix/popping_accessors.h @@ -41,19 +41,6 @@ static inline void simcall_host_get_properties__set__result(smx_simcall_t simcal simcall->result.dp = result; } -static inline sg_host_t simcall_host_get_core__get__host(smx_simcall_t simcall) { - return (sg_host_t) simcall->args[0].dp; -} -static inline void simcall_host_get_core__set__host(smx_simcall_t simcall, void* arg) { - simcall->args[0].dp = arg; -} -static inline int simcall_host_get_core__get__result(smx_simcall_t simcall){ - return simcall->result.i; -} -static inline void simcall_host_get_core__set__result(smx_simcall_t simcall, int result){ - simcall->result.i = result; -} - static inline sg_host_t simcall_host_get_process_list__get__host(smx_simcall_t simcall) { return (sg_host_t) simcall->args[0].dp; } @@ -67,19 +54,6 @@ static inline void simcall_host_get_process_list__set__result(smx_simcall_t simc simcall->result.dp = result; } -static inline sg_host_t simcall_host_get_state__get__host(smx_simcall_t simcall) { - return (sg_host_t) simcall->args[0].dp; -} -static inline void simcall_host_get_state__set__host(smx_simcall_t simcall, void* arg) { - simcall->args[0].dp = arg; -} -static inline int simcall_host_get_state__get__result(smx_simcall_t simcall){ - return simcall->result.i; -} -static inline void simcall_host_get_state__set__result(smx_simcall_t simcall, int result){ - simcall->result.i = result; -} - static inline sg_host_t simcall_host_get_current_power_peak__get__host(smx_simcall_t simcall) { return (sg_host_t) simcall->args[0].dp; } diff --git a/src/simix/popping_bodies.c b/src/simix/popping_bodies.c index 1279a7d8f0..a8b91c41da 100644 --- a/src/simix/popping_bodies.c +++ b/src/simix/popping_bodies.c @@ -80,27 +80,6 @@ inline static xbt_dict_t simcall_BODY_host_get_properties(sg_host_t host) { return self->simcall.result.dp; } -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 */ - if (0) SIMIX_host_get_core(host); - /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */ - - self->simcall.call = SIMCALL_HOST_GET_CORE; - 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 xbt_swag_t simcall_BODY_host_get_process_list(sg_host_t host) { smx_process_t self = SIMIX_process_self(); @@ -122,27 +101,6 @@ inline static xbt_swag_t simcall_BODY_host_get_process_list(sg_host_t host) { return self->simcall.result.dp; } -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 */ - if (0) SIMIX_host_get_state(host); - /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */ - - self->simcall.call = SIMCALL_HOST_GET_STATE; - 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_current_power_peak(sg_host_t host) { smx_process_t self = SIMIX_process_self(); diff --git a/src/simix/popping_enum.h b/src/simix/popping_enum.h index 51c05fa9cd..eba24c15e6 100644 --- a/src/simix/popping_enum.h +++ b/src/simix/popping_enum.h @@ -21,9 +21,7 @@ typedef enum { SIMCALL_HOST_ON, SIMCALL_HOST_OFF, SIMCALL_HOST_GET_PROPERTIES, - SIMCALL_HOST_GET_CORE, SIMCALL_HOST_GET_PROCESS_LIST, - SIMCALL_HOST_GET_STATE, SIMCALL_HOST_GET_CURRENT_POWER_PEAK, SIMCALL_HOST_GET_POWER_PEAK_AT, SIMCALL_HOST_GET_NB_PSTATES, diff --git a/src/simix/popping_generated.c b/src/simix/popping_generated.c index 168fa1695b..b86f5e9812 100644 --- a/src/simix/popping_generated.c +++ b/src/simix/popping_generated.c @@ -26,9 +26,7 @@ const char* simcall_names[] = { [SIMCALL_HOST_ON] = "SIMCALL_HOST_ON", [SIMCALL_HOST_OFF] = "SIMCALL_HOST_OFF", [SIMCALL_HOST_GET_PROPERTIES] = "SIMCALL_HOST_GET_PROPERTIES", - [SIMCALL_HOST_GET_CORE] = "SIMCALL_HOST_GET_CORE", [SIMCALL_HOST_GET_PROCESS_LIST] = "SIMCALL_HOST_GET_PROCESS_LIST", - [SIMCALL_HOST_GET_STATE] = "SIMCALL_HOST_GET_STATE", [SIMCALL_HOST_GET_CURRENT_POWER_PEAK] = "SIMCALL_HOST_GET_CURRENT_POWER_PEAK", [SIMCALL_HOST_GET_POWER_PEAK_AT] = "SIMCALL_HOST_GET_POWER_PEAK_AT", [SIMCALL_HOST_GET_NB_PSTATES] = "SIMCALL_HOST_GET_NB_PSTATES", @@ -180,21 +178,11 @@ case SIMCALL_HOST_GET_PROPERTIES: SIMIX_simcall_answer(simcall); break; -case SIMCALL_HOST_GET_CORE: - simcall->result.i = SIMIX_host_get_core((sg_host_t) simcall->args[0].dp); - SIMIX_simcall_answer(simcall); - break; - case SIMCALL_HOST_GET_PROCESS_LIST: simcall->result.dp = SIMIX_host_get_process_list((sg_host_t) simcall->args[0].dp); SIMIX_simcall_answer(simcall); break; -case SIMCALL_HOST_GET_STATE: - simcall->result.i = SIMIX_host_get_state((sg_host_t) simcall->args[0].dp); - SIMIX_simcall_answer(simcall); - break; - case SIMCALL_HOST_GET_CURRENT_POWER_PEAK: simcall->result.d = SIMIX_host_get_current_power_peak((sg_host_t) simcall->args[0].dp); SIMIX_simcall_answer(simcall); diff --git a/src/simix/simcalls.in b/src/simix/simcalls.in index c75f2972e7..0149fbd641 100644 --- a/src/simix/simcalls.in +++ b/src/simix/simcalls.in @@ -49,9 +49,7 @@ Proc - host_on (void) (host, void*, sg_host_t) Proc H host_off (void) (host, void*, sg_host_t) Func - host_get_properties (void*, xbt_dict_t) (host, void*, sg_host_t) -Func - host_get_core (int) (host, void*, sg_host_t) Func - host_get_process_list (void*, xbt_swag_t) (host, void*, sg_host_t) -Func - host_get_state (int) (host, void*, sg_host_t) Func - host_get_current_power_peak (double) (host, void*, sg_host_t) Func - host_get_power_peak_at (double) (host, void*, sg_host_t) (pstate_index, int) Func - host_get_nb_pstates (int) (host, void*, sg_host_t)