-
Notifications
You must be signed in to change notification settings - Fork 1.5k
change the SMP scheduling policy from synchronous to asynchronous #13616
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
[Experimental Bot, please feedback here] NuttX PR Requirements ReviewThis PR appears to meet most NuttX requirements, but some clarifications are needed: Strengths:
Areas for Improvement:
Conciseness: The provided information is concise and well-written. Overall: This PR demonstrates a promising improvement, but requires a more thorough impact assessment and additional testing details before it can be considered complete. |
@hujun260 |
qemu-armv7a:smp |
Please test esp32-devkitc:smp, rv-virt:smp, rv-virt:smp64, rv-virt:ksmp64 and sim:smp, since the PR affects these architectures. |
esp32-devkitc:smp ostest test ok |
reason: Currently, if we need to schedule a task to another CPU, we have to completely halt the other CPU, manipulate the scheduling linked list, and then resume the operation of that CPU. This process is both time-consuming and unnecessary. During this process, both the current CPU and the target CPU are inevitably subjected to busyloop. The improved strategy is to simply send a cross-core interrupt to the target CPU. The current CPU continues to run while the target CPU responds to the interrupt, eliminating the certainty of a busyloop occurring. Signed-off-by: hujun5 <hujun5@xiaomi.com>
which can save processing time. Signed-off-by: hujun5 <hujun5@xiaomi.com>
|
@hujun260 Also,
Hmm, but you modified the sim-related code as well. |
qemu-intel64:smp, i'll fix it as soon as possible #13749 |
reason: In x86_64, g_current_regs is still used for context switching. This commit fixes the regression from apache#13616 Signed-off-by: hujun5 <hujun5@xiaomi.com>
reason: In x86_64, g_current_regs is still used for context switching. This commit fixes the regression from apache#13616 Signed-off-by: hujun5 <hujun5@xiaomi.com>
reason: In x86_64, g_current_regs is still used for context switching. This commit fixes the regression from apache#13616 Signed-off-by: hujun5 <hujun5@xiaomi.com>
reason: In x86_64, g_current_regs is still used for context switching. This commit fixes the regression from #13616 Signed-off-by: hujun5 <hujun5@xiaomi.com>
reason: In x86_64, g_current_regs is still used for context switching. This commit fixes the regression from apache#13616 Signed-off-by: hujun5 <hujun5@xiaomi.com>
reason: In x86_64, g_current_regs is still used for context switching. This commit fixes the regression from apache#13616 Signed-off-by: hujun5 <hujun5@xiaomi.com>
reason: In x86_64, g_current_regs is still used for context switching. This commit fixes the regression from #13616 Signed-off-by: hujun5 <hujun5@xiaomi.com>
Summary
Impact
all smp arch
Testing
We performed performance testing on the Cortex-R82 ARM64 SMP chip. Sending messages through a message queue which causes context switching. We recorded the time from sending a message to receiving it, with the time unit being cycles.

we also use monkey test in armv7-a