Commit Graph

938 Commits

Author SHA1 Message Date
Gregory Nutt
a1469a3e95 Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err() 2016-06-11 15:50:49 -06:00
Gregory Nutt
e99301d7c2 Rename *lldbg to *llerr 2016-06-11 14:55:27 -06:00
Gregory Nutt
86b79b33cf Reserver the name 'err' for other purposes 2016-06-11 14:40:07 -06:00
Gregory Nutt
1cdc746726 Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -06:00
Gregory Nutt
3a74a438d9 Rename CONFIG_DEBUG_VERBOSE to CONFIG_DEBUG_INFO 2016-06-11 11:50:18 -06:00
Gregory Nutt
80d0b2736e Reorder some logic: (1) set initial CPU IDLE task regsters AFTER allocating stack, (2) invalidate cache in CPU start-up BEFORE handling first interrupt. 2016-05-22 15:01:49 -06:00
Gregory Nutt
07acd5327a SMP: Clean CPU0 D-Cache before starting new CPU; Invalidate D-Cache when new CPU started. 2016-05-20 12:39:02 -06:00
Gregory Nutt
32838fcc2c enter/leave_critical_section: In SMP configuration, may attempt to access the task lists before they have been initialized 2016-05-18 09:17:01 -06:00
Gregory Nutt
3d87005e5a Fix some compilation issues when certain combinations of debug options are selected. 2016-05-17 12:06:32 -06:00
Gregory Nutt
faca2fb1e7 ARMv7-A/i.MX6: Add logic to handle allocation of CPU IDLE thread stacks more efficiently 2016-05-13 11:39:42 -06:00
Gregory Nutt
70782b0f14 ARMv7-A i.MX6: More SMP logic. Still untested. 2016-05-12 15:04:46 -06:00
Gregory Nutt
c00e3e55dc Fix several places in DMA logic where a spurious semicolon causes bad conditional logic 2016-05-11 17:42:59 -06:00
Gregory Nutt
6cfe56202d Backout 3f731241cb. It is a good idea, but has some unpleasant side effect... like SYSLOG and dbg() no longer work 2016-04-18 18:55:36 -06:00
Gregory Nutt
3f731241cb fs/inode/, fs/vfs/, and sched/task/: File and socket descriptors are no longer allocated for kernel threads. They must use SYSLOG for output and the low-level psock interfaces for network I/O. This saves a little memory which might be important for small footprint configurations. 2016-04-14 10:14:38 -06:00
Gregory Nutt
3fba968bb0 Fix an error when a task with open message queue descriptors is killed via task_delete(). Noted by Anton Gropyanov. 2016-04-11 11:14:18 -06:00
Gregory Nutt
e42b3040ee Fix some issues with the initial implementation of sched_mergeprioritized. 2016-03-24 07:52:27 -06:00
Gregory Nutt
b5afc187ee Add file missed in last commit; sched_lock() and sched_mergepending() now use sched_mergeprioritized() 2016-03-23 08:58:48 -06:00
Gregory Nutt
4a962a36dd Add library functions to concatenate and move lists. Add scheduler function to merge prioritized function to merge prioritized lists (not yet used). 2016-03-23 08:00:58 -06:00
Gregory Nutt
f0671bae2f SMP: Reorder some logic related to task exit() and restart() for logic of SMP. 2016-03-22 18:19:57 -06:00
Gregory Nutt
9604ea8f42 SMP: Straighten up some scheduler locking logic -- need to REVISIT 2016-03-22 13:01:47 -06:00
Gregory Nutt
3b2e94e1fd SMP: Fix some errors when removing a trask from the assigned task list 2016-03-22 11:08:30 -06:00
linfei_chen
4b18b8d1e3 LP Work Queue: Fix test to find and idle worker thread. 2016-03-22 08:15:49 -06:00
Gregory Nutt
bc325bd597 Update Kconfig comments 2016-03-21 18:28:43 -06:00
Gregory Nutt
d20db82fcb Scheduler instrumentation: Fix some associated with monitoring critical sections 2016-03-21 17:08:07 -06:00
Gregory Nutt
adf3c73219 scheduler instrumentation: Improvements to buffering logic 2016-03-21 15:40:01 -06:00
Gregory Nutt
ccbf514233 Add task state to information recorded when a task is suspended 2016-03-21 15:24:15 -06:00
Gregory Nutt
f7b58e9dfd sched/: Move location (and form) of context switch instrumentation. 2016-03-21 14:08:31 -06:00
Gregory Nutt
242f8ff25f drivers/syslog/note_driver.c: Add a driver that will allow an application to read buffered scheduler instrumentation data 2016-03-17 14:46:00 -06:00
Gregory Nutt
7f19631338 sched/: Add option to buffer scheduler instrumentation data in memory. 2016-03-17 09:49:43 -06:00
Gregory Nutt
2225940155 SMP: Add per-CPU initialization logic 2016-03-13 07:16:56 -06:00
Gregory Nutt
79c1fa5bd7 SMP: Simplified SMP interfaces 2016-03-12 15:29:33 -06:00
Gregory Nutt
320b70ebad Update submodules 2016-03-12 13:24:38 -06:00
Gregory Nutt
24468128de TLS: Simplify 2016-03-11 07:17:32 -06:00
Gregory Nutt
934069e422 TLS: Add logic to get/set arbitrary TLS values 2016-03-10 19:31:22 -06:00
Gregory Nutt
30b6ee96c9 Add basic definitions for TLS support 2016-03-10 11:56:33 -06:00
Gregory Nutt
9b5e88af71 Update some comments 2016-03-06 13:50:26 -06:00
Gregory Nutt
5d63cd85c7 sched/semaphore: Add an internal interface to reset a semaphore count. 2016-03-05 07:33:24 -06:00
Gregory Nutt
d0c09771db sched: Recent change of ASSERT to DEBUGASSERT causes a crash when debug is diabled because there is a critical function call within the assertion 2016-02-23 10:27:40 -06:00
Gregory Nutt
7cb35587a3 Correct minor typos in a Kconfig file 2016-02-22 08:28:33 -06:00
Gregory Nutt
0fb035f76b Standardize some naming in code section comments 2016-02-21 18:09:04 -06:00
Gregory Nutt
143d287f11 Fix some missing header file inclusions and a misplaced semi-colon from recent commits 2016-02-21 11:27:55 -06:00
Gregory Nutt
c929db42f9 Fix some bad SMP logic in sched_removereadytorun.c 2016-02-20 08:07:54 -06:00
Gregory Nutt
883a1adfe2 Implement sched_setaffinity() and sched_getaffinity() 2016-02-19 19:18:54 -06:00
Gregory Nutt
5a590e99b9 Add SYSCALLS for pthread_setaffinity() and pthread_getaffinity() 2016-02-19 18:13:06 -06:00
Gregory Nutt
1b5e296cf2 Add pthread_setaffinity() and pthread_getaffinity() 2016-02-19 17:59:19 -06:00
Gregory Nutt
a633353ec3 Add a CPU affinity set to the TCB if SMP is enable and use this CPU set as a mask for determining which CPUs the thread may run on. Add an affinity field to the attrributes to permit controlling which CPUs a pthread may run on. Implements pthread_att_setaffinity_np() and pthread_attr_getaffinity_np(). 2016-02-19 17:33:35 -06:00
Gregory Nutt
72d3920295 Rename cpuset_t to cpu_set_t which is the type used in some non-standard Linux/GNU interfaces. Move definitions of cpu_set_t to include/sys/types.h. Add prototypes for sched_setaffinity(), sched_getaffinity(), pthread_attr_setaffinity_np(), pthread_attr_getaffinity_np(), pthread_setaffinity_np(), and pthread_getaffinity_np(). No implementation is yet in place. 2016-02-19 15:57:07 -06:00
Gregory Nutt
3994b094c5 Remove some empty C file section comments; Update some text in TODO file 2016-02-19 10:01:15 -06:00
Gregory Nutt
94bea6547b Fix two unterminated strings in Kconfig files 2016-02-18 17:13:03 -06:00
Gregory Nutt
6d97249348 Trivial, cosmetic changes 2016-02-18 14:56:48 -06:00
Gregory Nutt
1780000777 SMP: Setting bit for wrong CPU. Assertion has cause false alarm crashes.. 2016-02-18 12:31:21 -06:00
Gregory Nutt
7d9287958f Minor simplication to last commit; Update TODO list 2016-02-18 09:21:43 -06:00
Gregory Nutt
52fbbaf778 1. SMP: Fix an assertion. SMP-specific change accidentally made in non-SMP code
2. Move list of signal actions from the task TCB to the task group.  Signal handlers are a property of the entire task group and not of individual threads in the group.  I know, I preferred it the other way too but this is more compliant with POSIX.
2016-02-18 08:34:54 -06:00
Gregory Nutt
720343612b Remove some empty file section section header comments 2016-02-17 18:05:03 -06:00
Gregory Nutt
6543c570d4 Remove some empty file section section header comments 2016-02-17 17:38:39 -06:00
Gregory Nutt
970b34ae8f Remove some empty file section section header comments 2016-02-17 17:17:44 -06:00
Gregory Nutt
a20863f6c0 Remove some empty file section section header comments 2016-02-17 17:15:08 -06:00
Gregory Nutt
b71907888e Remove some empty file section section header comments 2016-02-17 17:04:51 -06:00
Gregory Nutt
269c242f7b Update TODO list 2016-02-17 16:51:58 -06:00
Gregory Nutt
95735519dd SMP: Cosmetic renaming to clarify functionality of SMP interfaces. Update comments. 2016-02-17 13:36:25 -06:00
Gregory Nutt
b50325bb38 SMP: Add funtions to perform atomic bit set/clear operations; fix two errors in SMP macros 2016-02-17 13:20:01 -06:00
Gregory Nutt
8ac12839c3 leave_critical_section: Fix text of whether spinlock should be released or not 2016-02-17 10:55:18 -06:00
Gregory Nutt
d6912d0b00 Fix some bad conditional compilation and other typos in last commit 2016-02-16 20:11:25 -06:00
Gregory Nutt
6aeb4a52e8 Performance improvement: Idle loop should not take MM semaphore if there is not garbage to be collected. This can cause loss of performance and thrashing in tasking 2016-02-16 19:33:22 -06:00
Gregory Nutt
6dfa72d038 SMP: Fix some dumb but difficult to debug errors 2016-02-16 16:43:19 -06:00
Gregory Nutt
384e51cb05 Add some additional schedule instrumentation 2016-02-16 15:21:45 -06:00
Gregory Nutt
7f18b515f4 SMP: Fix a typo in last commit 2016-02-16 10:40:25 -06:00
Gregory Nutt
a442245479 SMP: Fix some non-SMP errors that crept in; fix a recursion problem; re-partition some functionality to improve design and readability 2016-02-16 10:14:33 -06:00
Gregory Nutt
8774e7a4a0 SMP: Fix missing initialization value 2016-02-15 18:35:05 -06:00
Gregory Nutt
fccef49305 Cosmetic changes to comments 2016-02-15 13:48:08 -06:00
Gregory Nutt
cfcd98ca89 SMP: Used wrong point to wrong TCB 2016-02-15 11:45:34 -06:00
Gregory Nutt
fc842d740a SMP: os_start needs to hold the KMM semaphore to prevent threads from allocating memory until the bring-up is complete 2016-02-15 11:07:42 -06:00
Gregory Nutt
8ea1bc3188 SMP: Fix backward spinlock test 2016-02-15 11:06:54 -06:00
Gregory Nutt
8399938138 SMP: I think we have to spinlock before we are possibly suspended 2016-02-15 10:15:07 -06:00
Gregory Nutt
3c46fa3f9f Fix a contention problem in the previous critical section design 2016-02-15 08:50:20 -06:00
Gregory Nutt
c7df82147f SMP: First cut integration of enter/leave_critical_section and the scheduler. There are some issues. 2016-02-15 08:06:17 -06:00
Gregory Nutt
9cb2a6b1f9 Rename irqsave() and irqrestore() to up_irq_save() and up_irq_restore() 2016-02-14 16:19:15 -06:00
Gregory Nutt
e6bd3544f6 Fix a name collision introduced in last commit 2016-02-14 08:20:35 -06:00
Gregory Nutt
6e3107650d nuttx/sched: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-14 08:17:46 -06:00
Gregory Nutt
a604a86980 Fix an error introduced in a previous commit 2016-02-13 10:48:30 -06:00
Gregory Nutt
d017e3eb2e SMP: Forgot to add a file before the last commit 2016-02-13 10:25:36 -06:00
Gregory Nutt
97cbd7112f SMP: Implement enter/leave_critical_section 2016-02-13 10:23:16 -06:00
Gregory Nutt
8ac699b63d SMP: Need to perform all IDLE task memory allocations on initializatin thread prior to starting the other CPUs 2016-02-13 09:04:54 -06:00
Gregory Nutt
f45166af32 SMP: Fix a IDLE task semaphore operation 2016-02-12 18:03:08 -06:00
Gregory Nutt
3f7f58de9d SMP: Fix some debug assertion problems when DEBUG is enabled; Partial fix for one bring-up issue 2016-02-12 17:13:38 -06:00
Gregory Nutt
64b3ce8775 SMP: Add up_cpustart and up_cpurestart protoypes; fix some problems in sched_addreadytorun; first cut at SMP version of up_mergepending. 2016-02-12 16:13:14 -06:00
Gregory Nutt
85f663a8ee SMP: Add non-reentrant spinlocks, fix pre-emption controls with SMP, and most of the basic scheduler support for SMP (still missing a few things) 2016-02-12 14:55:31 -06:00
Gregory Nutt
7d7f4e140c OS: Add a RUNNABLE attribute to the tasklists to indicate if the task list includes the currently executing task. Use this additional bit of information to determine if a context switch could really occur when removing a TCB from a task list 2016-02-12 08:15:16 -06:00
Gregory Nutt
76e88c8963 SMP: Removed unused macros, update comments, update sched_removereadytorun for SMP 2016-02-11 17:24:19 -06:00
Gregory Nutt
c315479a04 SMP: Move IDLE thread init logic from sim to OS; need to assign unique IDs to each IDLE task 2016-02-11 14:11:26 -06:00
Gregory Nutt
ddbc948895 SMP: Minor SMP-related clean-up/improvements 2016-02-11 12:18:54 -06:00
Gregory Nutt
49227fa554 Scheduler: Replace the boolean 'prioritized' with a uint8_t bit set so that additional attributes of a list can be specified without adding more boolean values. 2016-02-11 08:06:33 -06:00
Gregory Nutt
0a7e136a5a SMP: Idle thread must be assigned to a CPU 2016-02-11 08:01:09 -06:00
Gregory Nutt
89bea6917c Kconfig: Architecture must indicate that it support multiple CPUs in order to enable SMP 2016-02-10 17:31:16 -06:00
Gregory Nutt
292d2fe648 Correct naming of a TCB flag; update some comments 2016-02-10 16:53:34 -06:00
Gregory Nutt
96223cedf1 SMP: A little more 2016-02-10 15:43:05 -06:00
Gregory Nutt
3147dfc7d5 SMP: Add some tentative initialization logic 2016-02-10 13:49:27 -06:00
Gregory Nutt
47a5663f8c SMP: A few preliminary data structure definitions 2016-02-10 11:45:26 -06:00
Gregory Nutt
f5a3b1e89d Add EXPERIMENTAL configuration option to investigate some SMP issues 2016-02-10 10:27:48 -06:00