-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
smpcall: add nxsched_smp_call_async and nxsched_smp_call_single_async #14656
Conversation
[Experimental Bot, please feedback here] The PR appears to partially meet the NuttX requirements. While it provides a reason for the change and identifies the affected functional area, it lacks crucial details. Here's a breakdown: Missing/Insufficient Information:
Recommendations for Improvement:
By providing the missing information and following these recommendations, the PR will better meet the NuttX requirements and increase the likelihood of it being accepted. |
reason: The old implementation of the SMP call, even when using the "no wait" parameter, could still result in waiting, if invoking it within a critical section may lead to deadlocks. Therefore, in order to implement a truly asynchronous SMP call strategy, we have added nxsched_smp_call_async. Signed-off-by: hujun5 <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
A deadlock happens with esp32-devkitc:smp (QEMU)
|
Ok, let me check this issue |
@hujun260 |
Update: Sorry my repo may be outdated, lemme recheck...
https://github.com/nuttxpr2/nuttx/actions/runs/11697271041/job/32575765356#step:7:181 |
@masayuki2009 |
@hujun260 I just confirmed that
https://github.com/NuttX/nuttx/actions/runs/11698181980/job/32578126735#step:7:181 |
|
Summary
reason:
The old implementation of the SMP call, even when using the "no wait" parameter, could still result in waiting, if invoking it within a critical section may lead to deadlocks. Therefore, in order to implement a truly asynchronous SMP call strategy, we have added nxsched_smp_call_async.
apache/nuttx-apps#2822
#14656
These two pull requests (PRs) must be merged together.
Impact
smp call
Testing
ci ostest
Build Host:
Configuring NuttX and compile:
$ ./tools/configure.sh -l qemu-armv8a:nsh_smp
$ make
Running with qemu
$ qemu-system-aarch64 -cpu cortex-a53 -smp 4 -nographic
-machine virt,virtualization=on,gic-version=3
-net none -chardev stdio,id=con,mux=on -serial chardev:con
-mon chardev=con,mode=readline -kernel ./nuttx