From: Gabriel Corona Date: Tue, 10 Mar 2015 10:10:52 +0000 (+0100) Subject: [mc] Add more smx_process_t MCer/MCed translations X-Git-Tag: v3_12~732^2~112 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/aeb48ba02b7ee7fc14922d9dc9c1ee5ca30e8c48 [mc] Add more smx_process_t MCer/MCed translations --- diff --git a/src/mc/mc_comm_determinism.c b/src/mc/mc_comm_determinism.c index bba97cea9a..4043b1f41e 100644 --- a/src/mc/mc_comm_determinism.c +++ b/src/mc/mc_comm_determinism.c @@ -171,11 +171,13 @@ static void update_comm_pattern(mc_comm_pattern_t comm_pattern, smx_synchro_t co { mc_process_t process = &mc_model_checker->process; void *addr_pointed; - comm_pattern->src_proc = comm->comm.src_proc->pid; - comm_pattern->dst_proc = comm->comm.dst_proc->pid; + smx_process_t src_proc = MC_smx_resolve_process(comm->comm.src_proc); + smx_process_t dst_proc = MC_smx_resolve_process(comm->comm.dst_proc); + comm_pattern->src_proc = src_proc->pid; + comm_pattern->dst_proc = dst_proc->pid; // TODO, resolve host name - comm_pattern->src_host = MC_smx_process_get_host_name(MC_smx_resolve_process(comm->comm.src_proc)); - comm_pattern->dst_host = MC_smx_process_get_host_name(MC_smx_resolve_process(comm->comm.dst_proc)); + comm_pattern->src_host = MC_smx_process_get_host_name(src_proc); + comm_pattern->dst_host = MC_smx_process_get_host_name(dst_proc); if (comm_pattern->data_size == -1 && comm->comm.src_buff != NULL) { comm_pattern->data_size = *(comm->comm.dst_buff_size); comm_pattern->data = xbt_malloc0(comm_pattern->data_size); @@ -243,8 +245,7 @@ void get_comm_pattern(const xbt_dynar_t list, const smx_simcall_t request, const pattern->comm = simcall_comm_isend__get__result(request); // FIXME, remote access to rdv->name pattern->rdv = (pattern->comm->comm.rdv != NULL) ? strdup(pattern->comm->comm.rdv->name) : strdup(pattern->comm->comm.rdv_cpy->name); - pattern->src_proc = pattern->comm->comm.src_proc->pid; - // FIXME, get remote host name + pattern->src_proc = MC_smx_resolve_process(pattern->comm->comm.src_proc)->pid; pattern->src_host = MC_smx_process_get_host_name(issuer); if(pattern->comm->comm.src_buff != NULL){ pattern->data_size = pattern->comm->comm.src_buff_size; @@ -259,8 +260,9 @@ void get_comm_pattern(const xbt_dynar_t list, const smx_simcall_t request, const } else if (call_type == MC_CALL_TYPE_RECV) { pattern->type = SIMIX_COMM_RECEIVE; pattern->comm = simcall_comm_irecv__get__result(request); + // TODO, remote access pattern->rdv = (pattern->comm->comm.rdv != NULL) ? strdup(pattern->comm->comm.rdv->name) : strdup(pattern->comm->comm.rdv_cpy->name); - pattern->dst_proc = pattern->comm->comm.dst_proc->pid; + pattern->dst_proc = MC_smx_resolve_process(pattern->comm->comm.dst_proc)->pid; // FIXME, remote process access pattern->dst_host = MC_smx_process_get_host_name(issuer); } else { @@ -273,11 +275,14 @@ void get_comm_pattern(const xbt_dynar_t list, const smx_simcall_t request, const } void complete_comm_pattern(xbt_dynar_t list, smx_synchro_t comm, int backtracking) { - mc_comm_pattern_t current_comm_pattern; unsigned int cursor = 0; - unsigned int src = comm->comm.src_proc->pid; - unsigned int dst = comm->comm.dst_proc->pid; + + smx_process_t src_proc = MC_smx_resolve_process(comm->comm.src_proc); + smx_process_t dst_proc = MC_smx_resolve_process(comm->comm.dst_proc); + unsigned int src = src_proc->pid; + unsigned int dst = dst_proc->pid; + mc_comm_pattern_t src_comm_pattern; mc_comm_pattern_t dst_comm_pattern; int src_completed = 0, dst_completed = 0; diff --git a/src/mc/mc_process.c b/src/mc/mc_process.c index bf29cbb041..e3f4eb8378 100644 --- a/src/mc/mc_process.c +++ b/src/mc/mc_process.c @@ -59,7 +59,7 @@ void MC_process_init(mc_process_t process, pid_t pid, int sockfd) process->process_flags = MC_PROCESS_NO_FLAG; process->socket = sockfd; process->pid = pid; - if (0 && pid==getpid()) + if (pid==getpid()) process->process_flags |= MC_PROCESS_SELF_FLAG; process->running = true; process->status = 0; diff --git a/src/mc/mc_request.c b/src/mc/mc_request.c index 9e5dcdbd41..1b12665d90 100644 --- a/src/mc/mc_request.c +++ b/src/mc/mc_request.c @@ -472,17 +472,20 @@ char *MC_request_get_dot_output(smx_simcall_t req, int value) else label = bprintf("[(%lu)] WaitTimeout", issuer->pid); } else { + // FIXME, remote access to act->comm + smx_process_t src_proc = MC_smx_resolve_process(act->comm.src_proc); + smx_process_t dst_proc = MC_smx_resolve_process(act->comm.dst_proc); if (issuer->smx_host) label = bprintf("[(%lu)%s] Wait [(%lu)->(%lu)]", issuer->pid, MC_smx_process_get_host_name(issuer), - act->comm.src_proc ? act->comm.src_proc->pid : 0, - act->comm.dst_proc ? act->comm.dst_proc->pid : 0); + src_proc ? src_proc->pid : 0, + dst_proc ? dst_proc->pid : 0); else label = bprintf("[(%lu)] Wait [(%lu)->(%lu)]", issuer->pid, - act->comm.src_proc ? act->comm.src_proc->pid : 0, - act->comm.dst_proc ? act->comm.dst_proc->pid : 0); + src_proc ? src_proc->pid : 0, + dst_proc ? dst_proc->pid : 0); } break;