ARM64 SMP IRQ stack bug modify request #13652
Draft
+1
−1
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.
Summary
ARM64 SMP IRQ stack bug modify request
In previous PR:
#13520
We have fix a SMP bug in ARM64, will cause by don't use interrupt stack in SMP mode.
The rootcause you can find in the SMP description:
So we must use the IRQ stack in svc/IRQ ISR entry:
arm64_sync_exc
arm64_irq_handler
But this modification has conflict with the kernel mode which provide by @pussuw @jlaitine
Then we revert the changes emergency in :
#13590
But this bug still exist in current code.
There are two method to resolve this:
and I will fix this bug in my method, then you can apply your kernel mode changes.
Another thing, about the FPU,
The removable of FPU trap reason:
Or, you must use -mgeneral-regs-only to limit the FPU registers usage, that will harmful for the speed.
So, suggest remove the FPU trap, save/restore in every context switch, similar with ARMv7-a/r
Impact
None
Testing
None