summaryrefslogtreecommitdiffstats
path: root/doc/user (follow)
Commit message (Collapse)AuthorAgeFilesLines
* cpukit: deprecate task variables. closes #2293.Gedare Bloom2015-03-101-0/+11
|
* cpukit: deprecate rtems_clock_get(). closes #2294.Gedare Bloom2015-03-101-0/+2
|
* cpukit: deprecate notepadsGedare Bloom2015-03-103-6/+48
| | | | | | | | | | | | | | | Deprecate Classic API Notepads. Mark task_set/get_note() with the deprecated attribute, and also mark the notepads field. Replace disable with enable option for notepads in confdefs.h, and make notepads disabled by default. The previous option CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS is now unused and will emit a compile-time warning. A new option CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS is available to turn on notepads, but it also will emit a compile-time warning to indicate that notepads are deprecated. Closes #2265
* IMFS: Add CONFIGURE_IMFS_DISABLE_READDIRSebastian Huber2015-02-141-0/+27
|
* IMFS: Rename CONFIGURE_IMFS_DISABLE_FCHMODSebastian Huber2015-02-131-4/+4
| | | | Rename CONFIGURE_IMFS_DISABLE_FCHMOD to CONFIGURE_IMFS_DISABLE_CHMOD.
* IMFS: Add CONFIGURE_IMFS_DISABLE_MKNOD_FILESebastian Huber2015-02-131-0/+26
|
* IMFS: CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEMSebastian Huber2015-02-131-11/+47
| | | | Resurrect CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM.
* IMFS: Add fine grained configurationSebastian Huber2015-02-121-34/+286
| | | | | | | | | | | | | | | | | | Remove miniIMFS. Statically initialize the root IMFS. Add configuration options to disable individual features of the root IMFS, e.g. o CONFIGURE_IMFS_DISABLE_CHOWN, o CONFIGURE_IMFS_DISABLE_FCHMOD, o CONFIGURE_IMFS_DISABLE_LINK, o CONFIGURE_IMFS_DISABLE_MKNOD, o CONFIGURE_IMFS_DISABLE_MOUNT, o CONFIGURE_IMFS_DISABLE_READLINK, o CONFIGURE_IMFS_DISABLE_RENAME, o CONFIGURE_IMFS_DISABLE_RMNOD, o CONFIGURE_IMFS_DISABLE_SYMLINK, o CONFIGURE_IMFS_DISABLE_UNMOUNT, and o CONFIGURE_IMFS_DISABLE_UTIME.
* user/conf.t: Fix typoJoel Sherrill2015-01-261-1/+1
|
* doc: add some red-black tree documentationGedare Bloom2014-12-193-4/+103
| | | | closes #2059
* doc: Clarify rate-monotonic statisticsSebastian Huber2014-12-121-4/+15
|
* doc: Clarify rtems_task_set_priority()Sebastian Huber2014-12-121-0/+3
|
* libcsupport: Delete malloc statisticsSebastian Huber2014-11-281-31/+0
| | | | | | | Use the heap handler statistics instead. Add heap walk option to MALLOC shell command. close #1367
* rtems: Add more clock tick functionsSebastian Huber2014-08-261-0/+104
| | | | | Add rtems_clock_tick_later(), rtems_clock_tick_later_usec() and rtems_clock_tick_before().
* rtems: Inline rtems_clock_get_ticks_since_boot()Sebastian Huber2014-08-251-21/+10
| | | | Update documentation.
* score: Implement scheduler helping protocolSebastian Huber2014-07-091-0/+78
| | | | | | | | | | | | | | | | | | | | | | | | | The following scheduler operations return a thread in need for help - unblock, - change priority, and - yield. A thread in need for help is a thread that encounters a scheduler state change from scheduled to ready or a thread that cannot be scheduled in an unblock operation. Such a thread can ask threads which depend on resources owned by this thread for help. Add a new ask for help scheduler operation. This operation is used by _Scheduler_Ask_for_help() to help threads in need for help returned by the operations mentioned above. This operation is also used by _Scheduler_Thread_change_resource_root() in case the root of a resource sub-tree changes. A use case is the ownership change of a resource. In case it is not possible to schedule a thread in need for help, then the corresponding scheduler node will be placed into the set of ready scheduler nodes of the scheduler instance. Once a state change from ready to scheduled happens for this scheduler node it may be used to schedule the thread in need for help.
* score: Use Resource Handler for MrsP semaphoresSebastian Huber2014-06-031-1/+10
| | | | | This enables proper resource dependency tracking and as a side-effect deadlock detection.
* score: _Scheduler_Set_affinity()Sebastian Huber2014-06-021-1/+9
| | | | | Do not change the scheduler with this function. Documentation. Coding style.
* score: Multiprocessor Resource Sharing ProtocolSebastian Huber2014-05-283-5/+242
| | | | | | | | | | | | | | | | | | | | | | Add basic support for the Multiprocessor Resource Sharing Protocol (MrsP). The Multiprocessor Resource Sharing Protocol (MrsP) is defined in A. Burns and A.J. Wellings, A Schedulability Compatible Multiprocessor Resource Sharing Protocol - MrsP, Proceedings of the 25th Euromicro Conference on Real-Time Systems (ECRTS 2013), July 2013. It is a generalization of the Priority Ceiling Protocol to SMP systems. Each MrsP semaphore uses a ceiling priority per scheduler instance. These ceiling priorities can be specified with rtems_semaphore_set_priority(). A task obtaining or owning a MrsP semaphore will execute with the ceiling priority for its scheduler instance as specified by the MrsP semaphore object. Tasks waiting to get ownership of a MrsP semaphore will not relinquish the processor voluntarily. In case the owner of a MrsP semaphore gets preempted it can ask all tasks waiting for this semaphore to help out and temporarily borrow the right to execute on one of their assigned processors. The help out feature is not implemented with this patch.
* rtems: Clarify task set/get scheduler parametersSebastian Huber2014-05-201-5/+7
|
* score: Simplify _Thread_Change_priority()Sebastian Huber2014-05-151-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | The function to change a thread priority was too complex. Simplify it with a new scheduler operation. This increases the average case performance due to the simplified logic. The interrupt disabled critical section is a bit prolonged since now the extract, update and enqueue steps are executed atomically. This should however not impact the worst-case interrupt latency since at least for the Deterministic Priority Scheduler this sequence can be carried out with a wee bit of instructions and no loops. Add _Scheduler_Change_priority() to replace the sequence of - _Thread_Set_transient(), - _Scheduler_Extract(), - _Scheduler_Enqueue(), and - _Scheduler_Enqueue_first(). Delete STATES_TRANSIENT, _States_Is_transient() and _Thread_Set_transient() since this state is now superfluous. With this change it is possible to get rid of the SCHEDULER_SMP_NODE_IN_THE_AIR state. This considerably simplifies the implementation of the new SMP locking protocols.
* doc: Use @dfn for glossary termsSebastian Huber2014-05-081-1/+1
|
* doc: Move SMP glossary to global glossarySebastian Huber2014-05-082-126/+93
| | | | Add some terms.
* score: Implement forced thread migrationSebastian Huber2014-05-071-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implementation of task migration in RTEMS has some implications with respect to the interrupt latency. It is crucial to preserve the system invariant that a task can execute on at most one processor in the system at a time. This is accomplished with a boolean indicator in the task context. The processor architecture specific low-level task context switch code will mark that a task context is no longer executing and waits that the heir context stopped execution before it restores the heir context and resumes execution of the heir task. So there is one point in time in which a processor is without a task. This is essential to avoid cyclic dependencies in case multiple tasks migrate at once. Otherwise some supervising entity is necessary to prevent life-locks. Such a global supervisor would lead to scalability problems so this approach is not used. Currently the thread dispatch is performed with interrupts disabled. So in case the heir task is currently executing on another processor then this prolongs the time of disabled interrupts since one processor has to wait for another processor to make progress. It is difficult to avoid this issue with the interrupt latency since interrupts normally store the context of the interrupted task on its stack. In case a task is marked as not executing we must not use its task stack to store such an interrupt context. We cannot use the heir stack before it stopped execution on another processor. So if we enable interrupts during this transition we have to provide an alternative task independent stack for this time frame. This issue needs further investigation.
* score: SMP_FATAL_SCHEDULER_WITHOUT_PROCESSORSSebastian Huber2014-05-052-3/+3
| | | | | Avoid the SMP_FATAL_SCHEDULER_WITHOUT_PROCESSORS fatal error and make it a run-time error in rtems_scheduler_ident() and _Scheduler_Get_by_id().
* doc: Add SMP glossarySebastian Huber2014-05-051-0/+110
|
* doc: Extend documentation for unlimited objectsRalf Kirchner2014-04-301-4/+37
| | | | | | | Mark POSIX Keys and POSIX Key Value Pairs as supported. Add list of unsupported object classes. Add hint to unified work areas. Add example.
* doc: Setting Affinity to a Single ProcessorSebastian Huber2014-04-221-8/+20
|
* doc: TypoSebastian Huber2014-04-171-2/+1
|
* doc: rtems_task_set_scheduler()Sebastian Huber2014-04-171-0/+77
|
* doc: rtems_task_get_scheduler()Sebastian Huber2014-04-171-0/+35
|
* doc: rtems_scheduler_get_processor_set()Sebastian Huber2014-04-171-0/+40
|
* doc: rtems_scheduler_ident()Sebastian Huber2014-04-171-0/+37
|
* doc: rtems_task_set_affinity()Sebastian Huber2014-04-172-32/+15
|
* doc: rtems_task_get_affinity()Sebastian Huber2014-04-171-24/+15
|
* doc: rtems_get_current_processor()Sebastian Huber2014-04-171-0/+39
|
* doc: rtems_get_processor_count()Sebastian Huber2014-04-171-11/+14
|
* score: Add clustered/partitioned schedulingSebastian Huber2014-04-151-13/+194
| | | | | | | | | | | | | | | Clustered/partitioned scheduling helps to control the worst-case latencies in the system. The goal is to reduce the amount of shared state in the system and thus prevention of lock contention. Modern multi-processor systems tend to have several layers of data and instruction caches. With clustered/partitioned scheduling it is possible to honour the cache topology of a system and thus avoid expensive cache synchronization traffic. We have clustered scheduling in case the set of processors of a system is partitioned into non-empty pairwise-disjoint subsets. These subsets are called clusters. Clusters with a cardinality of one are partitions. Each cluster is owned by exactly one scheduler instance.
* score: Add scheduler nameSebastian Huber2014-04-151-0/+37
|
* score: Static scheduler configurationSebastian Huber2014-04-151-7/+9
| | | | | | Do not allocate the scheduler control structures from the workspace. This is a preparation step for configuration of clustered/partitioned schedulers on SMP.
* score: Statically initialize IO managerSebastian Huber2014-04-101-33/+35
| | | | | | | | | | | | This simplifies the RTEMS initialization and helps to avoid a memory overhead. The workspace demands of the IO manager were not included in the <rtems/confdefs.h> workspace size estimate. This is also fixed as a side-effect. Update documentation and move "Specifying Application Defined Device Driver Table" to the section end. This sub-section is not that important for the user. Mentioning this at the beginning may lead to confusion.
* documentation: ClarifySebastian Huber2014-04-101-1/+1
|
* documentation: Move CONFIGURE_MAXIMUM_DEVICESSebastian Huber2014-04-101-33/+33
| | | | | | Move CONFIGURE_MAXIMUM_DEVICES documentation to "File System Configuration Parameters". This define has nothing to do with the device driver table.
* Disable per task variables when SMP is enabledJoel Sherrill2014-04-041-2/+17
| | | | | | Per task variables are inherently unsafe in SMP systems. This patch disables them from the build and adds warnings in the appropriate documentation and configuration sections.
* doc: Improve description of rtems_status_text for ToCJoel Sherrill2014-03-112-6/+5
|
* smp.t: Add Background and Operation SectionsJoel Sherrill2014-03-111-7/+200
|
* Classic API Users Guide: Add SMP and affinity services.Joel Sherrill2014-03-113-2/+174
| | | | This patch adds the initial version of the SMP chapter to the Users Guide.
* stackchk.t task.t: Change can not to cannot for consistencyJoel Sherrill2014-03-112-2/+2
|
* score: Change debug helper functionsSebastian Huber2014-02-124-19/+20
| | | | | | | | Rename rtems_internal_error_description() to rtems_internal_error_text(). Rename rtems_fatal_source_description() to rtems_fatal_source_text(). Rename rtems_status_code_description() to rtems_status_text(). Remove previous implementation of rtems_status_text().
* rtems: Add rtems_status_code_description()Sebastian Huber2014-02-063-5/+37
|