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 2021/05/25 23:41:10 UTC

[GitHub] [incubator-nuttx] masayuki2009 commented on pull request #3698: sched/task: Simplify the syscall handling of task_spawn

masayuki2009 commented on pull request #3698:
URL: https://github.com/apache/incubator-nuttx/pull/3698#issuecomment-848340527


   >we have to merge this PR and apache/incubator-nuttx-apps#710 together. And watch the potential(unlikely) build break.
   
   @xiaoxiang781216 
   I tried both branches with sabre-6quad:smp (QEMU).
   
   ```
   CC:  task/task_spawn.c
   In file included from /mnt/m2ssd/opensource/github_xiang/nuttx-xiang/include/nuttx/mm/shm.h:30,
                    from /mnt/m2ssd/opensource/github_xiang/nuttx-xiang/include/nuttx/sched.h:41,
                    from /mnt/m2ssd/opensource/github_xiang/nuttx-xiang/include/sched.h:36,
                    from task/task_spawn.c:28:
   task/task_spawn.c: In function 'task_spawn':
   task/task_spawn.c:321:9: warning: format '%p' expects argument of type 'void *', but argument 3 has type 'int' [-Wformat=]
     321 |   sinfo("pid=%p name=%s entry=%p file_actions=%p attr=%p argv=%p\n",
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     322 |         pid, name, entry, file_actions, attr, argv);
         |         ~~~
         |         |
         |         int
   task/task_spawn.c:321:15: note: format string is defined here
     321 |   sinfo("pid=%p name=%s entry=%p file_actions=%p attr=%p argv=%p\n",
         |              ~^
         |               |
         |               void *
         |              %d
   task/task_spawn.c:332:32: warning: passing argument 1 of 'nxtask_spawn_exec' makes pointer from integer without a cast [-Wint-conversion]
     332 |       return nxtask_spawn_exec(pid, name, entry, attr, argv);
         |                                ^~~
         |                                |
         |                                pid_t {aka short int}
   task/task_spawn.c:87:41: note: expected 'pid_t *' {aka 'short int *'} but argument is of type 'pid_t' {aka 'short int'}
      87 | static int nxtask_spawn_exec(FAR pid_t *pidp, FAR const char *name,
         |                                  ~~~~~~~^~~~
   task/task_spawn.c:332:14: warning: 'pid' may be used uninitialized in this function [-Wmaybe-uninitialized]
     332 |       return nxtask_spawn_exec(pid, name, entry, attr, argv);
         |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ```
   
   ```
   nsh> ps
     PID CPU PRI POLICY   TYPE    NPX STATE    EVENT     SIGMASK   STACK   USED  FILLED COMMAND
       0   0   0 FIFO     Kthread N-- Assigned           00000000 001024 000392  38.2%  CPU0 IDLE
       1   1   0 FIFO     Kthread N-- Running            00000000 001024 000208  20.3%  CPU1 IDLE
       2   2   0 FIFO     Kthread N-- Running            00000000 001024 000208  20.3%  CPU2 IDLE
       3   3   0 FIFO     Kthread N-- Running            00000000 001024 000208  20.3%  CPU3 IDLE
       5 --- 192 RR       Kthread --- Waiting  Signal    00000000 002032 000192   9.4%  hpwork
       6   0 100 RR       Task    --- Running            00000000 002032 000992  48.8%  init
   nsh> hello
   arm_dataabort: Data abort. PC: 10813ca8 DFAR: 00001081 DFSR: 0000080d
   up_assert: Assertion failed CPU0 at file:armv7-a/arm_dataabort.c line: 160 task: init
   up_registerdump: R0: 00000007 00000000 00000000 00000000 00000000 10832808 00001081 108229ba
   up_registerdump: R8: 1081766c 1081766c 10832808 fffffff1 1082ea60 10832798 108024a0 10813ca8
   up_registerdump: CPSR: 20000053
   up_dumpstate: Current sp: 10832670
   up_dumpstate: Interrupt stack:
   up_dumpstate:   base: 1082aa38
   up_dumpstate:   size: 00000800
   up_dumpstate:   used: 000000d8
   up_dumpstate: User stack:
   up_dumpstate:   base: 108321c0
   up_dumpstate:   size: 000007f0
   up_dumpstate:   used: 0000042c
   up_dumpstate: ERROR: Stack pointer is not within the interrupt stack
   ```


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