-/* Copyright (c) 2007-2015. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2007-2017. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
static void launch_communication_worker(msg_host_t tx_host, msg_host_t rx_host)
{
char *mbox = bprintf("MBOX:%s-%s", MSG_host_get_name(tx_host), MSG_host_get_name(rx_host));
- char **argv = NULL;
-
const char *pr_name_tx = "comm_tx";
- argv = xbt_new(char *, 3);
+
+ char** argv = xbt_new(char*, 3);
argv[0] = xbt_strdup(pr_name_tx);
argv[1] = xbt_strdup(mbox);
argv[2] = NULL;
MSG_process_create_with_arguments(pr_name_tx, communication_tx_fun, NULL, tx_host, 2, argv);
- const char *pr_name_rx = "comm_rx";
+ const char *pr_name_rx = "comm_rx";
argv = xbt_new(char *, 3);
argv[0] = xbt_strdup(pr_name_rx);
argv[1] = xbt_strdup(mbox);
static int master_main(int argc, char *argv[])
{
- xbt_dynar_t hosts_dynar = MSG_hosts_as_dynar();
- msg_host_t pm0 = xbt_dynar_get_as(hosts_dynar, 0, msg_host_t);
- msg_host_t pm1 = xbt_dynar_get_as(hosts_dynar, 1, msg_host_t);
- msg_host_t pm2 = xbt_dynar_get_as(hosts_dynar, 2, msg_host_t);
- msg_vm_t vm0, vm1;
-
+ msg_host_t pm0 = MSG_host_by_name("Fafard");
+ msg_host_t pm1 = MSG_host_by_name("Tremblay");
+ msg_host_t pm2 = MSG_host_by_name("Bourassa");
XBT_INFO("## Test 1 (started): check computation on normal PMs");
XBT_INFO("## Test 2 (started): check impact of running a task inside a VM (there is no degradation for the moment)");
XBT_INFO("### Put a VM on a PM, and put a task to the VM");
- vm0 = MSG_vm_create_core(pm0, "VM0");
+ msg_vm_t vm0 = MSG_vm_create_core(pm0, "VM0");
MSG_vm_start(vm0);
- launch_computation_worker(vm0);
+ launch_computation_worker((msg_host_t)vm0);
MSG_process_sleep(2);
MSG_vm_destroy(vm0);
XBT_INFO("### Put two VMs on a PM, and put a task to each VM");
vm0 = MSG_vm_create_core(pm0, "VM0");
- vm1 = MSG_vm_create_core(pm0, "VM1");
+ msg_vm_t vm1 = MSG_vm_create_core(pm0, "VM1");
MSG_vm_start(vm0);
MSG_vm_start(vm1);
- launch_computation_worker(vm0);
- launch_computation_worker(vm1);
+ launch_computation_worker((msg_host_t)vm0);
+ launch_computation_worker((msg_host_t)vm1);
MSG_process_sleep(2);
MSG_vm_destroy(vm0);
MSG_vm_destroy(vm1);
vm1 = MSG_vm_create_core(pm1, "VM1");
MSG_vm_start(vm0);
MSG_vm_start(vm1);
- launch_computation_worker(vm0);
- launch_computation_worker(vm1);
+ launch_computation_worker((msg_host_t)vm0);
+ launch_computation_worker((msg_host_t)vm1);
MSG_process_sleep(2);
MSG_vm_destroy(vm0);
MSG_vm_destroy(vm1);
XBT_INFO("### Make a connection between PM0 and VM0@PM0");
vm0 = MSG_vm_create_core(pm0, "VM0");
MSG_vm_start(vm0);
- launch_communication_worker(pm0, vm0);
+ launch_communication_worker(pm0, (msg_host_t)vm0);
MSG_process_sleep(5);
MSG_vm_destroy(vm0);
XBT_INFO("### Make a connection between PM0 and VM0@PM1");
vm0 = MSG_vm_create_core(pm1, "VM0");
MSG_vm_start(vm0);
- launch_communication_worker(pm0, vm0);
+ launch_communication_worker(pm0, (msg_host_t)vm0);
MSG_process_sleep(5);
MSG_vm_destroy(vm0);
XBT_INFO("### Make two connections between PM0 and VM0@PM1");
vm0 = MSG_vm_create_core(pm1, "VM0");
MSG_vm_start(vm0);
- launch_communication_worker(pm0, vm0);
- launch_communication_worker(pm0, vm0);
+ launch_communication_worker(pm0, (msg_host_t)vm0);
+ launch_communication_worker(pm0, (msg_host_t)vm0);
MSG_process_sleep(5);
MSG_vm_destroy(vm0);
XBT_INFO("### Make a connection between PM0 and VM0@PM1, and also make a connection between PM0 and PM1");
vm0 = MSG_vm_create_core(pm1, "VM0");
MSG_vm_start(vm0);
- launch_communication_worker(pm0, vm0);
+ launch_communication_worker(pm0, (msg_host_t)vm0);
launch_communication_worker(pm0, pm1);
MSG_process_sleep(5);
MSG_vm_destroy(vm0);
vm1 = MSG_vm_create_core(pm1, "VM1");
MSG_vm_start(vm0);
MSG_vm_start(vm1);
- launch_communication_worker(vm0, vm1);
- launch_communication_worker(vm0, vm1);
+ launch_communication_worker((msg_host_t)vm0, (msg_host_t)vm1);
+ launch_communication_worker((msg_host_t)vm0, (msg_host_t)vm1);
MSG_process_sleep(5);
MSG_vm_destroy(vm0);
MSG_vm_destroy(vm1);
" network one");
XBT_INFO("### Relocate VM0 between PM0 and PM1");
vm0 = MSG_vm_create_core(pm0, "VM0");
- {
- s_vm_params_t params;
- memset(¶ms, 0, sizeof(params));
- params.ramsize = 1L * 1024 * 1024 * 1024; // 1Gbytes
- MSG_host_set_params(vm0, ¶ms);
- }
+ s_vm_params_t params;
+ memset(¶ms, 0, sizeof(params));
+ params.ramsize = 1L * 1024 * 1024 * 1024; // 1Gbytes
+ MSG_vm_set_params(vm0, ¶ms);
+
MSG_vm_start(vm0);
- launch_communication_worker(vm0, pm2);
+ launch_communication_worker((msg_host_t)vm0, pm2);
MSG_process_sleep(0.01);
MSG_vm_migrate(vm0, pm1);
MSG_process_sleep(0.01);
MSG_vm_destroy(vm0);
XBT_INFO("## Test 6 (ended)");
- xbt_dynar_free(&hosts_dynar);
return 0;
}
MSG_init(&argc, argv);
/* load the platform file */
- xbt_assert(argc == 2);
- MSG_create_environment(argv[1]);
+ const char* platform = "../../platforms/small_platform.xml";
+ if (argc == 2)
+ platform = argv[1];
+ MSG_create_environment(platform);
- xbt_dynar_t hosts_dynar = MSG_hosts_as_dynar();
- msg_host_t pm0 = xbt_dynar_get_as(hosts_dynar, 0, msg_host_t);
+ msg_host_t pm0 = MSG_host_by_name("Fafard");
launch_master(pm0);
int res = MSG_main();
XBT_INFO("Bye (simulation time %g)", MSG_get_clock());
- xbt_dynar_free(&hosts_dynar);
return !(res == MSG_OK);
}