Commit Graph

74 Commits

Author SHA1 Message Date
Gregory Nutt 6a20560ba2 Trivia fix to typo in comment 2016-10-26 12:29:36 -06:00
Gregory Nutt 7370d3171a Move include/nuttx/lib.h to include/nuttx/lib/lib.h 2016-07-21 14:05:44 -06:00
Gregory Nutt 62d8f839c7 SYSLOG: Now a two phase initialization. Some SYSLOG channels cannot be initialized until later in the bringup 2016-06-21 07:52:24 -06:00
Gregory Nutt 43eb04bb8f Without lowsyslog() *llinfo() is not useful. Eliminate and replace with *info(). 2016-06-20 11:59:15 -06:00
Gregory Nutt 13cac3b592 sched/: Change some *err() message to *info() messages if what was a *dbg() message does not indicate and error condition. 2016-06-11 16:42:42 -06:00
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 fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -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 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 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 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 95735519dd SMP: Cosmetic renaming to clarify functionality of SMP interfaces. Update comments. 2016-02-17 13:36: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 8774e7a4a0 SMP: Fix missing initialization value 2016-02-15 18:35:05 -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 a604a86980 Fix an error introduced in a previous commit 2016-02-13 10:48:30 -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 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 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 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 2dc258986d Add a state variable that provides the current level of OS initialization. This is needed by some logic that may attempt to run early in the start-up sequence, but cannot run if a sufficient level of initializaitn has not not yet occurred 2016-02-05 08:34:03 -06:00
Gregory Nutt 79d554939e sched/: Fix some spacing issues 2015-10-07 19:59:14 -06:00
Gregory Nutt cb9e27c3b0 Standardize naming used for public data and function groupings 2015-10-02 16:30:35 -06:00
Gregory Nutt d78d3ef4ab Logic for delayed memory garbage collection for the case of user space memory will not work as implemented for the case of the kernel build. That is because the correct context is in place in order to free the user memory when sched_kufree is called, but will not be in place later when the memory garbage collection runs. If this feature is really needed, then some more substantial redesign is required 2015-09-07 14:40:18 -06:00
Gregory Nutt 12d61531aa Move board_ prototypes from arch.h to board.h 2015-02-27 20:02:03 -06:00
Gregory Nutt 8840102554 Networking: Divide net_intiialize() into net_setup() and net_initialize() to solve a chicken-and-egg problem. net_setup() must be caleld before up_initialize() is called so that networking data structures are ready to register new network devices.
net_initialize() now does only timer related operations and is called AFTER up_initialize() where the timers are configured.  This is really.
2015-02-14 06:36:53 -06:00
Gregory Nutt a1d3faaa8a Update ChangeLog 2015-02-13 18:39:43 -06:00
Gregory Nutt bc273596bb Back out commit d998cbdfa6c10dbd8074dd43c39c23a006505987 2015-02-13 18:32:15 -06:00
Gregory Nutt 0fcd620404 Move the initialization of the networking subsystem to AFTER up_initialize is called. Fromo Macs Neklyudov. 2015-02-13 13:41:21 -06:00
Gregory Nutt 937f9f23f1 strncpy will not copy the terminating \0 into the destination if the source is larger than the size of the destination. Ensure that the last byte is always zero and let strncpy only copy CONFIG_TASK_NAME_SIZE bytes. The issue of unterminated names can be observed in ps when creating a pthread while CONFIG_TASK_NAME_SIZE is set to 8. 2014-12-17 12:24:02 -06:00
Gregory Nutt 1aa528a572 More fixes to problems noted by cppcheck. Some are kind of risky; some are real bugs. 2014-11-25 14:10:35 -06:00
Gregory Nutt 6f94e5e4be Cosmetic chnages to comments 2014-11-20 07:10:48 -06:00
Gregory Nutt b78fe7c270 Rename CONFIG_SCHED_USRWORK to CONFIG_LIB_USRWORK 2014-10-11 15:59:40 -06:00
Gregory Nutt b2cebaa9d4 Modularize starting of worker threads to better isolate individual initialization characteristics 2014-10-10 09:38:28 -06:00
Gregory Nutt 1afc9773ac Decoupling work queue data structures. This is part of the preparation to support multiple low-priority worker threads 2014-10-10 08:35:58 -06:00
Gregory Nutt 6220256a09 Repartition work queue code. Move kernel-specific parts from libc/wqueue to sched/wqueue 2014-10-10 06:22:51 -06:00