-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
arm64 smp hangs on the sched_unlock call in nx_start function #11915
Comments
@hnwxd since this code is generic for all SMP chips, I think it is fine. What board are you using? @xiaoxiang781216 @anchao did you find this issue on your side? |
|
qemu and fvp support arm64, you can compare the difference with your hardware. |
You're right. It is not right for all the results debug to be CPU0 at the end of It's my problem, because the implementation of I found this problem when I used The The Thank you for your help! @acassis @xiaoxiang781216 |
@hnwxd I'm happy you should it! Please consider submitting your work on imx8 and rk3399, there are many people willing to use it with NuttX ;-) |
I just changed the arm64_gic_send_sgi function.
I delete this judgment and use
Just like the implementation in the
Why is the |
The pr "Add support for FIQ interrupts" made this change. |
For arm64 smp, in nx_start function, after nx_smp_start and nx_bringup execute, the cpu will hang on up_testset when they call sched_unlock.
In nx_start function, if change
g_idletcb[i].cmn.affinity = (cpu_set_t)(CONFIG_SMP_DEFAULT_CPUSET & SCHED_ALL_CPUS)
tog_idletcb[i].cmn.affinity = (cpu_set_t)(1<< i);
then smp can run normally.I want to ask whether the value of
g_idletcb[i].cmn.affinity
should be the bit of the current core or the bit of all cores.When the comment says
No, this IDLE thread can only run on its assigned CPU.
The arm64 up is normal.
If enable smp and choose CONFIG_SMP_NCPUS =1 , is normal too.
The text was updated successfully, but these errors were encountered: