Exemplo n.º 1
0
JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_init(JNIEnv * env, jclass cls, jobjectArray jargs)
{
  char **argv = nullptr;
  int index;
  int argc = 0;
  jstring jval;
  const char *tmp;

  XBT_LOG_CONNECT(jmsg);
  XBT_LOG_CONNECT(jtrace);

  env->GetJavaVM(&__java_vm);

  simgrid::simix::factory_initializer = simgrid::java::java_factory;
  jthrowable exc = env->ExceptionOccurred();
  if (exc) {
    env->ExceptionClear();
  }

  setlocale(LC_NUMERIC,"C");

  if (jargs)
    argc = (int) env->GetArrayLength(jargs);

  argc++;
  argv = xbt_new(char *, argc + 1);
  argv[0] = xbt_strdup("java");

  for (index = 0; index < argc - 1; index++) {
    jval = (jstring) env->GetObjectArrayElement(jargs, index);
    tmp = env->GetStringUTFChars(jval, 0);
    argv[index + 1] = xbt_strdup(tmp);
    env->ReleaseStringUTFChars(jval, tmp);
  }
  argv[argc] = nullptr;

  MSG_init(&argc, argv);

  JAVA_HOST_LEVEL = simgrid::s4u::Host::extension_create(__JAVA_host_priv_free);
  JAVA_STORAGE_LEVEL = xbt_lib_add_level(storage_lib, __JAVA_storage_priv_free);

  for (index = 0; index < argc; index++)
    free(argv[index]);

  free(argv);
}
Exemplo n.º 2
0
/** \ingroup msg_simulation
 * \brief Initialize some MSG internal data.
 */
