From 24b428983534102d3f0eea115ca629ebff077dd1 Mon Sep 17 00:00:00 2001 From: coldpeace Date: Thu, 15 Jul 2010 09:16:07 +0000 Subject: [PATCH] kill surf_cpu_model_init_bypass_im, use surf_host_create_resource, change the manner to create_resouce ... it still improvable(same for links) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8026 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/include/surf/surf.h | 27 +++++++++++++++-- src/surf/cpu_im.c | 40 ++++++------------------- src/surf/network.c | 63 ++++++++++++++++++---------------------- src/surf/surfxml_parse.c | 20 +++++++++++++ 4 files changed, 83 insertions(+), 67 deletions(-) diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index b68c617fae..3f3b60492d 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -154,7 +154,12 @@ XBT_PUBLIC_DATA(routing_t) used_routing; e_surf_resource_state_t(*get_state) (void *cpu); double (*get_speed) (void *cpu, double load); double (*get_available_speed) (void *cpu); - void (*init_bypass)(const char* id,double power); + void (*create_resource)(char *name, double power_peak, + double power_scale, + tmgr_trace_t power_trace, + e_surf_resource_state_t state_initial, + tmgr_trace_t state_trace, + xbt_dict_t cpu_properties); } s_surf_model_extension_cpu_t; /* Network model */ @@ -172,7 +177,7 @@ XBT_PUBLIC_DATA(routing_t) used_routing; double (*get_link_bandwidth) (const void *link); double (*get_link_latency) (const void *link); int (*link_shared) (const void *link); - void (*init_bypass) (const char *id,double intial_bandwidth,double initial_latency); + void (*create_resource) (char *name,double bw_initial,double lat_initial); } s_surf_model_extension_network_t; /** \brief Workstation model extension public @@ -644,6 +649,24 @@ XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_latency; XBT_PUBLIC(double) get_cpu_power(const char *power); +/*public interface to create resource bypassing the parser via cpu/network model + * + * see surfxml_parse.c + * */ +XBT_PUBLIC(void) surf_host_create_resource(char *name, double power_peak, + double power_scale, + tmgr_trace_t power_trace, + e_surf_resource_state_t state_initial, + tmgr_trace_t state_trace, + xbt_dict_t cpu_properties); + +/** + * create link resource + * see network.c + * FIXME : shoudl have the same prototype as net_link_new + */ +XBT_PUBLIC(void) surf_link_create_resouce(char *name, + double bw_initial,double lat_initial); #include "surf/surf_resource.h" #include "surf/surf_resource_lmm.h" diff --git a/src/surf/cpu_im.c b/src/surf/cpu_im.c index 67ef5a50f0..e5336e9f94 100644 --- a/src/surf/cpu_im.c +++ b/src/surf/cpu_im.c @@ -504,33 +504,17 @@ static void cpu_im_action_update_index_heap(void *action, int i) { ((surf_action_cpu_Cas01_im_t) action)->index_heap = i; } - -static void cpu_im_init_bypass(const char* id,double power) +static void cpu_im_create_resource(char *name, double power_peak, + double power_scale, + tmgr_trace_t power_trace, + e_surf_resource_state_t state_initial, + tmgr_trace_t state_trace, + xbt_dict_t cpu_properties) { - /* FIXME - * the hard coded value must be passed as argument of the lua function - * depending on the number of arguments the user pass to function - * we'd affect it to the corresponding value - */ - double power_peak = 0.0; - double power_scale = 0.0; - tmgr_trace_t power_trace = NULL; - //FIXME : hard coded value - e_surf_resource_state_t state_initial = SURF_RESOURCE_ON; - tmgr_trace_t state_trace = NULL; - power_peak = power; - //FIXME : hard coded value !!! - surf_parse_get_double(&power_scale, "1.0"); - power_trace = tmgr_trace_new(""); - - //state_trace = tmgr_trace_new(A_surfxml_host_state_file); - current_property_set = xbt_dict_new(); - cpu_im_new(xbt_strdup(id), power_peak, power_scale, - power_trace, state_initial, state_trace, current_property_set); - + cpu_im_new(name,power_peak,power_scale,power_trace, + state_initial,state_trace,cpu_properties); } - static void cpu_im_finalize(void) { void *cpu; @@ -589,7 +573,7 @@ static void surf_cpu_im_model_init_internal(void) surf_cpu_model->extension.cpu.get_state = cpu_im_get_state; surf_cpu_model->extension.cpu.get_speed = cpu_im_get_speed; surf_cpu_model->extension.cpu.get_available_speed = cpu_im_get_available_speed; - surf_cpu_model->extension.cpu.init_bypass = cpu_im_init_bypass; + surf_cpu_model->extension.cpu.create_resource = cpu_im_create_resource; if (!cpu_im_maxmin_system) { sg_maxmin_selective_update = 1; @@ -623,9 +607,3 @@ void surf_cpu_model_init_Cas01_im(const char *filename) cpu_im_define_callbacks(filename); xbt_dynar_push(model_list, &surf_cpu_model); } - -void surf_cpu_model_init_bypass_im(const char* id,double power) -{ - return surf_cpu_model->extension.cpu. - init_bypass(id,power); -} diff --git a/src/surf/network.c b/src/surf/network.c index 4dd36a2d86..7a75009c64 100644 --- a/src/surf/network.c +++ b/src/surf/network.c @@ -588,36 +588,36 @@ static void net_action_set_max_duration(surf_action_t action, double duration) } -static void network_init_bypass(const char *name,double initial_bandwidth,double initial_latency) -{ - /** - * FIXME : Only values : name,bandwidth and latency are intercepted, - * the others properties for link still hard coded at this level !! - */ - char *name_link; - double bw_initial; - tmgr_trace_t bw_trace; - double lat_initial; - tmgr_trace_t lat_trace; - e_surf_resource_state_t state_initial_link = SURF_RESOURCE_ON; - e_surf_link_sharing_policy_t policy_initial_link = SURF_LINK_SHARED; - tmgr_trace_t state_trace; - - - name_link = (char*)name; - bw_initial = initial_bandwidth; - bw_trace = tmgr_trace_new(""); - lat_initial = initial_latency; - lat_trace = tmgr_trace_new(""); - // FIXME Hard Coded Values - state_initial_link = SURF_RESOURCE_ON; - policy_initial_link = SURF_LINK_SHARED; - state_trace = tmgr_trace_new(""); - - net_link_new(name_link, bw_initial, bw_trace, +/** + * FIXME : this should be done in the binding code !! + */ +void network_create_resource(char *name, + double initial_bandwidth,double initial_latency) +{ + + char *name_link; + double bw_initial; + tmgr_trace_t bw_trace; + double lat_initial; + tmgr_trace_t lat_trace; + e_surf_resource_state_t state_initial_link = SURF_RESOURCE_ON; + e_surf_link_sharing_policy_t policy_initial_link = SURF_LINK_SHARED; + tmgr_trace_t state_trace; + + + name_link = (char*)name; + bw_initial = initial_bandwidth; + bw_trace = tmgr_trace_new(""); + lat_initial = initial_latency; + lat_trace = tmgr_trace_new(""); + // FIXME Hard Coded Values + state_initial_link = SURF_RESOURCE_ON; + policy_initial_link = SURF_LINK_SHARED; + state_trace = tmgr_trace_new(""); + + net_link_new(name_link, bw_initial, bw_trace, lat_initial, lat_trace, state_initial_link, state_trace, policy_initial_link, xbt_dict_new()); - } static void net_finalize(void) @@ -658,7 +658,7 @@ static void surf_network_model_init_internal(void) net_get_link_bandwidth; surf_network_model->extension.network.get_link_latency = net_get_link_latency; surf_network_model->extension.network.link_shared = net_link_shared; - surf_network_model->extension.network.init_bypass = network_init_bypass; + surf_network_model->extension.network.create_resource = network_create_resource; if (!network_maxmin_system) network_maxmin_system = lmm_system_new(); @@ -801,8 +801,3 @@ void surf_network_model_init_Vegas(const char *filename) } -void surf_network_model_init_bypass(const char *link_id,double initial_bw,double initial_lat) -{ - return surf_network_model->extension.network. - init_bypass(link_id,initial_bw,initial_lat); -} diff --git a/src/surf/surfxml_parse.c b/src/surf/surfxml_parse.c index 8fa98c03d7..88fad91110 100644 --- a/src/surf/surfxml_parse.c +++ b/src/surf/surfxml_parse.c @@ -1167,3 +1167,23 @@ static void add_randomness(void) xbt_dict_set(random_data_list, random_id, (void *) random, NULL); } +void surf_host_create_resource(char *name, double power_peak, + double power_scale, + tmgr_trace_t power_trace, + e_surf_resource_state_t state_initial, + tmgr_trace_t state_trace, + xbt_dict_t cpu_properties) +{ + return surf_cpu_model->extension.cpu. + create_resource(name,power_peak,power_scale,power_trace,state_initial,state_trace,cpu_properties); +} + + +void surf_link_create_resouce(char *name, + double bw_initial, + double lat_initial) +{ + return surf_network_model->extension.network. + create_resource(name,bw_initial,lat_initial); + +} -- 2.20.1