Xiang Xiao
fb63c0a293
sched/signal and related changes to other OS subsystems.
2019-01-27 09:28:59 -06:00
Xiang Xiao
c43e4673ab
sched/Kconfig, libs/libc/dllfcn/Kconfig, libs/libc/modlib/Kconfig: Refine ELF related configurations.
2019-01-26 11:50:09 -06:00
anchao
88efb84847
libs/libc/dllfcn, sched/init: Add LD_LIBRARY_PATH environment variable support.
2019-01-26 11:47:14 -06:00
Xiang Xiao
9e2238f6cd
libs/libc/dllfcn: Implement dlerror using strerror.
2019-01-26 11:39:05 -06:00
Xiang Xiao
095e28d45e
binfmt/, binfmt/libelf/, include/nuttx, libs/libc/machine, libs/libc/modlib, and others: Move elf related arch function to include/nuttx/elf.h because the implementation is located in libs/libc/machine and in order to avoid the conflict with the 3rd party libraries and clean up the file inclusion: (1) Remove redundant elf32.h, (2) Remove nuttx/binfmt/elf.h in libs/libc/machine, (2) Remove nuttx/binfmt/elf.h in modlib, and (4) Rmove nuttx/module.h in modlib.
2019-01-26 11:18:45 -06:00
Gregory Nutt
bdd02a6aed
Some cosmetic updates, mostly to spacing and comments.
2018-12-30 11:58:19 -06:00
Gregory Nutt
40cdc187bb
mm/mm_heap/mm_sem.c and sched/task/task_getpid.c: Commits 43d37c866b
and f37202cbc0
resolved some problems with the original fix of 91aa26774b
. However, Those changes used an internal OS interface (sched_self()) which is not available when the the user-space memory manager is built in the PROTECTED or KERNEL builds and resulted in build failures.
...
This commit repartitions the logic by moving some of the changes from mm_sem.c into task_getpid.c. The logic is equivalent for the case of mm_trysemaphore(), but no has wider impact since it potentially affects all callers of getpid(). Hence, this change may also introduce some other issues that will need to be addressed.
2018-12-30 08:41:06 -06:00
David Sidrane
24db683368
arch/arm/src/imxrt/chip/imxrt106x_pinmux.h: Add FLEXCAN3 to pinmux
2018-12-28 15:08:20 -06:00
Gregory Nutt
8b21960ba3
sched/pthread: Implement pthread_key_delete(). This involves some minor changes to the group data structure.
2018-12-28 14:21:19 -06:00
David Sidrane
bf6f44dec8
sched/Kconfig and sched/init/os_bringup.c: Allow the init task priority to be set.
2018-12-20 10:49:10 -06:00
Gregory Nutt
9d1c845dcc
Revert "This patch prevent heap corruption as in below case."
...
This solution to the problem noted by EunBong Song results in major memory fragmentation and and out-of-memory conditions on the PX4 platform. On that platform the lower priority work queue is very low priority and essentially never runs when the system is busy. As a result, the systems gets slowly starved of memory until failures and bad behaviors begin to occur.
This is an addition patch coming later to result the original problem in a different way that does not have cause memory starvation.
This reverts commit 91aa26774b
.
2018-12-20 10:11:36 -06:00
Gregory Nutt
00b5ba0cf0
sched/task/task_spawn.c: Correct description of input parameters to task_spawn_exec(). Noted by: JeongchanKim
2018-12-18 07:37:07 -06:00
David Sidrane
5433ec589b
fs/driver/fs_blockpartition.c: Fix void pointer warning.
...
libs/libc/unistd/lib_daemon.c: Fix compiler error is streams disabled.
sched/irq/irq_procfs.c: Fix warning
sched/task/task_vfork.c: Fix void * math warning
2018-12-03 17:54:21 -06:00
Gregory Nutt
3b22d13493
sched/: Add debug assertions before each call to up_block_task() to assure that there is no attempt to block an IDLE task.
2018-11-30 06:54:15 -06:00
Xiang Xiao
af96756995
sched/sched/sched_gettcb.c: Fix break in building introduced in a recent commit.
2018-11-30 06:40:51 -06:00
Gregory Nutt
454d59b049
sched/sched_foreach.c: sched_foreach() should not have to hold the critical section over the entire traversal. It should be acceptable to simply only the critical section while one entry is being processed (the caller can always call sched_foreach within a critical section is greater stability is needed. sched/sched_gettcb.c: Recent changes removed critical sections around calls to sched_gettcb.c. However, there is a very should sequence of instructions that actually does require the critical section. That short sequence no manages its own critical section.
2018-11-29 13:09:56 -06:00
Gregory Nutt
d8cf3bfe25
Rethink some of the conditional logic of commit 1ac9558460
: If the Critical Section Monitor enabled, that that platform-specific timer should be used to measure interrupt processing time, no matter what.
2018-11-26 12:18:58 -06:00
Gregory Nutt
553c566650
sched/irq: Include a few ProcFS-related changes missed in commit 1ac9558460
2018-11-26 12:01:36 -06:00
Gregory Nutt
1ac9558460
sched/irq and sched/sched: Measurement of interrupt handler duration used to be available only in Tickless mode since it used the high resolution Tickless timer to measure interrupt time. This commit adds CONFIG_SCHED_IRQMONITOR_GETTIME which, if enabled, will force the interrupt duration caculation to use the same high-resolution, platform-specific timer as is used with the Critical Section Monitor. This leads to two improvements: (1) You can now measure interrupt duration in non-Tickless mode, and (2) in either mode, the interrupt duration and the critical section measures will use the same high-resulotion timer and should, therefore, never be any descripancy due to different clock sources.
2018-11-26 11:29:20 -06:00
Gregory Nutt
80e7107c9f
sched/irq/Make.defs: Fix warning about irq_csection.o appearing multiple times in the same rule.
2018-11-25 17:22:33 -06:00
Gregory Nutt
4ca7b72a98
sched/Kconfig: Simplify some configurations. This adds configuration settings that control individual features, rather than long complex OR expressions that determines if an individual feature is required.
2018-11-25 11:50:15 -06:00
Gregory Nutt
865cc85dfd
sched/sched/sched_critmonitor.c: A correct a logic error. arch/sim/src/up_critmon.c: Use higher resolution timer.
2018-11-25 09:49:21 -06:00
Gregory Nutt
491ef22b63
sched/sched/sched_critmon.c: Design simplication. Now that irqcount is always available, there is no need for the flags that were used to retain IRQ state.
2018-11-25 07:41:52 -06:00
Gregory Nutt
095b597d34
sched/sched and fs/procfs: Fix some bus in critical section monitor found in testing
2018-11-24 17:58:35 -06:00
Gregory Nutt
807d5bb4ae
Critical Section Monitor: Add low level timer support for simulation. Fix serial bugs and logic errors in initial implementation. Still does not work; takes assertions.
2018-11-24 15:07:12 -06:00
Gregory Nutt
85c31fd4a2
fs/procfs/fs_procfscritmon.c and sched/sched/sched_critmonitor.c: Add support for global pre-emption and global critical sections to monitor as suggested by Xiang Xaio.
2018-11-24 13:33:37 -06:00
Gregory Nutt
a1cb270478
configs/stm32f4discovery: Add timing support for the critical section monitor using the DWT CYCNT register.
2018-11-24 11:06:34 -06:00
Gregory Nutt
fc6084f311
Squashed commit of the following:
...
fs/procfs/fs_procfsproc: Extended the process ID ProcFS output to show per-thread maximum time for pre-emption disabled and maximum time within a critical section.
sched/sched/sched_critmonitor.c: Adds data collection logic in support of monitoring critical sections and pre-emption state.
2018-11-24 10:32:45 -06:00
Gregory Nutt
d2a11cdea5
sched/signal/sig_timedwait.c: Remove unnecessary disble of pre-emption.
2018-11-23 06:59:48 -06:00
Xiang Xiao
dbf01d12b7
Assertions: Identify the running task correctly when dumping task state information. It takes time to switch to the target task after g_readytorun has been modified. If panic/assert happen during this period, the dump will contain the incorrect and confusing information due to the difference between the real running task and the return value of this_task(). This change resolve this problem by adding g_running_task to track the real running task through the context switch.
2018-11-15 07:11:51 -06:00
Xiang Xiao
f337cc1380
sched/clock/ timekeeping: Use clock_basetime() to initialize g_clock_wall_time to get the best initial RTC value and initialize g_clock_last_counter too since the hardware may not start counting from zero.
2018-11-12 07:00:41 -06:00
Xiang Xiao
2bc709d4b9
sched/clock/clock_initialize.c: clock_inittime() needs to be done with CONFIG_SCHED_TICKLESS and clock_initialize should skip clock_inittime() for external RTC case since the RTC isn't ready yet.
2018-11-12 06:55:53 -06:00
Xiang Xiao
f0c5c75042
sched/clock/: Don't call up_timer_gettime in clock_gettime and clock_systimer to ensure the return value from them consistent with clock_systimespec
2018-11-12 06:52:56 -06:00
Xiang Xiao
46bd8798c5
ched/clock/: Remove g_monotonic_basetime and g_clock_monotonic_time since we don't need ensure monotonic time start from zero as state here: http://pubs.opengroup.org/onlinepubs/009696899/functions/clock_getres.html
2018-11-12 06:50:37 -06:00
Xiang Xiao
1ef2602933
sched/clock/clock_getres.c: Support CLOCK_MONOTONIC
2018-11-12 06:42:38 -06:00
Xiang Xiao
43706cd797
net/arp: Redesign ARP table aging to simplify the net initialization
2018-11-09 13:54:55 -06:00
ligd
712540b6a0
sched/wdog: improve accuracy of wd_gettime() in tickless mode
2018-11-09 09:27:40 -06:00
ligd
441cf6c207
sched/wdog: improve accuracy of wd_gettime() in tickless mode
2018-11-09 09:26:34 -06:00
Xiang Xiao
d32d9d4b24
fs/partition: Try MTDIOC_GEOMETRY IOCTL before bops's geometry
...
fs/driver/fs_blockpartition.c: Support MTD IOCTL
2018-11-08 09:41:54 -06:00
Xiang Xiao
a9ff43d93c
fs/aio, libs/libc/aio, sched/mqueue, sched/timer, and sched/signal: Remove the code duplication for SIGEV_THREAD.
2018-11-08 08:19:17 -06:00
dongjianli
057d555129
sched/signal and syscall/: Add support for pselect() and ppoll() functions
2018-11-08 07:45:23 -06:00
Xiang Xiao
27c7974cb1
sched/signal/sig_suspend.c: sigsuspend() shouldn't eat the pending signal but dispatch all instead
2018-11-08 07:39:37 -06:00
nchao
6509a0c0ca
binfmt/ and libs/libc: Make exepath_*() more common:
...
1. Move exepath_*() related code to libc/misc
1. Rename exepath_ to envpath_
2. Rename BINFMT_EXEPATH to LIB_ENVPATH
libs/libc/modlib: Add pre module library symbol table support
2018-11-08 07:27:14 -06:00
zhangyuan7
da737f3167
sched/group/group_foreachchild.c: group_foreachchild iterate by reverse order since the callback(e.g. group_killchildren) may remove the tcb from list
...
sched Kconfig and sched/task/exit.c: Add SCHED_EXIT_KILL_CHILDREN option to kill all child threads when the main thread of a task exits.
2018-11-08 07:03:30 -06:00
Gregory Nutt
4eeba49507
Documentation/NuttShell.html: Add a little more information for the NSH set command.
2018-10-02 11:57:39 -06:00
Gregory Nutt
af50ab0088
sched/environ/env_unsetenv.c: Fix a memory leak introduced by the previous commit.
2018-09-30 11:45:59 -06:00
Gregory Nutt
d3c2373940
sched/environ/env_unsetenv.c: Fix and error in unsetenv() when unsetting the last of the environment variables.
2018-09-30 11:40:10 -06:00
Gregory Nutt
7769bd490c
sched/signal/sig_nanosleep.c: Fix an error introduced with recent commit. Noted by Jussi Kivilinna.
2018-09-17 06:21:25 -06:00
Gregory Nutt
abc0e58799
sched/task/task_restart.c: Fix a compile error if CONFIG_DISABLE_SIGNALS defined.
2018-09-15 14:51:04 -06:00
Gregory Nutt
a7fd58c4db
Squashed commit of the following:
...
many locations: Change occurences of open() followed by file_detach() to file_open(). Change most non-controversion calls to open() to nx_open().
fs/inode/fs_fileopen.c: Flesh out file_open() with some interim, placeholder logic.
fs/inode/fs_fileopen.c: Add a framework for a file_open() implementation (no real logic in place yet).
fs/vfs/fs_open.c: Add nx_open() which is the same as open() except that it does not create a cancellation point nor does it modify the errno variable.
2018-09-15 10:49:41 -06:00