aboutsummaryrefslogtreecommitdiff
path: root/src/core/core_cpu.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2019-10-15 11:48:30 -0400
committerGitHub <noreply@github.com>2019-10-15 11:48:30 -0400
commite3d6f4e0875137b9247c4e31cde476f550a054ae (patch)
tree1664df6e9abff74f37adee0c90ae3c9eaff6babf /src/core/core_cpu.cpp
parent09223fe3721619922dcce8ff736307f009420ec3 (diff)
parentb7d07d5a734f7a6974c76274b71a770bcb1af168 (diff)
Merge pull request #2965 from FernandoS27/fair-core-timing
Core Timing: Rework Core Timing to run all cores evenly.
Diffstat (limited to 'src/core/core_cpu.cpp')
-rw-r--r--src/core/core_cpu.cpp14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/core/core_cpu.cpp b/src/core/core_cpu.cpp
index 21c410e342..6bd9639c6e 100644
--- a/src/core/core_cpu.cpp
+++ b/src/core/core_cpu.cpp
@@ -85,24 +85,16 @@ void Cpu::RunLoop(bool tight_loop) {
// instead advance to the next event and try to yield to the next thread
if (Kernel::GetCurrentThread() == nullptr) {
LOG_TRACE(Core, "Core-{} idling", core_index);
-
- if (IsMainCore()) {
- // TODO(Subv): Only let CoreTiming idle if all 4 cores are idling.
- core_timing.Idle();
- core_timing.Advance();
- }
-
+ core_timing.Idle();
+ core_timing.Advance();
PrepareReschedule();
} else {
- if (IsMainCore()) {
- core_timing.Advance();
- }
-
if (tight_loop) {
arm_interface->Run();
} else {
arm_interface->Step();
}
+ core_timing.Advance();
}
Reschedule();