Commit Graph

1903 Commits

Author SHA1 Message Date
ligd 0bb32f27c0 init: use exec_spawn instead of exec
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-12-24 08:23:30 -06:00
ligd 10ccba6671 init: move USERMAIN_XX out of INIT_ENTRYPOINT
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-12-24 08:23:30 -06:00
ligd e5420c8eee wqueue: fix NO leave_critical_section() when only CONFIG_SCHED_HPWORK
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-12-23 02:27:34 -06:00
Nathan Hartman 878c347bb6 sched: Fix typos in comments
sched/pthread/pthread_mutextimedlock.c:
sched/pthread/pthread_mutextrylock.c:

    * Fix typos in comments. No functional change.
2021-12-21 11:07:23 -06:00
Juha Niskanen 422ceec99b Fix typos in comments and Kconfig files
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2021-12-21 03:26:16 -06:00
anjiahao 9a53601ba9 sched:add holder in sem_trywait
Avoid priority rollover

Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2021-12-17 11:28:27 -06:00
raiden00pl e2c9f612c9 sched/init/nx_start.c: fix compile break when CONIFG_TASK_NAME_SIZE=0 2021-12-17 10:29:00 +01:00
zhanghu6 f56aefaa41 sched_note: change uint32_t nbi_module into uint8_t array, because variables keep the same style that use uint8_t array
sched_note: add note dump module tag definitions

NOTE_MODULE(a, b, c, d)

example:
define TEST_MODULE NOTE_MODULE('t', 'e', 's', 't')
sched_note_dump(TEST_MODULE, event, data, len);

define AUDIO_MODULE NOTE_MODULE('a', 'u', 'd', 'i')
sched_note_dump(AUDIO_MODULE, event, data, len);
2021-12-16 04:18:17 -06:00
zhanghu6 d05b9a9c79 note dump: add CONFIG_SCHED_INSTRUMENTATION_SWITCH
1. If CONFIG_SCHED_INSTRUMENTATION_SWITCH is enabled, then these additional interfaces are expected:
        sched_note_suspend
        sched_note_resume
at the same time,If CONFIG_SMP is enabled,then expected:
        sched_note_cpu_pause
        sched_note_cpu_paused
        sched_note_cpu_resume
        sched_note_cpu_resumed
2. other board if enable SCHED_INSTRUMENTATION,SCHED_INSTRUMENTATION_SWITCH to defconfig.
2021-12-15 07:07:00 -06:00
zhanghu6 a32d14cb9c sched note trace: and note dump
note_type NOTE_DUMP_STRING API:
sched_note_string
sched_note_vprintf
sched_note_printf

note_type NOTE_DUMP_BINARY API:
sched_note_dump
sched_note_vbprintf
sched_note_bprintf
2021-12-13 21:21:22 -06:00
ligd 166a9210ca wqueue: update wqueue to support using wqueue before wqueue start
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-12-13 21:16:25 -06:00
Jiuzhu Dong 6b5a7a73ba sim: add CONFIG_SIM_STACKSIZE_ADJUSTMENT to reduce variability
between sim and other different platform stack size setting

Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-12-13 21:15:30 -06:00
chao.an 4703ef93cc sched/semaphore: remove redundant goto case
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-12-13 14:38:44 +09:00
chao.an 102a6357ca Revert "sched: Remove a redundant critical section"
There is a potential problem that can lead to deadlock at
condition wait, if the timeout of watchdog is a very small value
(1 tick ?), the timer interrupt will come before the nxsem_wait()

Revert "sched: pthread: Remove a redundant critical section in pthread_condclockwsait.c"
Revert "sched: semaphore: Remove a redundant critical section in nxsem_clockwait()"
Revert "sched: semaphore: Remove a redundant critical section in nxsem_tickwait()"

This reverts commit 7758f3dcb1.
This reverts commit 2976bb212e.
This reverts commit 65dec5d10a.

