Skip to content
Snippets Groups Projects
Commit bc2b3de9 authored by ael-mess's avatar ael-mess
Browse files

parsing traces

parent 9244cc83
Branches
No related tags found
No related merge requests found
......@@ -18,7 +18,7 @@ public class main {
tasks.setTraces(parser.getTraces());
tasks.setTasks();
//tasks.check();
System.out.println(tasks.description());
tasks.check();
//System.out.println(tasks.description());
}
}
......@@ -21,21 +21,24 @@ public class task_service {
}
public void setTasks() {
task t = new task();
task t;
this.tasks = new ArrayList<>();
for(trace tr : this.traces) if(tr instanceof ptask_tracepoint) {
List<Integer> tids = new ArrayList<>();
for(trace tr : this.traces) if(tr instanceof ptask_tracepoint && !tids.contains(tr.getTid())) tids.add(tr.getTid());
for(trace tr : this.traces) if(tr instanceof ptask_tracepoint && tids.remove(tr.getTid())) {
t = new task();
this.tasks.add(t);
t.setId(tr.getTid());
t.setCpu_id(tr.getCpu_id());
if(this.tasks == null || !this.tasks.contains(t)) {
this.tasks.add(t);
t.setName(((ptask_tracepoint) tr).getIndex());
t.setPeriod(((ptask_tracepoint) tr).getPeriod());
t.setDeadline(((ptask_tracepoint) tr).getDeadline());
t.setColor();
this.setEvents(t);
}
t = null;
}
this.nb_task = this.tasks.size();
tids = null;
}
public Integer getNb_task() {
......@@ -44,7 +47,7 @@ public class task_service {
public Integer getNb_task_per_cpu(Integer cpu_id) {
List<Integer> tids = new ArrayList<>();
for(trace tr : this.traces) if(tr.getCpu_id()==cpu_id && !tids.contains(tr.getTid())) tids.add(tr.getTid());
for(trace tr : this.traces) if(tr.getCpu_id().equals(cpu_id) && !tids.contains(tr.getTid())) tids.add(tr.getTid());
return tids.size();
}
......@@ -54,31 +57,31 @@ public class task_service {
if(nb != this.getNb_task()) { System.out.println(" Unknown trace (nb of trace = "+this.getNb_task()+"!="+nb+")"); }
nb = this.traces.get(0).getPid();
for(trace tr : this.traces) if(nb != tr.getPid()) { System.out.println(" Unknown pid (pid = "+tr.getPid()+"!="+nb+")"); }
for(trace tr : this.traces) if(!tr.getPid().equals(nb)) { System.out.println(" Unknown pid (pid = "+tr.getPid()+"!="+nb+")"); }
}
private void setEvents(task t) {
List<t_event> events = new ArrayList<>();
for(trace tr : this.traces) {
if(t.getId() == tr.getTid()) {
if(tr instanceof clone_exit && (((clone_exit) tr).getRet() == 0)) t.setStart(tr.getTime().getTime("seconde"));
if(t.getId().equals(tr.getTid())) {
if(tr instanceof clone_exit && (((clone_exit) tr).getRet().equals(0))) t.setStart(tr.getTime().getTime("seconde"));
else if(tr instanceof ptask_tracepoint) {
if(((ptask_tracepoint) tr).getFlag().equals("NOW")) {
t.setState(true);
if(((ptask_tracepoint) tr).getState().equals("b_wait_periode")) events.add(new t_event(Types.FINISH, tr.getTime().getTime("seconde")));
else if(((ptask_tracepoint) tr).getState().equals("e_wait_periode")) events.add(new t_event(Types.START, tr.getTime().getTime("seconde")));
if(((ptask_tracepoint) tr).getFlag().equals("\"NOW\"")) t.setState(true);
if(t.isActivated()) {
if(((ptask_tracepoint) tr).getState().equals("\"b_wait_period\"")) events.add(new t_event(Types.FINISH, tr.getTime().getTime("seconde")));
else if(((ptask_tracepoint) tr).getState().equals("\"e_wait_period\"")) events.add(new t_event(Types.START, tr.getTime().getTime("seconde")));
else if(((ptask_tracepoint) tr).getState().equals("\"b_wait_activation\"")) events.add(new t_event(Types.FINISH, tr.getTime().getTime("seconde")));
else if(((ptask_tracepoint) tr).getState().equals("\"e_wait_activation\"")) events.add(new t_event(Types.START, tr.getTime().getTime("seconde")));
}
else if(((ptask_tracepoint) tr).getFlag().equals("DEFERRED")) {
if(((ptask_tracepoint) tr).getState().equals("e_wait_activation") && !t.isActivated()) t.setState(true);
else if(((ptask_tracepoint) tr).getState().equals("b_wait_periode") && t.isActivated()) events.add(new t_event(Types.FINISH, tr.getTime().getTime("seconde")));
else if(((ptask_tracepoint) tr).getState().equals("e_wait_periode") && t.isActivated()) events.add(new t_event(Types.START, tr.getTime().getTime("seconde")));
else if(((ptask_tracepoint) tr).getState().equals("b_wait_activation") && t.isActivated()) events.add(new t_event(Types.FINISH, tr.getTime().getTime("seconde")));
else if(((ptask_tracepoint) tr).getState().equals("e_wait_activation") && t.isActivated()) events.add(new t_event(Types.START, tr.getTime().getTime("seconde")));
else if(((ptask_tracepoint) tr).getState().equals("\"e_wait_activation\"")) {
t.setState(true);
events.add(new t_event(Types.START, tr.getTime().getTime("seconde")));
}
}
else if(tr instanceof sched_switch) events.add(new t_event(Types.SWITCH_OUT, tr.getTime().getTime("seconde"), ((sched_switch) tr).getNext_tid()));
}
else if(tr instanceof sched_switch && t.getId() == ((sched_switch) tr).getNext_tid()) events.add(new t_event(Types.SWITCH_IN, tr.getTime().getTime("seconde"), ((sched_switch) tr).getPrev_tid()));
else if(tr instanceof sched_switch && t.getId().equals(((sched_switch) tr).getNext_tid())) events.add(new t_event(Types.SWITCH_IN, tr.getTime().getTime("seconde"), ((sched_switch) tr).getPrev_tid()));
}
t.setEvents(events);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment