You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gn...@apache.org on 2020/02/09 13:38:54 UTC

[incubator-nuttx] 07/07: sim/README.txt: Update the SMP related section

This is an automated email from the ASF dual-hosted git repository.

gnutt pushed a commit to branch pr236
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 8bcb541d2de7af93dbc85f4b02b6d237dae8b9f0
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Sun Feb 9 19:18:40 2020 +0800

    sim/README.txt: Update the SMP related section
    
    Change-Id: I81db2697c133a1941f7bb6033d57b0ca18c9d9c0
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 boards/sim/sim/sim/README.txt | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/boards/sim/sim/sim/README.txt b/boards/sim/sim/sim/README.txt
index 722d228..d6673ee 100644
--- a/boards/sim/sim/sim/README.txt
+++ b/boards/sim/sim/sim/README.txt
@@ -288,6 +288,9 @@ SMP
   result is undefined:
   http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1318.htm
 
+  Update: The dead lock is due to up_testset call pthread API for synchronization
+  inside the signal handler. After swiching to atomic API, the problem get resolved.
+
   You can enable SMP for ostest configuration by enabling:
 
     +CONFIG_SPINLOCK=y
@@ -322,6 +325,19 @@ SMP
   often simuart_post() will be called from CPU1 and it will try to restart NSH
   on CPU0 and, again, the same quirkiness occurs.
 
+  Update: Only CPU0 call up_idle now, other CPUs have a simple idle loop:
+
+    /* The idle Loop */
+
+    for (; ; )
+      {
+        /* Give other pthreads/CPUs a shot */
+
+        pthread_yield();
+      }
+
+  So it isn't a problem any more.
+
   But for example, this command:
 
     nsh> sleep 1 &