Signed-off-by: chao.an <anchao@xiaomi.com>
2021-12-13 14:38:44 +09:00
Xiang Xiao 1af8cd4de8 sched: Move argv from tcb_s to task_info_s
argv is allocated from stack and then belong to userspace,
so task_info_s is a best location to hold this information.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-12-11 10:08:53 -06:00
Masayuki Ishikawa 83edd2fbba sched: signal: Introduce a private spinlock in sig_action.c
Summary:
- This commit introduces a private spinlock in sig_action.c

Impact:
- None

Testing:
- Tested with spresense:wifi_smp and spresense:wifi

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2021-12-09 00:13:31 -06:00
ligd 2f55807acb sched/signal: add spinlock to g_sigfreeaction
To avoid nxsig_alloc_action() & nxsig_release_action() competition

Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-12-09 11:55:24 +09:00
Huang Qi 58e0781e2e arch/arm: Implement TLS support
Signed-off-by: Huang Qi <no1wudi@qq.com>
2021-12-07 23:31:41 -06:00
anjiahao 9f4d236531 sched_waitpid:delete debugassert
If a task registers SIGCHLD, uses waitpid(-1)
in the handler, and the task also calls waitpid,
it will fail to delete the child function

Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2021-12-03 01:17:15 -06:00
Abdelatif Guettouche 7776c6ad0e sched_note.c: Condition g_note_disabled_irq_nest with
INSTRUMENTATION_IRQHANDLER to avoid warnings.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2021-11-27 06:16:23 -06:00
zhuyanlin 060b99d67c sched:watchdog: remove tick check in wd_timer
In scene with CONFIG_SCHED_TICKLESS but no CONFIG_SCHED_TICKLESS_ALARM
The system may crash by assert
`up_assert: Assertion failed at file:wdog/wd_start.c line: 379 task: rptun`

Signed-off-by: zhuyanlin <zhuyanlin1@xiaomi.com>
2021-11-20 02:28:06 -06:00
Abdelatif Guettouche bdc157f443 sched/sched: Fix some typos in comments.
Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2021-11-18 19:27:40 -06:00
ligd b5d1ec28de mm: do kmm_checkcorruption in IRQ when TCB_FLAG_DEBUG_CHECK set
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-11-17 09:55:19 -06:00
ligd 7c547b3ebd sem: remove limitation of irq context when do sem_trywait
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-11-17 02:20:08 -06:00
Abdelatif Guettouche 9b1d4de3be drivers/note: Fix typos.
Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2021-11-12 16:50:41 -03:00
Xiang Xiao e57203eca4 sched: Disable message queue by default when DEFAULT_SMALL equals y
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-11-10 09:16:35 +01:00
Xiang Xiao 086b09cc84 sched: Reduce the default preallocated buffer when DEFAULT_SMALL=y
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-11-09 13:09:40 +01:00
Jukka Laitinen c79d2067c7 Move timespec calculations from sched into libc/sched
Allow using these functions also outside sched, where systick
related calculations are performed

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2021-11-04 13:19:01 -05:00
Xiang Xiao b1879d5d24 sched/vfork: allocate tls_info_s instead task_info_s from stack
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-11-01 20:53:07 -03:00
Xiang Xiao aec01e96fa libc: Remove the empty lib_initialize
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-11-01 11:03:02 -03:00
Xiang Xiao 86fc19ff3f Fix error: 'struct tcb_s' has no member named 'low_priority'
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-10-31 06:30:57 -03:00
anjiahao 0aa14f832d mq_open: add long file name check and parameter check
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2021-10-21 11:01:45 -03:00
Jiuzhu Dong 7e59a6a31e cpuload: fix crash because of the member of g_pidhash is NULL
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-10-18 15:13:52 +02:00
Xiang Xiao 4a7915e72b sched: Check g_pidhash[hash_ndx] isn't NULL before access pid field in nxsched_get_tcb
Fix the regression by commit:
commit 8b67944c75
Author: Xiang Xiao <xiaoxiang@xiaomi.com>
Date:   Thu Oct 14 11:03:07 2021 +0800

    sched: Remove pidhash_s and move ticks to tcb_s

    simplify the code logic and reduce memory a little bit

    Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-10-17 17:28:57 +09:00
