Write multiple prv files and add app id view
This commit is contained in:
parent
60862db890
commit
4e971bceff
236
cfg/cpu.cfg
Normal file
236
cfg/cpu.cfg
Normal file
@ -0,0 +1,236 @@
|
||||
#ParaverCFG
|
||||
ConfigFile.Version: 3.4
|
||||
ConfigFile.NumWindows: 6
|
||||
|
||||
|
||||
################################################################################
|
||||
< NEW DISPLAYING WINDOW CPU: PID >
|
||||
################################################################################
|
||||
window_name CPU: PID
|
||||
window_type single
|
||||
window_id 1
|
||||
window_position_x 0
|
||||
window_position_y 376
|
||||
window_width 954
|
||||
window_height 148
|
||||
window_comm_lines_enabled true
|
||||
window_flags_enabled true
|
||||
window_noncolor_mode true
|
||||
window_logical_filtered true
|
||||
window_physical_filtered false
|
||||
window_comm_fromto true
|
||||
window_comm_tagsize true
|
||||
window_comm_typeval true
|
||||
window_units Microseconds
|
||||
window_maximum_y 426131.000000000000
|
||||
window_minimum_y 1.000000000000
|
||||
window_compute_y_max false
|
||||
window_level thread
|
||||
window_scale_relative 1.000000000000
|
||||
window_end_time_relative 1.000000000000
|
||||
window_object appl { 1, { All } }
|
||||
window_begin_time_relative 0.000000000000
|
||||
window_open true
|
||||
window_drawmode draw_maximum
|
||||
window_drawmode_rows draw_maximum
|
||||
window_pixel_size 1
|
||||
window_labels_to_draw 1
|
||||
window_selected_functions { 14, { {cpu, Active Thd}, {appl, Adding}, {task, Adding}, {thread, Last Evt Val}, {node, Adding}, {system, Adding}, {workload, Adding}, {from_obj, All}, {to_obj, All}, {tag_msg, All}, {size_msg, All}, {bw_msg, All}, {evt_type, =}, {evt_value, All} } }
|
||||
window_compose_functions { 9, { {compose_cpu, As Is}, {compose_appl, As Is}, {compose_task, As Is}, {compose_thread, As Is}, {compose_node, As Is}, {compose_system, As Is}, {compose_workload, As Is}, {topcompose1, As Is}, {topcompose2, As Is} } }
|
||||
window_filter_module evt_type 1 10
|
||||
window_filter_module evt_type_label 1 "Unknown"
|
||||
window_synchronize 1
|
||||
|
||||
################################################################################
|
||||
< NEW DISPLAYING WINDOW CPU: Task ID >
|
||||
################################################################################
|
||||
window_name CPU: Task ID
|
||||
window_type single
|
||||
window_id 2
|
||||
window_position_x 0
|
||||
window_position_y 200
|
||||
window_width 954
|
||||
window_height 149
|
||||
window_comm_lines_enabled true
|
||||
window_flags_enabled true
|
||||
window_noncolor_mode true
|
||||
window_logical_filtered true
|
||||
window_physical_filtered false
|
||||
window_comm_fromto true
|
||||
window_comm_tagsize true
|
||||
window_comm_typeval true
|
||||
window_units Microseconds
|
||||
window_maximum_y 21.000000000000
|
||||
window_minimum_y 1.000000000000
|
||||
window_compute_y_max false
|
||||
window_level thread
|
||||
window_scale_relative 1.000000000000
|
||||
window_end_time_relative 1.000000000000
|
||||
window_object appl { 1, { All } }
|
||||
window_begin_time_relative 0.000000000000
|
||||
window_open true
|
||||
window_drawmode draw_maximum
|
||||
window_drawmode_rows draw_maximum
|
||||
window_pixel_size 1
|
||||
window_labels_to_draw 1
|
||||
window_selected_functions { 14, { {cpu, Active Thd}, {appl, Adding}, {task, Adding}, {thread, Last Evt Val}, {node, Adding}, {system, Adding}, {workload, Adding}, {from_obj, All}, {to_obj, All}, {tag_msg, All}, {size_msg, All}, {bw_msg, All}, {evt_type, =}, {evt_value, All} } }
|
||||
window_compose_functions { 9, { {compose_cpu, As Is}, {compose_appl, As Is}, {compose_task, As Is}, {compose_thread, As Is}, {compose_node, As Is}, {compose_system, As Is}, {compose_workload, As Is}, {topcompose1, As Is}, {topcompose2, As Is} } }
|
||||
window_filter_module evt_type 1 20
|
||||
window_filter_module evt_type_label 1 "Unknown"
|
||||
window_synchronize 1
|
||||
|
||||
################################################################################
|
||||
< NEW DISPLAYING WINDOW CPU: Task Type ID >
|
||||
################################################################################
|
||||
window_name CPU: Task Type ID
|
||||
window_type single
|
||||
window_id 3
|
||||
window_position_x 0
|
||||
window_position_y 901
|
||||
window_width 954
|
||||
window_height 148
|
||||
window_comm_lines_enabled true
|
||||
window_flags_enabled true
|
||||
window_noncolor_mode true
|
||||
window_color_mode window_in_null_gradient_mode
|
||||
window_logical_filtered true
|
||||
window_physical_filtered false
|
||||
window_comm_fromto true
|
||||
window_comm_tagsize true
|
||||
window_comm_typeval true
|
||||
window_units Microseconds
|
||||
window_maximum_y 2.000000000000
|
||||
window_minimum_y 1.000000000000
|
||||
window_compute_y_max false
|
||||
window_level thread
|
||||
window_scale_relative 1.000000000000
|
||||
window_end_time_relative 1.000000000000
|
||||
window_object appl { 1, { All } }
|
||||
window_begin_time_relative 0.000000000000
|
||||
window_open true
|
||||
window_drawmode draw_maximum
|
||||
window_drawmode_rows draw_maximum
|
||||
window_pixel_size 1
|
||||
window_labels_to_draw 1
|
||||
window_selected_functions { 14, { {cpu, Active Thd}, {appl, Adding}, {task, Adding}, {thread, Last Evt Val}, {node, Adding}, {system, Adding}, {workload, Adding}, {from_obj, All}, {to_obj, All}, {tag_msg, All}, {size_msg, All}, {bw_msg, All}, {evt_type, =}, {evt_value, All} } }
|
||||
window_compose_functions { 9, { {compose_cpu, As Is}, {compose_appl, As Is}, {compose_task, As Is}, {compose_thread, As Is}, {compose_node, As Is}, {compose_system, As Is}, {compose_workload, As Is}, {topcompose1, As Is}, {topcompose2, As Is} } }
|
||||
window_filter_module evt_type 1 21
|
||||
window_filter_module evt_type_label 1 "Unknown"
|
||||
window_synchronize 1
|
||||
|
||||
################################################################################
|
||||
< NEW DISPLAYING WINDOW CPU: Number of threads running per CPU >
|
||||
################################################################################
|
||||
window_name CPU: Number of threads running per CPU
|
||||
window_type single
|
||||
window_id 4
|
||||
window_position_x 0
|
||||
window_position_y 726
|
||||
window_width 954
|
||||
window_height 148
|
||||
window_comm_lines_enabled true
|
||||
window_flags_enabled true
|
||||
window_noncolor_mode true
|
||||
window_color_mode window_in_null_gradient_mode
|
||||
window_logical_filtered true
|
||||
window_physical_filtered false
|
||||
window_comm_fromto true
|
||||
window_comm_tagsize true
|
||||
window_comm_typeval true
|
||||
window_units Microseconds
|
||||
window_maximum_y 5.000000000000
|
||||
window_minimum_y 1.000000000000
|
||||
window_compute_y_max false
|
||||
window_level thread
|
||||
window_scale_relative 1.000000000000
|
||||
window_end_time_relative 1.000000000000
|
||||
window_object appl { 1, { All } }
|
||||
window_begin_time_relative 0.000000000000
|
||||
window_open true
|
||||
window_drawmode draw_maximum
|
||||
window_drawmode_rows draw_maximum
|
||||
window_pixel_size 1
|
||||
window_labels_to_draw 1
|
||||
window_selected_functions { 14, { {cpu, Active Thd}, {appl, Adding}, {task, Adding}, {thread, Last Evt Val}, {node, Adding}, {system, Adding}, {workload, Adding}, {from_obj, All}, {to_obj, All}, {tag_msg, All}, {size_msg, All}, {bw_msg, All}, {evt_type, =}, {evt_value, All} } }
|
||||
window_compose_functions { 9, { {compose_cpu, As Is}, {compose_appl, As Is}, {compose_task, As Is}, {compose_thread, As Is}, {compose_node, As Is}, {compose_system, As Is}, {compose_workload, As Is}, {topcompose1, As Is}, {topcompose2, As Is} } }
|
||||
window_filter_module evt_type 1 12
|
||||
window_filter_module evt_type_label 1 "Unknown"
|
||||
window_synchronize 1
|
||||
|
||||
################################################################################
|
||||
< NEW DISPLAYING WINDOW CPU: Thread TID >
|
||||
################################################################################
|
||||
window_name CPU: Thread TID
|
||||
window_type single
|
||||
window_id 5
|
||||
window_position_x 0
|
||||
window_position_y 551
|
||||
window_width 954
|
||||
window_height 148
|
||||
window_comm_lines_enabled true
|
||||
window_flags_enabled true
|
||||
window_noncolor_mode true
|
||||
window_logical_filtered true
|
||||
window_physical_filtered false
|
||||
window_comm_fromto true
|
||||
window_comm_tagsize true
|
||||
window_comm_typeval true
|
||||
window_units Microseconds
|
||||
window_maximum_y 426239.000000000000
|
||||
window_minimum_y 1.000000000000
|
||||
window_compute_y_max false
|
||||
window_level thread
|
||||
window_scale_relative 1.000000000000
|
||||
window_end_time_relative 1.000000000000
|
||||
window_object appl { 1, { All } }
|
||||
window_begin_time_relative 0.000000000000
|
||||
window_open true
|
||||
window_drawmode draw_maximum
|
||||
window_drawmode_rows draw_maximum
|
||||
window_pixel_size 1
|
||||
window_labels_to_draw 1
|
||||
window_selected_functions { 14, { {cpu, Active Thd}, {appl, Adding}, {task, Adding}, {thread, Last Evt Val}, {node, Adding}, {system, Adding}, {workload, Adding}, {from_obj, All}, {to_obj, All}, {tag_msg, All}, {size_msg, All}, {bw_msg, All}, {evt_type, =}, {evt_value, All} } }
|
||||
window_compose_functions { 9, { {compose_cpu, As Is}, {compose_appl, As Is}, {compose_task, As Is}, {compose_thread, As Is}, {compose_node, As Is}, {compose_system, As Is}, {compose_workload, As Is}, {topcompose1, As Is}, {topcompose2, As Is} } }
|
||||
window_filter_module evt_type 1 11
|
||||
window_filter_module evt_type_label 1 "Unknown"
|
||||
window_synchronize 1
|
||||
|
||||
################################################################################
|
||||
< NEW DISPLAYING WINDOW CPU: Application ID >
|
||||
################################################################################
|
||||
window_name CPU: Application ID
|
||||
window_type single
|
||||
window_id 6
|
||||
window_position_x 0
|
||||
window_position_y 24
|
||||
window_width 954
|
||||
window_height 149
|
||||
window_comm_lines_enabled true
|
||||
window_flags_enabled true
|
||||
window_noncolor_mode true
|
||||
window_color_mode window_in_null_gradient_mode
|
||||
window_logical_filtered true
|
||||
window_physical_filtered false
|
||||
window_comm_fromto true
|
||||
window_comm_tagsize true
|
||||
window_comm_typeval true
|
||||
window_units Microseconds
|
||||
window_maximum_y 20.000000000000
|
||||
window_minimum_y 1.000000000000
|
||||
window_compute_y_max false
|
||||
window_level thread
|
||||
window_scale_relative 1.000000000000
|
||||
window_end_time_relative 1.000000000000
|
||||
window_object appl { 1, { All } }
|
||||
window_begin_time_relative 0.000000000000
|
||||
window_open true
|
||||
window_drawmode draw_maximum
|
||||
window_drawmode_rows draw_maximum
|
||||
window_pixel_size 1
|
||||
window_labels_to_draw 1
|
||||
window_selected_functions { 14, { {cpu, Active Thd}, {appl, Adding}, {task, Adding}, {thread, Last Evt Val}, {node, Adding}, {system, Adding}, {workload, Adding}, {from_obj, All}, {to_obj, All}, {tag_msg, All}, {size_msg, All}, {bw_msg, All}, {evt_type, =}, {evt_value, All} } }
|
||||
window_compose_functions { 9, { {compose_cpu, As Is}, {compose_appl, As Is}, {compose_task, As Is}, {compose_thread, As Is}, {compose_node, As Is}, {compose_system, As Is}, {compose_workload, As Is}, {topcompose1, As Is}, {topcompose2, As Is} } }
|
||||
window_filter_module evt_type 1 30
|
||||
window_filter_module evt_type_label 1 "Unknown"
|
||||
window_synchronize 1
|
||||
|
81
cfg/thread.cfg
Normal file
81
cfg/thread.cfg
Normal file
@ -0,0 +1,81 @@
|
||||
#ParaverCFG
|
||||
ConfigFile.Version: 3.4
|
||||
ConfigFile.NumWindows: 2
|
||||
|
||||
|
||||
################################################################################
|
||||
< NEW DISPLAYING WINDOW Thread: State >
|
||||
################################################################################
|
||||
window_name Thread: State
|
||||
window_type single
|
||||
window_id 1
|
||||
window_position_x 960
|
||||
window_position_y 24
|
||||
window_width 954
|
||||
window_height 499
|
||||
window_comm_lines_enabled true
|
||||
window_flags_enabled true
|
||||
window_noncolor_mode true
|
||||
window_logical_filtered true
|
||||
window_physical_filtered false
|
||||
window_comm_fromto true
|
||||
window_comm_tagsize true
|
||||
window_comm_typeval true
|
||||
window_units Microseconds
|
||||
window_maximum_y 5.000000000000
|
||||
window_minimum_y 1.000000000000
|
||||
window_compute_y_max false
|
||||
window_level thread
|
||||
window_scale_relative 1.000000000000
|
||||
window_end_time_relative 1.000000000000
|
||||
window_object appl { 1, { All } }
|
||||
window_begin_time_relative 0.000000000000
|
||||
window_open true
|
||||
window_drawmode draw_maximum
|
||||
window_drawmode_rows draw_maximum
|
||||
window_pixel_size 1
|
||||
window_labels_to_draw 1
|
||||
window_selected_functions { 14, { {cpu, Active Thd}, {appl, Adding}, {task, Adding}, {thread, Last Evt Val}, {node, Adding}, {system, Adding}, {workload, Adding}, {from_obj, All}, {to_obj, All}, {tag_msg, All}, {size_msg, All}, {bw_msg, All}, {evt_type, =}, {evt_value, All} } }
|
||||
window_compose_functions { 9, { {compose_cpu, As Is}, {compose_appl, As Is}, {compose_task, As Is}, {compose_thread, As Is}, {compose_node, As Is}, {compose_system, As Is}, {compose_workload, As Is}, {topcompose1, As Is}, {topcompose2, As Is} } }
|
||||
window_filter_module evt_type 1 60
|
||||
window_filter_module evt_type_label 1 "Unknown"
|
||||
window_synchronize 1
|
||||
|
||||
################################################################################
|
||||
< NEW DISPLAYING WINDOW Thread: TID >
|
||||
################################################################################
|
||||
window_name Thread: TID
|
||||
window_type single
|
||||
window_id 2
|
||||
window_position_x 960
|
||||
window_position_y 550
|
||||
window_width 954
|
||||
window_height 499
|
||||
window_comm_lines_enabled true
|
||||
window_flags_enabled true
|
||||
window_noncolor_mode true
|
||||
window_logical_filtered true
|
||||
window_physical_filtered false
|
||||
window_comm_fromto true
|
||||
window_comm_tagsize true
|
||||
window_comm_typeval true
|
||||
window_units Microseconds
|
||||
window_maximum_y 426239.000000000000
|
||||
window_minimum_y 426112.000000000000
|
||||
window_compute_y_max false
|
||||
window_level thread
|
||||
window_scale_relative 1.000000000000
|
||||
window_end_time_relative 1.000000000000
|
||||
window_object appl { 1, { All } }
|
||||
window_begin_time_relative 0.000000000000
|
||||
window_open true
|
||||
window_drawmode draw_maximum
|
||||
window_drawmode_rows draw_maximum
|
||||
window_pixel_size 1
|
||||
window_labels_to_draw 1
|
||||
window_selected_functions { 14, { {cpu, Active Thd}, {appl, Adding}, {task, Adding}, {thread, Last Evt Val}, {node, Adding}, {system, Adding}, {workload, Adding}, {from_obj, All}, {to_obj, All}, {tag_msg, All}, {size_msg, All}, {bw_msg, All}, {evt_type, =}, {evt_value, All} } }
|
||||
window_compose_functions { 9, { {compose_cpu, As Is}, {compose_appl, As Is}, {compose_task, As Is}, {compose_thread, As Is}, {compose_node, As Is}, {compose_system, As Is}, {compose_workload, As Is}, {topcompose1, As Is}, {topcompose2, As Is} } }
|
||||
window_filter_module evt_type 1 61
|
||||
window_filter_module evt_type_label 1 "Unknown"
|
||||
window_synchronize 1
|
||||
|
34
emu.c
34
emu.c
@ -12,6 +12,7 @@
|
||||
#include "ovni.h"
|
||||
#include "ovni_trace.h"
|
||||
#include "emu.h"
|
||||
#include "prv.h"
|
||||
|
||||
static void
|
||||
emit_ev(struct ovni_stream *stream, struct ovni_ev *ev)
|
||||
@ -345,6 +346,36 @@ destroy_metadata(struct ovni_emu *emu)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
open_prvs(struct ovni_emu *emu, char *tracedir)
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
|
||||
sprintf(path, "%s/%s", tracedir, "thread.prv");
|
||||
|
||||
emu->prv_thread = fopen(path, "w");
|
||||
|
||||
if(emu->prv_thread == NULL)
|
||||
abort();
|
||||
|
||||
sprintf(path, "%s/%s", tracedir, "cpu.prv");
|
||||
|
||||
emu->prv_cpu = fopen(path, "w");
|
||||
|
||||
if(emu->prv_cpu == NULL)
|
||||
abort();
|
||||
|
||||
prv_header(emu->prv_thread, emu->trace.nstreams);
|
||||
prv_header(emu->prv_cpu, emu->total_cpus + 1);
|
||||
}
|
||||
|
||||
static void
|
||||
close_prvs(struct ovni_emu *emu)
|
||||
{
|
||||
fclose(emu->prv_thread);
|
||||
fclose(emu->prv_cpu);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
@ -371,11 +402,14 @@ main(int argc, char *argv[])
|
||||
if(load_metadata(&emu) != 0)
|
||||
abort();
|
||||
|
||||
open_prvs(&emu, tracedir);
|
||||
|
||||
printf("#Paraver (19/01/38 at 03:14):00000000000000000000_ns:0:1:1(%d:1)\n", emu.total_cpus);
|
||||
|
||||
emulate(&emu);
|
||||
|
||||
close_prvs(&emu);
|
||||
|
||||
destroy_metadata(&emu);
|
||||
|
||||
ovni_free_streams(&emu.trace);
|
||||
|
4
emu.h
4
emu.h
@ -84,6 +84,7 @@ struct ovni_eproc {
|
||||
int pid;
|
||||
int index;
|
||||
int gindex;
|
||||
int appid;
|
||||
|
||||
/* Path of the process tracedir */
|
||||
char dir[PATH_MAX];
|
||||
@ -189,6 +190,9 @@ struct ovni_emu {
|
||||
uint64_t lastclock;
|
||||
int64_t delta_time;
|
||||
|
||||
FILE *prv_thread;
|
||||
FILE *prv_cpu;
|
||||
|
||||
/* Total counters */
|
||||
int total_thread;
|
||||
int total_proc;
|
||||
|
@ -240,6 +240,7 @@ emit_task_running(struct ovni_emu *emu, struct nosv_task *task)
|
||||
{
|
||||
prv_ev_autocpu(emu, PTC_TASK_ID, task->id + 1);
|
||||
prv_ev_autocpu(emu, PTC_TASK_TYPE_ID, task->type_id + 1);
|
||||
prv_ev_autocpu(emu, PTC_APP_ID, emu->cur_proc->appid + 1);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -247,6 +248,7 @@ emit_task_not_running(struct ovni_emu *emu, struct nosv_task *task)
|
||||
{
|
||||
prv_ev_autocpu(emu, PTC_TASK_ID, 0);
|
||||
prv_ev_autocpu(emu, PTC_TASK_TYPE_ID, 0);
|
||||
prv_ev_autocpu(emu, PTC_APP_ID, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
|
18
emu_ovni.c
18
emu_ovni.c
@ -271,12 +271,12 @@ emit_thread_state(struct ovni_emu *emu)
|
||||
row = emu->cur_thread->gindex + 1;
|
||||
tid = emu->cur_thread->tid;
|
||||
|
||||
prv_ev_row(emu, row, PTT_THREAD_STATE, st);
|
||||
prv_ev_thread(emu, row, PTT_THREAD_STATE, st);
|
||||
|
||||
if(st == TH_ST_RUNNING)
|
||||
prv_ev_row(emu, row, PTT_THREAD_TID, tid);
|
||||
prv_ev_thread(emu, row, PTT_THREAD_TID, tid);
|
||||
else
|
||||
prv_ev_row(emu, row, PTT_THREAD_TID, 0);
|
||||
prv_ev_thread(emu, row, PTT_THREAD_TID, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -297,13 +297,13 @@ emit_thread_count(struct ovni_emu *emu)
|
||||
/* Start at 1 */
|
||||
row = i + 1;
|
||||
n = loom->cpu[i].nthreads;
|
||||
prv_ev_row(emu, row, PTC_NTHREADS, n);
|
||||
prv_ev_cpu(emu, row, PTC_NTHREADS, n);
|
||||
|
||||
pid = n == 1 ? loom->cpu[i].thread[0]->proc->pid : 1;
|
||||
prv_ev_row(emu, row, PTC_PROC_PID, pid);
|
||||
prv_ev_cpu(emu, row, PTC_PROC_PID, pid);
|
||||
|
||||
tid = n == 1 ? loom->cpu[i].thread[0]->tid : 1;
|
||||
prv_ev_row(emu, row, PTC_THREAD_TID, tid);
|
||||
prv_ev_cpu(emu, row, PTC_THREAD_TID, tid);
|
||||
}
|
||||
}
|
||||
|
||||
@ -313,13 +313,13 @@ emit_thread_count(struct ovni_emu *emu)
|
||||
/* Place the virtual CPU after the physical CPUs */
|
||||
row = loom->ncpus + 1;
|
||||
n = loom->vcpu.nthreads;
|
||||
prv_ev_row(emu, row, PTC_NTHREADS, n);
|
||||
prv_ev_cpu(emu, row, PTC_NTHREADS, n);
|
||||
|
||||
pid = n == 1 ? loom->vcpu.thread[0]->proc->pid : 1;
|
||||
prv_ev_row(emu, row, PTC_PROC_PID, pid);
|
||||
prv_ev_cpu(emu, row, PTC_PROC_PID, pid);
|
||||
|
||||
tid = n == 1 ? loom->vcpu.thread[0]->tid : 1;
|
||||
prv_ev_row(emu, row, PTC_THREAD_TID, tid);
|
||||
prv_ev_cpu(emu, row, PTC_THREAD_TID, tid);
|
||||
}
|
||||
}
|
||||
|
||||
|
16
ovni.c
16
ovni.c
@ -617,6 +617,18 @@ load_thread(struct ovni_ethread *thread, struct ovni_eproc *proc, int index, int
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
load_proc_metadata(struct ovni_eproc *proc)
|
||||
{
|
||||
JSON_Object *meta;
|
||||
|
||||
meta = json_value_get_object(proc->meta);
|
||||
assert(meta);
|
||||
|
||||
proc->appid = (int) json_object_get_number(meta, "app_id");
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
load_proc(struct ovni_eproc *proc, int index, int pid, char *procdir)
|
||||
{
|
||||
@ -634,9 +646,11 @@ load_proc(struct ovni_eproc *proc, int index, int pid, char *procdir)
|
||||
|
||||
sprintf(path, "%s/%s", procdir, "metadata.json");
|
||||
proc->meta = json_parse_file_with_comments(path);
|
||||
|
||||
assert(proc->meta);
|
||||
|
||||
/* The appid is populated from the metadata */
|
||||
load_proc_metadata(proc);
|
||||
|
||||
if((dir = opendir(procdir)) == NULL)
|
||||
{
|
||||
fprintf(stderr, "opendir %s failed: %s\n",
|
||||
|
@ -124,5 +124,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
ovni_free_streams(&trace);
|
||||
|
||||
fflush(stdout);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
23
prv.c
23
prv.c
@ -5,10 +5,21 @@
|
||||
#include "emu.h"
|
||||
|
||||
void
|
||||
prv_ev_row(struct ovni_emu *emu, int row, int type, int val)
|
||||
prv_ev(FILE *f, int row, int64_t time, int type, int val)
|
||||
{
|
||||
printf("2:0:1:1:%d:%ld:%d:%d\n",
|
||||
row, emu->delta_time, type, val);
|
||||
fprintf(f, "2:0:1:1:%d:%ld:%d:%d\n", row, time, type, val);
|
||||
}
|
||||
|
||||
void
|
||||
prv_ev_thread(struct ovni_emu *emu, int row, int type, int val)
|
||||
{
|
||||
prv_ev(emu->prv_thread, row, emu->delta_time, type, val);
|
||||
}
|
||||
|
||||
void
|
||||
prv_ev_cpu(struct ovni_emu *emu, int row, int type, int val)
|
||||
{
|
||||
prv_ev(emu->prv_cpu, row, emu->delta_time, type, val);
|
||||
}
|
||||
|
||||
void
|
||||
@ -27,11 +38,11 @@ prv_ev_autocpu(struct ovni_emu *emu, int type, int val)
|
||||
/* Begin at 1 */
|
||||
row = cpu->i + 1;
|
||||
|
||||
prv_ev_row(emu, row, type, val);
|
||||
prv_ev_cpu(emu, row, type, val);
|
||||
}
|
||||
|
||||
void
|
||||
prv_header(struct ovni_emu *emu, int nrows)
|
||||
prv_header(FILE *f, int nrows)
|
||||
{
|
||||
printf("#Paraver (19/01/38 at 03:14):00000000000000000000_ns:0:1:1(%d:1)\n", nrows);
|
||||
fprintf(f, "#Paraver (19/01/38 at 03:14):00000000000000000000_ns:0:1:1(%d:1)\n", nrows);
|
||||
}
|
||||
|
13
prv.h
13
prv.h
@ -9,16 +9,27 @@ enum prv_type {
|
||||
PTC_NTHREADS = 12,
|
||||
PTC_TASK_ID = 20,
|
||||
PTC_TASK_TYPE_ID = 21,
|
||||
PTC_APP_ID = 30,
|
||||
|
||||
/* Rows are threads */
|
||||
PTT_THREAD_STATE = 60,
|
||||
PTT_THREAD_TID = 61,
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
prv_ev(FILE *f, int row, int64_t time, int type, int val);
|
||||
|
||||
void
|
||||
prv_ev_thread(struct ovni_emu *emu, int row, int type, int val);
|
||||
|
||||
void
|
||||
prv_ev_cpu(struct ovni_emu *emu, int row, int type, int val);
|
||||
|
||||
void
|
||||
prv_ev_autocpu(struct ovni_emu *emu, int type, int val);
|
||||
|
||||
void
|
||||
prv_ev_row(struct ovni_emu *emu, int row, int type, int val);
|
||||
prv_header(FILE *f, int nrows);
|
||||
|
||||
#endif /* OVNI_PRV_H */
|
||||
|
Loading…
Reference in New Issue
Block a user