Commit Graph

269 Commits

Author SHA1 Message Date
Gregory Nutt
cb2f84e288 Loosen up restriction a little in sched_ufree() 2015-09-07 15:28:58 -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
Paul A. Patience
3b89eabd50 Correct #if to #ifdef when the macro can be undefined. Fix bug in AT24XX driver: it should compare AT24XX_ADDRSIZE to 2. 2015-09-01 13:52:29 -04:00
Gregory Nutt
768d892188 Add si_errno to siginfo_t 2015-08-14 10:10:32 -06:00
Gregory Nutt
030573ba5c More improvements to the sporadic scheduler 2015-08-01 09:08:48 -06:00
Gregory Nutt
5772813d29 Change the name of the local variable sigset to set to prevent name collisions with the function of the same name 2015-07-31 13:32:10 -06:00
Gregory Nutt
3a93be8902 Add strictly limit check: The current sporadic scheduler cannot handler duties > 50% 2015-07-30 07:36:01 -06:00
Gregory Nutt
a6ccb7f308 Sporadic scheduler: Third design. Now it looks closer to what I want 2015-07-28 14:26:31 -06:00
Gregory Nutt
dd5b065753 Sporadic: This interim version works pretty well, but the things that I had to do were nasty and mean that -- sigh -- there will be another redesign coming 2015-07-28 08:03:40 -06:00
Gregory Nutt
95ca3a1d1e Fixes several more sporadic scheduler bugs 2015-07-27 18:08:21 -06:00
Gregory Nutt
a7322f5a6d Sporadic scheduler: Fix how suspension time is calculated 2015-07-27 15:54:19 -06:00
Gregory Nutt
e33c727520 Sporadic scheduler: Move pending time into each timer instance 2015-07-27 14:48:21 -06:00
Gregory Nutt
e66e2f5c0f Use the last budgeted time from the last timer started 2015-07-27 13:13:30 -06:00
Gregory Nutt
8c754ccd4f Sporadic scheduler: misc bug fixes 2015-07-27 11:55:52 -06:00
Gregory Nutt
cc1c7731da Sporadic scheduler: Fix budget computations when replenishment intervals are nested 2015-07-27 09:35:52 -06:00
Gregory Nutt
484f148001 Sporadic scheduler: Add instrumentation hooks to support GPIO outputs 2015-07-27 08:37:25 -06:00
Gregory Nutt
7c04ad8209 Sporadic scheduler: Cosmetic change to debug output and to comments 2015-07-26 15:33:27 -06:00
Gregory Nutt
99664b7811 Sporadic scheduler: Add logic to collection the partial timer expiration when a sporadic thread is suspended in tickless mode 2015-07-26 15:03:47 -06:00
Gregory Nutt
4bdbc387f5 Update TODO list; Fix a few errors introduced withe the last changes to the sporadic scheduler 2015-07-26 10:51:04 -06:00
Gregory Nutt
3e88b77540 Sporadic scheduler: Handle a case when the scheduler is resumed before it has even had a chance to run 2015-07-26 08:08:45 -06:00
Gregory Nutt
26fd7a7ccf The redesigned sporadic scheduler now seems to be functional 2015-07-25 13:22:46 -06:00
Gregory Nutt
27e21710fd This is basically a complete redesign of the sporadic scheduling logic due to limitations in the initial design 2015-07-25 12:50:53 -06:00
Gregory Nutt
a1031417e8 Comment out part of sporadic scheduler logic: Part of replenishment logic is bogus 2015-07-24 18:18:58 -06:00
Gregory Nutt
1d88dc1fb6 Fix some compilation error when both TICKLESS mode and the SPORADIC scheduler are enabled 2015-07-24 14:35:07 -06:00
Gregory Nutt
411941d8cd Fix an syntax error in a debug asserion 2015-07-24 13:02:19 -06:00
Gregory Nutt
12cdd2a8fe Fix some bad conditional compilation 2015-07-24 12:27:15 -06:00
Gregory Nutt
0d71260bf2 sched/: Separate the round-robin logic into a separate file so that it is symmetric with the sporadic stuff. Integrate the sporadic scheduler into the time tick interrupt handling and into the tickless operation. 2015-07-24 11:49:28 -06:00
Gregory Nutt
c6c424583d Fix a test for valid scheduling policies 2015-07-24 10:20:22 -06:00
Gregory Nutt
4490744def Add logic to reset the replenish the sporadic scheduler when a task is resumed 2015-07-24 09:55:02 -06:00
Gregory Nutt
ea7dbc984b Add basic sporadic schedule state machine 2015-07-24 09:03:21 -06:00
Gregory Nutt
3b1306078b Sporadic Scheduler: Ensure that the replenishment period is greater than or equal to the budget period 2015-07-23 15:08:41 -06:00
Gregory Nutt
5baa738019 Most cosmetic, but includes some fixes to some range checking 2015-07-23 14:36:49 -06:00
Gregory Nutt
53a17bfd99 Fix a newly introduced compilation error when round roben scheduling is disabled 2015-07-23 13:35:48 -06:00
Gregory Nutt
9095e8eab4 include/, sched/, and libc/: Add support for sporadic scheduling parameters in struct sched_param, posix_spawnattr_t, and pthread_attr_t. Update all user interfaces to pass sporadic scheduling parameters. Feature is dependent on EXPERIMENTAL and no changes have yet been made to core scheduling logic. 2015-07-23 13:16:32 -06:00
Gregory Nutt
146bdc3c93 TCB: Increase the size of the scheduling policy field from 1 to 2 bits to allow additional, planned scheduling policies 2015-07-23 10:15:07 -06:00
Gregory Nutt
e69d14d89b Fix some warnings/errors detected by nuttx/tools/testbuilds.sh 2015-07-10 18:41:26 -06:00
Max Neklyudov
14e742b108 Implement WNOHANG for waitpid() only and for the case of CONFIG_SCHED_HAVE_PARENT not selected. From Max Neklyudov. 2015-07-02 09:34:58 -06:00
Gregory Nutt
b4423c1eed Make some file section headers more consistent with standard 2015-04-08 06:47:36 -06:00
Gregory Nutt
af6d9e2684 sched: Do not use uninitialized boolean in waitpid(). From Juha Niskanen 2015-03-12 07:45:10 -06:00
Gregory Nutt
1d534ff896 Convert the 64-bit usec limit to a 32-bit tick limit 2015-02-03 07:18:17 -06:00
Gregory Nutt
a448e0f69f On my platform I have just 16-bit timer clocked at 32kHz. As result oneshot timer max delay is 2s. The patch adds limit of maximum ticks in sched_timer_start (nuttx/sched/sched/sched_timerexpiration.c). From Macs N. 2015-02-03 06:25:19 -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
2da26f7884 More fixes to tickless operation, alarm/mode code. From Brandon Warhurst 2014-10-23 07:13:57 -06:00
Gregory Nutt
a7a5c8cff3 Fixes to tickless operation code. From Brandon Warhurst 2014-10-23 06:41:31 -06:00
Gregory Nutt
322f9f401c Simplify how C source files are selected in the build 2014-10-07 07:42:36 -06:00
Gregory Nutt
1f2cc9f4fe Complete re-implementation of mq_close 2014-09-29 15:33:34 -06:00
Gregory Nutt
701719b2ca Don't release user stack in kernel build. Already destroyed with all of the address environment 2014-09-15 12:45:41 -06:00
Gregory Nutt
3649dab9bd Initial integration of kernel stack (does not work) 2014-09-14 11:19:34 -06:00
Gregory Nutt
b4438e44c5 Restructuring of build to allow use of use-space allocators by kernel logic in the kernel build. 2014-09-02 11:22:09 -06:00
Gregory Nutt
64ab35b399 There used to be two ways to pass parameters to new tasks, depending upon the configuration: Either (1) argv[] as created as an array with each string strdup'ed. Or (1) argv[] array and strings were created on the stack before the new task was started. Now, there is only one way, way (1). Way (2) might be slightly more compact, but this is not worth carry the complexity of two different ways of doing the same thing. 2014-09-01 15:39:34 -06:00
Gregory Nutt
23147c40a5 Remove final traces of the 8015 from the NuttX source tree 2014-09-01 13:21:15 -06:00
Gregory Nutt
54fa3b0b59 Rename kfree to kmm_free for consistency with other naming conventions 2014-08-31 17:04:02 -06:00
Gregory Nutt
9ad7dae4c1 Rename kufree to kumm_free for consistency with other naming 2014-08-31 16:15:11 -06:00
Gregory Nutt
2904fb0420 Clean up some kernel build heap allocation issues. The Cortex-A kernel build now compiles without errors (but cannot link until brk() and sbrk() are implemented). 2014-08-31 12:50:05 -06:00
Gregory Nutt
e3ff0689bb Rename CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED; Partially integrate new CONFIG_BUILD_KERNEL 2014-08-29 14:47:22 -06:00
Gregory Nutt
0ab1b0de25 nuttx/sched: Remove explicit references to errno. That is a problem from within the kernel for certain configurations 2014-08-28 17:00:24 -06:00
Gregory Nutt
1624e2fbcf Change CONFIG_ADDRENV to CONFIG_ARCH_ADDRENV; change how it is selected -- the architecure must first declare support 2014-08-24 06:42:11 -06:00
Gregory Nutt
e79d6e3c8b A few fixes for compilation errors due to recent address environment fixes 2014-08-22 15:55:00 -06:00
Gregory Nutt
1d586e6136 An address environment is the property of a task group, not of a thread 2014-08-22 12:32:34 -06:00
Gregory Nutt
569a0815ca Updated comments 2014-08-12 13:50:18 -06:00
Gregory Nutt
6546fa39c7 Tickless Stuff: Back out the risky timer operations when the ready-to-run list is modified. That is unsafe. An ugly workaround is just to keep an interval timer going all of the time with a minimum duration equal to the timeslice interval. 2014-08-12 11:12:00 -06:00
Gregory Nutt
686e5d7e3d Tickless: If using an ALARM, then really should report time of expiration 2014-08-12 10:00:32 -06:00
Gregory Nutt
e1fc925705 Minor update to handling of timeslick delay on tast switches 2014-08-11 15:07:15 -06:00
Gregory Nutt
56196ecea1 Fix a computation error in the fix for the last computational error 2014-08-11 12:07:49 -06:00
Gregory Nutt
b4bbe354fd Fix inaccurate time conversion. Remove MSEC_PER_TICK and convert uint32_t to uin64_t. 2014-08-11 11:14:40 -06:00
Gregory Nutt
649ef76f71 Timers: In Tickless mode, need to stop the interval timer before inserted a new delay into the timer list. Otherwise, the time is incorrect on the first entry of the list 2014-08-11 08:25:25 -06:00
Gregory Nutt
f2058fa271 Comment out reassessment of timer in the middle of context switches. Need to revisit 2014-08-11 07:05:47 -06:00
Gregory Nutt
1f28365f55 Part of the last incomplete change 2014-08-08 17:45:54 -06:00
Gregory Nutt
ccf4ed2148 Partial (non-working) checked in before the big, risky automated change 2014-08-08 17:29:44 -06:00