Commit Graph

735 Commits

Author SHA1 Message Date
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 0b2fbd7a2c Fix a DEBUGASSERTion 2015-08-21 12:33:14 -06:00
Gregory Nutt 89b5ef8d35 wdogs: Fix counting of free, pre-allocated wdog timers. The could could get decremented below zero in some situations 2015-08-21 11:30:22 -06:00
Gregory Nutt 51f386d08a Fix more common typos 2015-08-16 11:07:23 -06:00
Gregory Nutt 768d892188 Add si_errno to siginfo_t 2015-08-14 10:10:32 -06:00
Sebastien Lorquet 89c81f6c08 FIX typo in DEBUASSERTion 2015-08-03 09:14:15 -06:00
Gregory Nutt 15db2a45a4 drivers/net/slip.c: Fix another compilation error 2015-08-02 07:20:36 -06:00
Gregory Nutt 3a109315ed Fix a logic error in last change to sem_tickwait() 2015-08-01 16:00:23 -06:00
Gregory Nutt ffec6124f2 Add a start time to sem_tickwait() to account for any elapsed time before the timer is actually started 2015-08-01 14:57:31 -06:00
Gregory Nutt 030573ba5c More improvements to the sporadic scheduler 2015-08-01 09:08:48 -06:00
Gregory Nutt 12cbe147a0 Forget to add files before last commit 2015-08-01 07:34:27 -06:00
Gregory Nutt 2c66e0eb2a sem_tickwait(): Add a new, non-standard function to perform timed semaphore waits. It is functionally equialent to the standard sem_timedwait(), but more efficient for use in higher performance device drivers. Requested by Max Neklyudov 2015-08-01 07:31:09 -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
Anton D. Kachalov 4a16bc6924 [sched/pthread/pthread_kill] Add missed header for enabled CONFIG_SCHED_HAVE_PARENT
Signed-off-by: Anton D. Kachalov <mouse@yandex-team.ru>
2015-07-30 18:51:37 +03: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 ed031388ad sched/Kconfig: The sporadic scheduler option is no longer EXPERIMENTAL 2015-07-24 14:19:18 -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 13e837b957 Merge remote-tracking branch 'origin/master' into sporadic 2015-07-23 11:25:52 -06:00
Gregory Nutt aa90da2bc8 pthread_create: Fix an (unlikely) error in fallback value in the event of a failure (which should never occur) 2015-07-23 11:25:25 -06:00
Gregory Nutt 2b3aae0ddc Add basic configuration options for SCHED_SPORADIC 2015-07-23 10:33:30 -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