Xiang Xiao 8b67944c75 sched: Remove pidhash_s and move ticks to tcb_s
simplify the code logic and reduce memory a little bit

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-10-16 06:19:17 -03:00
chao.an 13741c9017 sched/pidhash: init g_pidhash to NULL to avoid wild pointer
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-10-16 06:19:17 -03:00
Jiuzhu Dong 9bc913abef wd_start: use sclock_t type replace int
when enable SYSTEM_TIME64, tick may exceed the int32 range
example:
pthread_cond_clockwait
        ---->clock_abstime2ticks
                    ---->wd_start

Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-10-10 19:59:57 -07:00
chenhonglin dfc08a0b66 sched/sched/remove_readytorun.c: Fix CPU affinity issues in SMP
the logical may choose the head of g_readytorun(the greatest priority)
task as the next while ignoring the cpu affinity of it.

Signed-off-by: chenhonglin <chenhonglin@xiaomi.com>
2021-09-29 16:23:17 +09:00
chenhonglin cb38060db2 sched/sched_setpriority.c: Fix CPU affinity issues in SMP
In "nxsched_nexttcb": the task may not running on this_cpu,
and rtrtcb->affinity(the affinity of the task in g_readytorun)
may not include the current cpu which should be the tcb->cpu.

Signed-off-by: chenhonglin <chenhonglin@xiaomi.com>
2021-09-29 16:23:17 +09:00
Huang Qi e72680bb46 sched/signal: Correct kill with cancellation
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2021-09-27 18:17:40 -07:00
Abdelatif Guettouche 3b2aea204c sched/irq/irq_csection.c: Fix typos and correct some comments.
Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2021-09-16 10:53:51 -05:00
Abdelatif Guettouche 20d34cce98 sched/irq_section.c: irq_waitlock is a private function; remove its
prototype from irq.h and define it as static.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2021-09-15 06:20:59 +09:00
Michal Lenc cdfe7b5a54 sched/wdog/wd_start.c: prevent accessing watch-dog lag if head is NULL
If statement in line 103 could acces wdactivelist.head->lag when head was
NULL which could result in hard fault. The statement was also redundant
as the same condition is checked in the while loop below. This change
remove the if statement to prevent hard fault to occur.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2021-09-06 09:29:21 -07:00
ligd 35379403f8 sched/wdog: move SMP enter_critical_section to sched_timerexpiration.c
Change-Id: Id654e6d2151e3b807ed2df4ab8169b90ab07b015
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-08-27 16:59:20 +09:00
ligd 9116ed9247 sched/wdog: fix switch_context caused error in wd_start()
Thead A:                     Thread B:
wd_start(wdogX)
wd_cancel
nxsched_cancel_timer  -->    wd_start(wdogX)
                             wd_cancel
                             add wdogX to g_wdactivelist
                      <--
add wdogX to g_wdactivelist

then, you will find wdogX add twice.

Change-Id: Icbf3b2badff20908e115c9134e2400cdcb32b1e0
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-08-27 16:59:20 +09:00
chao.an 904348302a sched/backtrace: simplify the assign of tcb in case of negative pid
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-08-20 13:11:45 -03:00
Jiuzhu Dong 35b3898ce1 task_spawn: release g_spawn_parmsem and sched_unlock at the ending
Change-Id: Ifcb5b9921e82fc495c4457fdb5f0607f40b07fc0
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-08-19 20:43:54 -07:00
Masayuki Ishikawa cb167c3f7d sched: Allow CONFIG_SMP_NCPUS=1 without CONFIG_DEBUG_FEATURES
Summary:
- This commit allows CONFIG_SMP_NCPUS=1 without CONFIG_DEBUG_FEATURES

Impact:
- None

Testing:
- Tested with sim:smp

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2021-08-19 19:17:56 -07:00
chao.an 1060953567 sched/backtrace: add sched_backtrace support
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-08-19 01:30:50 -07:00
chao.an 83964231a5 libs/libc: move the backtrace implement to sched
1. move the backtrace implement to sched
2. rename CONFIG_UNWINDER to CONFIG_SCHED_BACKTRACE

Signed-off-by: chao.an <anchao@xiaomi.com>
2021-08-19 01:30:50 -07:00