void MSG_global_init(int *argc, char **argv)
{
#ifdef HAVE_TRACING
  TRACE_global_init(argc, argv);
#endif

  xbt_getpid = MSG_process_self_PID;
  if (!msg_global) {
    /* Connect our log channels: that must be done manually under windows */
    XBT_LOG_CONNECT(msg_gos, msg);
    XBT_LOG_CONNECT(msg_kernel, msg);
    XBT_LOG_CONNECT(msg_mailbox, msg);
    XBT_LOG_CONNECT(msg_process, msg);

    SIMIX_global_init(argc, argv);

    msg_global = xbt_new0(s_MSG_Global_t, 1);

    msg_global->max_channel = 0;
    msg_global->PID = 1;
    msg_global->sent_msg = 0;

    /* initialization of the action module */
    _MSG_action_init();

    SIMIX_function_register_process_create(MSG_process_create_from_SIMIX);
    SIMIX_function_register_process_cleanup(MSG_process_cleanup_from_SIMIX);
    SIMIX_function_register_process_kill(MSG_process_kill_from_SIMIX);
  }
#ifdef HAVE_TRACING
  TRACE_start();
#endif

  XBT_DEBUG("ADD MSG LEVELS");
  MSG_HOST_LEVEL = xbt_lib_add_level(host_lib,free);
}
Exemplo n.º 3
0
int main(int argc, char **argv)
{
  XBT_LOG_CONNECT(graphicator);
  MSG_init(&argc, argv);

  if (argc < 3){
    XBT_INFO("Usage: %s <platform_file.xml> <graphviz_file.dot>", argv[0]);
    return 1;
  }
  char *platformFile = argv[1];
  char *graphvizFile = argv[2];

  MSG_create_environment(platformFile);

  int status = TRACE_platform_graph_export_graphviz (graphvizFile);
  if (status == 0){
    XBT_INFO ("%s expects --cfg=tracing:yes --cfg=tracing/platform:yes", argv[0]);
  }
  return 0;
}
Exemplo n.º 4
0
int main(int argc, char **argv)
{
  XBT_LOG_CONNECT(graphicator);
#ifdef HAVE_TRACING
  MSG_init(&argc, argv);

  if (argc < 3){
    XBT_INFO("Usage: %s <platform_file.xml> <graphviz_file.dot>", argv[0]);
    return 1;
  }
  char *platformFile = argv[1];
  char *graphvizFile = argv[2];

  MSG_create_environment(platformFile);

  int status = TRACE_platform_graph_export_graphviz (graphvizFile);
  if (status == 0){
    XBT_INFO ("%s expects --cfg=tracing:1 --cfg=tracing/platform:1", argv[0]);
  }
#else
  XBT_INFO ("works only if simgrid was compiled with tracing enabled.");
#endif
  return 0;
}
Exemplo n.º 5
0
static void smpi_init_logs(){

  /* Connect log categories.  See xbt/log.c */

  XBT_LOG_CONNECT(smpi);  /* Keep this line as soon as possible in this function: xbt_log_appender_file.c depends on it
                             DO NOT connect this in XBT or so, or it will be useless to xbt_log_appender_file.c */
  XBT_LOG_CONNECT(instr_smpi);
  XBT_LOG_CONNECT(smpi_base);
  XBT_LOG_CONNECT(smpi_bench);
  XBT_LOG_CONNECT(smpi_coll);
  XBT_LOG_CONNECT(smpi_colls);
  XBT_LOG_CONNECT(smpi_comm);
  XBT_LOG_CONNECT(smpi_dvfs);
  XBT_LOG_CONNECT(smpi_group);
  XBT_LOG_CONNECT(smpi_kernel);
  XBT_LOG_CONNECT(smpi_mpi);
  XBT_LOG_CONNECT(smpi_mpi_dt);
  XBT_LOG_CONNECT(smpi_pmpi);
  XBT_LOG_CONNECT(smpi_replay);
  XBT_LOG_CONNECT(smpi_rma);
}
Exemplo n.º 6
0
static void xbt_log_connect_categories(void)
{
  /* Connect our log channels: that must be done manually under windows */
  /* Also permit that they are correctly listed by xbt_log_help_categories() */

  /* xbt */
  XBT_LOG_CONNECT(xbt);
  XBT_LOG_CONNECT(graphxml_parse);
  XBT_LOG_CONNECT(log);
  XBT_LOG_CONNECT(module);
  XBT_LOG_CONNECT(peer);
  XBT_LOG_CONNECT(replay);
  XBT_LOG_CONNECT(strbuff);
  XBT_LOG_CONNECT(xbt_cfg);
  XBT_LOG_CONNECT(xbt_dict);
  XBT_LOG_CONNECT(xbt_dict_cursor);
  XBT_LOG_CONNECT(xbt_dict_elm);
#ifdef XBT_USE_DEPRECATED
  XBT_LOG_CONNECT(xbt_dict_multi);
#endif
  XBT_LOG_CONNECT(xbt_dyn);
  XBT_LOG_CONNECT(xbt_ex);
  XBT_LOG_CONNECT(xbt_fifo);
  XBT_LOG_CONNECT(xbt_graph);
  XBT_LOG_CONNECT(xbt_heap);
  XBT_LOG_CONNECT(xbt_lib);
  XBT_LOG_CONNECT(xbt_mallocator);
  XBT_LOG_CONNECT(xbt_matrix);
  XBT_LOG_CONNECT(xbt_parmap);
  XBT_LOG_CONNECT(xbt_queue);
  XBT_LOG_CONNECT(xbt_set);
  XBT_LOG_CONNECT(xbt_sync);
  XBT_LOG_CONNECT(xbt_sync_os);

#ifdef simgrid_EXPORTS
  /* The following categories are only defined in libsimgrid */

  /* bindings */
#ifdef HAVE_LUA
  XBT_LOG_CONNECT(bindings);
  XBT_LOG_CONNECT(lua);
  XBT_LOG_CONNECT(lua_comm);
  XBT_LOG_CONNECT(lua_host);
  XBT_LOG_CONNECT(lua_platf);
  XBT_LOG_CONNECT(lua_process);
  XBT_LOG_CONNECT(lua_state_cloner);
  XBT_LOG_CONNECT(lua_task);
  XBT_LOG_CONNECT(lua_utils);
#endif

  /* instr */
  XBT_LOG_CONNECT(instr);
  XBT_LOG_CONNECT(instr_api);
  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_types);
  XBT_LOG_CONNECT(instr_paje_values);
  XBT_LOG_CONNECT(instr_resource);
  XBT_LOG_CONNECT(instr_routing);
  XBT_LOG_CONNECT(instr_sd);
  XBT_LOG_CONNECT(instr_surf);
  XBT_LOG_CONNECT(instr_trace);
  XBT_LOG_CONNECT(instr_TI_trace);

  /* jedule */
#ifdef HAVE_JEDULE
  XBT_LOG_CONNECT(jedule);
  XBT_LOG_CONNECT(jed_out);
  XBT_LOG_CONNECT(jed_sd);
#endif

  /* mc */
#ifdef HAVE_MC
  XBT_LOG_CONNECT(mc);
  XBT_LOG_CONNECT(mc_checkpoint);
  XBT_LOG_CONNECT(mc_comm_determinism);
  XBT_LOG_CONNECT(mc_compare);
  XBT_LOG_CONNECT(mc_diff);
  XBT_LOG_CONNECT(mc_dwarf);
  XBT_LOG_CONNECT(mc_hash);
  XBT_LOG_CONNECT(mc_ignore);
  XBT_LOG_CONNECT(mcer_ignore);
  XBT_LOG_CONNECT(mc_liveness);
  XBT_LOG_CONNECT(mc_memory);
  XBT_LOG_CONNECT(mc_memory_map);
  XBT_LOG_CONNECT(mc_page_snapshot);
  XBT_LOG_CONNECT(mc_request);
  XBT_LOG_CONNECT(mc_safety);
  XBT_LOG_CONNECT(mc_visited);
  XBT_LOG_CONNECT(mc_client);
  XBT_LOG_CONNECT(mc_client_api);
  XBT_LOG_CONNECT(mc_comm_pattern);
  XBT_LOG_CONNECT(mc_process);
  XBT_LOG_CONNECT(mc_protocol);
  XBT_LOG_CONNECT(mc_server);
  XBT_LOG_CONNECT(mc_state);
