fixed fail in the tasking profiler

This commit is contained in:
2023-08-01 10:15:34 +02:00
parent ae1b675d34
commit 1d28f43a83
2 changed files with 7 additions and 6 deletions

View File

@@ -201,7 +201,7 @@ void TaskingProfiler::saveProfile()
for(std::uint16_t cpu_id = 0; cpu_id < total_cores; cpu_id++) for(std::uint16_t cpu_id = 0; cpu_id < total_cores; cpu_id++)
{ {
//Metadata Events for each core (CPU instead of process as name,...) //Metadata Events for each core (CPU instead of process as name,...)
Genode::log("{\"name\":\"process_name\",\"ph\":\"M\",\"pid\":", cpu_id, ",\"args\":{\"name\":\"CPU\"}},"); Genode::log("{\"name\":\"process_name\",\"ph\":\"M\",\"pid\":", cpu_id, ",\"tid\":", cpu_id, ",\"args\":{\"name\":\"CPU\"}},");
Genode::log("{\"name\":\"process_sort_index\",\"ph\":\"M\",\"pid\":", cpu_id, ",\"tid\":", cpu_id, ",\"args\":{\"name\":", cpu_id, "}},"); Genode::log("{\"name\":\"process_sort_index\",\"ph\":\"M\",\"pid\":", cpu_id, ",\"tid\":", cpu_id, ",\"args\":{\"name\":", cpu_id, "}},");
if (mx::tasking::config::use_task_queue_length()){ if (mx::tasking::config::use_task_queue_length()){

View File

@@ -105,7 +105,7 @@ void Worker::execute()
{ {
case synchronization::primitive::ScheduleWriter: case synchronization::primitive::ScheduleWriter:
if constexpr (config::use_tasking_profiler()){ if constexpr (config::use_tasking_profiler()){
task_id_profiler = TaskingProfiler::getInstance().startTask(core_id, 0, typeid(*task).name()); task_id_profiler = TaskingProfiler::getInstance().startTask(channel_id, 0, typeid(*task).name());
result = this->execute_optimistic(core_id, channel_id, task); result = this->execute_optimistic(core_id, channel_id, task);
TaskingProfiler::getInstance().endTask(channel_id, task_id_profiler); TaskingProfiler::getInstance().endTask(channel_id, task_id_profiler);
} }
@@ -115,7 +115,7 @@ void Worker::execute()
break; break;
case synchronization::primitive::OLFIT: case synchronization::primitive::OLFIT:
if constexpr (config::use_tasking_profiler()){ if constexpr (config::use_tasking_profiler()){
task_id_profiler = TaskingProfiler::getInstance().startTask(core_id, 0, typeid(*task).name()); task_id_profiler = TaskingProfiler::getInstance().startTask(channel_id, 0, typeid(*task).name());
result = this->execute_olfit(core_id, channel_id, task); result = this->execute_olfit(core_id, channel_id, task);
TaskingProfiler::getInstance().endTask(channel_id, task_id_profiler); TaskingProfiler::getInstance().endTask(channel_id, task_id_profiler);
} }
@@ -126,7 +126,7 @@ void Worker::execute()
case synchronization::primitive::ScheduleAll: case synchronization::primitive::ScheduleAll:
case synchronization::primitive::None: case synchronization::primitive::None:
if constexpr (config::use_tasking_profiler()){ if constexpr (config::use_tasking_profiler()){
task_id_profiler = TaskingProfiler::getInstance().startTask(core_id, 0, typeid(*task).name()); task_id_profiler = TaskingProfiler::getInstance().startTask(channel_id, 0, typeid(*task).name());
result = task->execute(core_id, channel_id); result = task->execute(core_id, channel_id);
TaskingProfiler::getInstance().endTask(channel_id, task_id_profiler); TaskingProfiler::getInstance().endTask(channel_id, task_id_profiler);
} }
@@ -136,7 +136,7 @@ void Worker::execute()
break; break;
case synchronization::primitive::ReaderWriterLatch: case synchronization::primitive::ReaderWriterLatch:
if constexpr (config::use_tasking_profiler()){ if constexpr (config::use_tasking_profiler()){
task_id_profiler = TaskingProfiler::getInstance().startTask(core_id, 0, typeid(*task).name()); task_id_profiler = TaskingProfiler::getInstance().startTask(channel_id, 0, typeid(*task).name());
result = Worker::execute_reader_writer_latched(core_id, channel_id, task); result = Worker::execute_reader_writer_latched(core_id, channel_id, task);
TaskingProfiler::getInstance().endTask(channel_id, task_id_profiler); TaskingProfiler::getInstance().endTask(channel_id, task_id_profiler);
} }
@@ -146,7 +146,8 @@ void Worker::execute()
break; break;
case synchronization::primitive::ExclusiveLatch: case synchronization::primitive::ExclusiveLatch:
if constexpr (config::use_tasking_profiler()){ if constexpr (config::use_tasking_profiler()){
task_id_profiler = TaskingProfiler::getInstance().startTask(core_id, 0, typeid(*task).name()); task_id_profiler = TaskingProfiler::getInstance().startTask(channel_id, 0, typeid(*task).name());
Genode::log("Core ", core_id, " Channel ", channel_id, " ScheduleWriter");
result = Worker::execute_exclusive_latched(core_id, channel_id, task); result = Worker::execute_exclusive_latched(core_id, channel_id, task);
TaskingProfiler::getInstance().endTask(channel_id, task_id_profiler); TaskingProfiler::getInstance().endTask(channel_id, task_id_profiler);
} }