armv7a9-zynq7000-qemu: disable SMP #1098
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Due to poor performance under QEMU when SMP kernel is enabled, change device tree used by QEMU to a single-core system.
Description
Without this change QEMU would run very slowly after the SMP kernel is implemented. Single-thread workloads such as reading from emulated Flash would slow down by about 5x in internal testing. This slowdown is caused by an interaction between idle thread implementation in our kernel and inefficiencies in QEMU CPU and timer emulation. This slowdown only occurs on QEMU, not on real hardware. Because our CI testing setup already includes physical zynq7000 devices, I think limiting QEMU to only emulate one core is a reasonable solution.
Motivation and Context
Without this change some CI tests on armv7a9-zynq7000-qemu would trigger timeouts. It is needed to merge phoenix-rtos/phoenix-rtos-kernel#548
Types of changes
How Has This Been Tested?
Checklist:
Special treatment