You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2020/10/26 01:09:41 UTC

[GitHub] [incubator-nuttx] btashton edited a comment on pull request #2109: Revert "arch/sim: Make the SIGUSR1 host signal use the NuttX irq logic"

btashton edited a comment on pull request #2109:
URL: https://github.com/apache/incubator-nuttx/pull/2109#issuecomment-716249228


   If you let it loop a few times you will hit this.  Here is what gdb has to say
   ```c++
   (gdb) info_nxthreads 
   target examined 
   _target_arch.name=i386:x86-64
   $_target_has_fpu : 0 
   $_target_has_smp : 1 
   saved current_tcb (pid=0) 
   * 0 Thread 0x446740  (Name: CPU0 IDLE, State: Running, Priority: 0) 0x2d8da801 in clock_nanosleep@GLIBC_2.2.5()
     1 Thread 0x446880  (Name: CPU1 IDLE, State: Running, Priority: 0) 0x40148b in up_cpu_paused()
     2 Thread 0x4469c0  (Name: CPU2 IDLE, State: Running, Priority: 0) 0x40148b in up_cpu_paused()
     3 Thread 0x446b00  (Name: CPU3 IDLE, State: Running, Priority: 0) 0x40148b in up_cpu_paused()
     5 Thread 0x29810950  (Name: init, State: Waiting,Signal, Priority: 100) 0x40862e in up_block_task()
     6 Thread 0x29813550  (Name: ostest, State: Waiting,Signal, Priority: 100) 0x40862e in up_block_task()
     7 Thread 0x29815b50  (Name: ostest, State: Waiting,Semaphore, Priority: 100) 0x40862e in up_block_task()
   (gdb) nx
   nxcontinue       nxthread         nxthread_all_bt  
   (gdb) nxthread_all_bt 
   * 0 Thread 0x446740  (Name: CPU0 IDLE, State: Running, Priority: 0) 0x2d8da801 in clock_nanosleep@GLIBC_2.2.5()
   #0  0x00007f032d8da801 in clock_nanosleep@GLIBC_2.2.5 () from /lib64/libc.so.6
   #1  0x00007f032d8e0157 in nanosleep () from /lib64/libc.so.6
   #2  0x00007f032d90b869 in usleep () from /lib64/libc.so.6
   #3  0x00000000004301d9 in host_sleepuntil (nsec=317590000000) at sim/up_hosttime.c:92
   #4  0x0000000000408d1f in up_timer_update () at sim/up_oneshot.c:444
   #5  0x0000000000408203 in up_idle () at sim/up_idle.c:119
   #6  0x0000000000401b72 in nx_start () at init/nx_start.c:832
   #7  0x00000000004013c3 in main (argc=1, argv=0x7ffdf9ad7828, envp=0x7ffdf9ad7838) at sim/up_head.c:96
     1 Thread 0x446880  (Name: CPU1 IDLE, State: Running, Priority: 0) 0x40148b in up_cpu_paused()
   #0  up_cpu_paused (cpu=1) at sim/up_smpsignal.c:119
   #1  0x00000000004305d0 in sim_handle_signal (signo=10, info=0x7f032980d830, context=0x7f032980d700) at sim/up_simsmp.c:202
   #2  <signal handler called>
   #3  0x00007f032d8da801 in clock_nanosleep@GLIBC_2.2.5 () from /lib64/libc.so.6
   #4  0x00007f032d8e0157 in nanosleep () from /lib64/libc.so.6
   #5  0x00007f032d90b869 in usleep () from /lib64/libc.so.6
   #6  0x00000000004301d9 in host_sleepuntil (nsec=331230000000) at sim/up_hosttime.c:92
   #7  0x000000000043059f in sim_idle_trampoline (arg=0x7ffdf9ad7630) at sim/up_simsmp.c:172
   #8  0x00007f032d9f0432 in start_thread () from /lib64/libpthread.so.0
   #9  0x00007f032d913913 in clone () from /lib64/libc.so.6
     2 Thread 0x4469c0  (Name: CPU2 IDLE, State: Running, Priority: 0) 0x40148b in up_cpu_paused()
   #0  up_cpu_paused (cpu=2) at sim/up_smpsignal.c:119
   #1  0x00000000004305d0 in sim_handle_signal (signo=10, info=0x7f032900c830, context=0x7f032900c700) at sim/up_simsmp.c:202
   #2  <signal handler called>
   #3  0x00007f032d8da801 in clock_nanosleep@GLIBC_2.2.5 () from /lib64/libc.so.6
   #4  0x00007f032d8e0157 in nanosleep () from /lib64/libc.so.6
   #5  0x00007f032d90b869 in usleep () from /lib64/libc.so.6
   #6  0x00000000004301d9 in host_sleepuntil (nsec=331230000000) at sim/up_hosttime.c:92
   #7  0x000000000043059f in sim_idle_trampoline (arg=0x7ffdf9ad7630) at sim/up_simsmp.c:172
   #8  0x00007f032d9f0432 in start_thread () from /lib64/libpthread.so.0
   #9  0x00007f032d913913 in clone () from /lib64/libc.so.6
     3 Thread 0x446b00  (Name: CPU3 IDLE, State: Running, Priority: 0) 0x40148b in up_cpu_paused()
   #0  up_cpu_paused (cpu=3) at sim/up_smpsignal.c:119
   #1  0x00000000004305d0 in sim_handle_signal (signo=10, info=0x7f032880b830, context=0x7f032880b700) at sim/up_simsmp.c:202
   #2  <signal handler called>
   #3  0x00007f032d8da801 in clock_nanosleep@GLIBC_2.2.5 () from /lib64/libc.so.6
   #4  0x00007f032d8e0157 in nanosleep () from /lib64/libc.so.6
   #5  0x00007f032d90b869 in usleep () from /lib64/libc.so.6
   #6  0x00000000004301d9 in host_sleepuntil (nsec=331230000000) at sim/up_hosttime.c:92
   #7  0x000000000043059f in sim_idle_trampoline (arg=0x7ffdf9ad7630) at sim/up_simsmp.c:172
   #8  0x00007f032d9f0432 in start_thread () from /lib64/libpthread.so.0
   #9  0x00007f032d913913 in clone () from /lib64/libc.so.6
     5 Thread 0x29810950  (Name: init, State: Waiting,Signal, Priority: 100) 0x40862e in up_block_task()
   #0  up_block_task (tcb=0x7f0329810950, task_state=TSTATE_WAIT_SIG) at sim/up_blocktask.c:121
   #1  0x000000000041c5e1 in nxsig_timedwait (set=0x7f0329812a8c, info=0x7f0329812a90, timeout=0x0) at signal/sig_timedwait.c:355
   #2  0x000000000041c287 in nx_waitpid (pid=6, stat_loc=0x7f0329812b44, options=4) at sched/sched_waitpid.c:401
   #3  0x000000000041c304 in waitpid (pid=6, stat_loc=0x7f0329812b44, options=4) at sched/sched_waitpid.c:584
   #4  0x0000000000411da5 in nsh_builtin (vtbl=0x7f0329813030, cmd=0x7f03298134e8 "ostest", argv=0x7f0329812c40, redirfile=0x0, oflags=0) at nsh_builtin.c:163
   #5  0x000000000040a541 in nsh_execute (vtbl=0x7f0329813030, argc=1, argv=0x7f0329812c40, redirfile=0x0, oflags=0) at nsh_parse.c:528
   #6  0x000000000040ca12 in nsh_parse_command (vtbl=0x7f0329813030, cmdline=0x7f03298134e8 "ostest") at nsh_parse.c:2578
   #7  0x000000000040caf2 in nsh_parse (vtbl=0x7f0329813030, cmdline=0x7f03298134e8 "ostest") at nsh_parse.c:2662
   #8  0x0000000000409569 in nsh_session (pstate=0x7f0329813030, login=1 '\001', argc=1, argv=0x7f0329812ec0) at nsh_session.c:191
   #9  0x0000000000408dfd in nsh_consolemain (argc=1, argv=0x7f0329812ec0) at nsh_consolemain.c:115
   #10 0x0000000000408d84 in nsh_main (argc=1, argv=0x7f0329812ec0) at nsh_main.c:168
   #11 0x0000000000405ed5 in nxtask_startup (entrypt=0x408d27 <nsh_main>, argc=1, argv=0x7f0329812ec0) at sched/task_startup.c:165
   #12 0x0000000000402786 in nxtask_start () at task/task_start.c:147
   #13 0x0000000000000000 in ?? ()
     6 Thread 0x29813550  (Name: ostest, State: Waiting,Signal, Priority: 100) 0x40862e in up_block_task()
   #0  up_block_task (tcb=0x7f0329813550, task_state=TSTATE_WAIT_SIG) at sim/up_blocktask.c:121
   #1  0x000000000041c5e1 in nxsig_timedwait (set=0x7f03298159ac, info=0x7f03298159b0, timeout=0x0) at signal/sig_timedwait.c:355
   #2  0x000000000041c287 in nx_waitpid (pid=7, stat_loc=0x7f0329815a48, options=0) at sched/sched_waitpid.c:401
   #3  0x000000000041c304 in waitpid (pid=7, stat_loc=0x7f0329815a48, options=0) at sched/sched_waitpid.c:584
   #4  0x0000000000423bfa in ostest_main (argc=1, argv=0x7f0329815ac0) at ostest_main.c:640
   #5  0x0000000000405ed5 in nxtask_startup (entrypt=0x423a61 <ostest_main>, argc=1, argv=0x7f0329815ac0) at sched/task_startup.c:165
   #6  0x0000000000402786 in nxtask_start () at task/task_start.c:147
   #7  0x0000000000000000 in ?? ()
     7 Thread 0x29815b50  (Name: ostest, State: Waiting,Semaphore, Priority: 100) 0x40862e in up_block_task()
   #0  up_block_task (tcb=0x7f0329815b50, task_state=TSTATE_WAIT_SEM) at sim/up_blocktask.c:121
   #1  0x0000000000404518 in nxsem_wait (sem=0x7f03298184be) at semaphore/sem_wait.c:153
   #2  0x0000000000404563 in nxsem_wait_uninterruptible (sem=0x7f03298184be) at semaphore/sem_wait.c:222
   #3  0x00000000004041be in pthread_sem_take (sem=0x7f03298184be, abs_timeout=0x0, intr=0 '\000') at pthread/pthread_initialize.c:119
   #4  0x000000000042cb84 in pthread_join (thread=106, pexit_value=0x0) at pthread/pthread_join.c:185
   #5  0x0000000000428c18 in test_two_threads () at pthread_rwlock.c:272
   #6  0x0000000000429024 in pthread_rwlock_test () at pthread_rwlock.c:445
   #7  0x00000000004238a5 in user_main (argc=5, argv=0x7f03298180f0) at ostest_main.c:423
   #8  0x0000000000405ed5 in nxtask_startup (entrypt=0x423585 <user_main>, argc=5, argv=0x7f03298180f0) at sched/task_startup.c:165
   #9  0x0000000000402786 in nxtask_start () at task/task_start.c:147
   #10 0x0000000000000000 in ?? ()
   ```


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org