#endif
  XBT_LOG_CONNECT(mc_global);
  XBT_LOG_CONNECT(mc_config);
  XBT_LOG_CONNECT(mc_record);

  /* msg */
  XBT_LOG_CONNECT(msg);
  XBT_LOG_CONNECT(msg_action);
  XBT_LOG_CONNECT(msg_gos);
  XBT_LOG_CONNECT(msg_io);
  XBT_LOG_CONNECT(msg_kernel);
  XBT_LOG_CONNECT(msg_mailbox);
  XBT_LOG_CONNECT(msg_process);
  XBT_LOG_CONNECT(msg_synchro);
  XBT_LOG_CONNECT(msg_task);
  XBT_LOG_CONNECT(msg_vm);
   
  /* simdag */
  XBT_LOG_CONNECT(sd);
  XBT_LOG_CONNECT(sd_daxparse);
#ifdef HAVE_GRAPHVIZ
  XBT_LOG_CONNECT(sd_dotparse);
#endif
  XBT_LOG_CONNECT(sd_kernel);
  XBT_LOG_CONNECT(sd_task);
  XBT_LOG_CONNECT(sd_workstation);

  /* simix */
  XBT_LOG_CONNECT(simix);
  XBT_LOG_CONNECT(simix_context);
  XBT_LOG_CONNECT(simix_deployment);
  XBT_LOG_CONNECT(simix_environment);
  XBT_LOG_CONNECT(simix_host);
  XBT_LOG_CONNECT(simix_io);
  XBT_LOG_CONNECT(simix_kernel);
  XBT_LOG_CONNECT(simix_network);
  XBT_LOG_CONNECT(simix_process);
  XBT_LOG_CONNECT(simix_popping);
  XBT_LOG_CONNECT(simix_synchro);
  XBT_LOG_CONNECT(simix_vm);

  /* smpi */
  /* SMPI categories are connected in smpi_global.c */

  /* surf */
  XBT_LOG_CONNECT(surf);
  XBT_LOG_CONNECT(platf_generator);
  XBT_LOG_CONNECT(random);
  XBT_LOG_CONNECT(surf_config);
  XBT_LOG_CONNECT(surf_cpu);
  XBT_LOG_CONNECT(surf_cpu_cas);
  XBT_LOG_CONNECT(surf_cpu_ti);
  XBT_LOG_CONNECT(surf_energy);
  XBT_LOG_CONNECT(surf_kernel);
  XBT_LOG_CONNECT(surf_lagrange);
  XBT_LOG_CONNECT(surf_lagrange_dichotomy);
  XBT_LOG_CONNECT(surf_maxmin);
  XBT_LOG_CONNECT(surf_network);
#ifdef HAVE_GTNETS
  XBT_LOG_CONNECT(surf_network_gtnets);
  XBT_LOG_CONNECT(surf_network_gtnets_interface);
  XBT_LOG_CONNECT(surf_network_gtnets_simulator);
  XBT_LOG_CONNECT(surf_network_gtnets_topology);
#endif
#ifdef HAVE_NS3
  XBT_LOG_CONNECT(surf_network_ns3);
  XBT_LOG_CONNECT(interface_ns3);
  XBT_LOG_CONNECT(simulator_ns3);
#endif
  XBT_LOG_CONNECT(surf_parse);
  XBT_LOG_CONNECT(surf_route);
  XBT_LOG_CONNECT(surf_routing_generic);
  XBT_LOG_CONNECT(surf_route_cluster);
  XBT_LOG_CONNECT(surf_route_cluster_torus);
  XBT_LOG_CONNECT(surf_route_dijkstra);
  XBT_LOG_CONNECT(surf_route_fat_tree);
  XBT_LOG_CONNECT(surf_route_floyd);
  XBT_LOG_CONNECT(surf_route_full);
  XBT_LOG_CONNECT(surf_route_none);
  XBT_LOG_CONNECT(surf_route_vivaldi);
  XBT_LOG_CONNECT(surf_storage);
  XBT_LOG_CONNECT(surf_trace);
  XBT_LOG_CONNECT(surf_vm_workstation);
  XBT_LOG_CONNECT(surf_workstation);

#endif /* simgrid_EXPORTS */
}