Commit Graph
729 Commits
Author SHA1 Message Date
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
Jussi Kivilinna 13d9383679 Group binding needs to be cleared before sched_releasetcb(), as otherwise group_leave() will be called and group->tg_nmembers decremented or group being released. group_leave() should be called only after group_join() is called, not after group_bind(). From Jussi Kivilinna. 2015-07-01 06:24:34 -06:00
Gregory Nutt 342f5fe33d Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation 2015-06-28 08:08:57 -06:00
Max Neklyudov 61af0d511f Use up_timer_gettime for CLOCK_MONOTONIC in tickless mode. From Max Neklyudov. 2015-06-22 06:37:26 -06:00
Juha Niskanen e1846dff82 sched/pthread: Implement pthread_mutex_trylock() for recursive mutexes 2015-06-16 08:32:20 -06:00
Juha Niskanen d16053c33c sched/pthread: Use -1 instead of 0 as PID for unclaimed mutexes 2015-06-16 08:27:38 -06:00
Gregory Nutt d8db596b3b POSIX message queues: Move mq_setattr() and mq_getattr() from nuttx/libc/mqueue to nuttx/sched/mqueue. Also add sysyscall support for mq_setattr() and mq_getattr(). This is necessary in protected and kernel builds because in those cases the message queue structure is protect and cannot be accessed directly from user mode code. Noted by Jouko Holopainen. 2015-06-03 09:24:17 -06:00