lzc1001 opened a new issue, #14257:
URL: https://github.com/apache/nuttx/issues/14257

   ### Description
   
   Hi everyone!
   I want to boot multi-core on FVP A510. After cpu1 run to WFI instruction, 
cpu0 run to "while (up_testset(lock) == SP_LOCKED)"  loop. This flow is: 
sched_unlock() (in nx_start()) -> nxsched_merge_pending() -> 
nxsched_add_readytorun() -> "DEBUGVERIFY(up_cpu_pause(cpu));" -> 
"spin_lock(&g_cpu_paused[cpu]);" -> spin_lock() -> "while (up_testset(lock) == 
SP_LOCKED)" in spin_lock(), then the code is still run in this loop. the input 
parameter "cpu" of up_cpu_pause() is 1 because of the task in “btcb” belong to 
cpu1 but the code run on cpu0 currently, and the cpu1 is in idle loop. So, it 
seem that cpu0 is waiting cpu1 to end its task but cpu1 task is still running. 
I don't know how to solve this issue and I don't konw the task scheduler how to 
work correctly in this case  
   Thank you very much!
   
![image](https://github.com/user-attachments/assets/7dbf1680-ac36-40b6-9138-18736f02cc9c)
   
![image](https://github.com/user-attachments/assets/b0a45a2b-fb2a-4458-a413-fd0c0459db4b)
   
![image](https://github.com/user-attachments/assets/bd9daf2b-a1fe-4fac-bd6b-3bb71f8d3b84)
   
![image](https://github.com/user-attachments/assets/4646d48b-1dc0-47ac-8c92-179c700e3ffc)
   
![image](https://github.com/user-attachments/assets/aa509335-5190-4a69-bcb6-90eae1d5a6b2)
   
   
   
   ### Verification
   
   - [X] I have verified before submitting the report.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to