Commit Graph

103 Commits

Author SHA1 Message Date
Sebastian Huber
8fcafdd553 score: Multiprocessor Resource Sharing Protocol
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.
2014-05-28 10:50:41 +02:00
Sebastian Huber
e239760f6a score: SMP_FATAL_SCHEDULER_WITHOUT_PROCESSORS
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().
2014-05-05 08:26:27 +02:00
Ralf Kirchner
0832ca7dc3 doc: Extend documentation for unlimited objects
Mark POSIX Keys and POSIX Key Value Pairs as supported.
Add list of unsupported object classes.
Add hint to unified work areas.
Add example.
2014-04-30 08:29:55 +02:00
Sebastian Huber
10e613ba52 doc: Typo 2014-04-17 08:06:39 +02:00
Sebastian Huber
c5831a3f9a score: Add clustered/partitioned scheduling
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.
2014-04-15 10:41:44 +02:00
Sebastian Huber
133d54c55e score: Add scheduler name 2014-04-15 08:37:12 +02:00
Sebastian Huber
e1598a616d score: Static scheduler configuration
Do not allocate the scheduler control structures from the workspace.
This is a preparation step for configuration of clustered/partitioned
schedulers on SMP.
2014-04-15 08:37:11 +02:00
Sebastian Huber
263f4becea score: Statically initialize IO manager
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.
2014-04-10 12:37:40 +02:00
Sebastian Huber
3a4d28a8c3 documentation: Clarify 2014-04-10 12:34:00 +02:00
Sebastian Huber
d61f550246 documentation: Move CONFIGURE_MAXIMUM_DEVICES
Move CONFIGURE_MAXIMUM_DEVICES documentation to "File System
Configuration Parameters".  This define has nothing to do with the
device driver table.
2014-04-10 11:52:22 +02:00
Shubham Somani
e4ced53e68 doc: Document format in conf.t 2013-10-15 13:14:13 -04:00
Sebastian Huber
99b35052ae smp: Add Deterministic Priority SMP Scheduler 2013-08-20 10:17:35 +02:00
Shubham Somani
45ca51c4f7 doc/user/conf.t: More clean ups 2013-07-29 13:06:31 -05:00
Joel Sherrill
989604a56f conf.t: Fix minor typos. 2013-07-24 15:30:24 -05:00
Cynthia Rempel
3c495d510d doc/user/conf.t: Fix SMP_MAXIMUM_PROCESSORS and add Go configuration 2013-07-24 13:14:28 -05:00
Cynthia Rempel
1f6138e50f doc/user/conf.t: Fix SMP_MAXIMUM_PROCESSORS and add Go Configuration 2013-07-22 18:30:07 -05:00
Cynthia Rempel
873859a405 Make the default values easier for the configuration GUI to parse 2013-06-12 13:52:55 -04:00
Sebastian Huber
14c55cc0f8 doc: Config documentation changes throughout 2013-04-10 16:09:12 +02:00
Sebastian Huber
a6a88f4b0e doc: Add bdbuf configuration options 2013-04-10 15:47:54 +02:00
Joel Sherrill
b2cf295fb0 user/conf.t: Address User Feedback from Stephen Tether
Stephen Tether <tether@slac.stanford.edu> posted to the users list:

http://www.rtems.org/pipermail/rtems-users/2013-April/011273.html

I tried to make the requested changes.
2013-04-09 13:15:40 -05:00
Joel Sherrill
6cb356713b doc/user/conf.t: Rewrite to emphasize confdefs.h and add detail
This patch includes a heavy rewrite of the chapter to have a more
structured approach to this chapter.  It also changes the sectioning
to have the Data Structures be a section to themselves as a peer in the
outline with each logical area of macros in confdefs.h.
2013-04-09 13:15:12 -05:00
Sebastian Huber
7571a235c5 sapi: PR1911: Add CONFIGURE_DISABLE_BSP_SETTINGS 2013-02-12 09:31:27 +01:00
Sebastian Huber
15aaea9769 doc/user: Fix scheduler configuration 2012-11-07 17:09:01 +01:00
Joel Sherrill
9b4422a251 Remove All CVS Id Strings Possible Using a Script
Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines
  next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
  contain CVS Ids
+ If the processing left a blank line at the top of
  a file, it was removed.
2012-05-11 08:44:13 -05:00
Sebastian Huber
ced0816218 doc: Document new macros 2012-04-11 16:30:13 +02:00
Gedare Bloom
e53aae2676 confdefs: Add declaration for unlimited objects.
Adds to confdefs a way to specify rtems_resource_unlimited for classic and
posix objects using a new macro CONFIGURE_OBJECTS_UNLIMITED.
Use CONFIGURE_OBJECTS_ALLOCATION_SIZE to declare the allocation size for
extending the set of objects at runtime. Updates the unlimited sample
to demonstrate how to use the new macros. Also adds new documentation in
the C User's Manual regarding configuring with unlimited objects.
2012-03-27 19:51:31 -04:00
Joel Sherrill
e6584da9ac 2011-12-07 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1984/doc
	* user/conf.t: Change CONFIGURE_MINIMUM_STACK_SIZE to
	CONFIGURE_MINIMUM_TASK_STACK_SIZE.
2011-12-07 20:08:42 +00:00
Joel Sherrill
a756effd22 2011-12-07 Joel Sherrill <joel.sherrill@oarcorp.com>
* user/conf.t: Move @findex for CONFIGURE_MICROSECONDS_PER_TICK to
	where it should be.
2011-12-07 20:04:05 +00:00
Jennifer Averett
ce017f908a 2011-11-18 Jennifer Averett <Jennifer.Averett@OARcorp.com>
* user/conf.t: Added a bsp override option for MAXIMUM_DEVICES.
2011-11-18 20:04:02 +00:00
Joel Sherrill
418de420a0 2011-10-05 Joel Sherrill <joel.sherrill@oarcorp.com>
Petr Benes <benesp16@fel.cvut.cz>

	PR 1912/doc
	* user/conf.t, user/schedule.t: Rework to add scheduler specific
	information.
2011-10-05 19:59:47 +00:00
Joel Sherrill
66627544cd 2011-07-29 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1864/doc
	* user/conf.t: Add missing documentation for
	CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS,
	CONFIGURE_MAXIMUM_POSIX_BARRIERS , CONFIGURE_MAXIMUM_POSIX_SPINLOCKS,
	CONFIGURE_MAXIMUM_POSIX_RWLOCKS.
2011-07-29 19:50:22 +00:00
Joel Sherrill
b4a662a23b 2011-07-26 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1851/doc
	* user/conf.t: Fix typo in CONFIGURE_MESSAGE_BUFFER_MEMORY example.
2011-07-26 14:13:20 +00:00
Joel Sherrill
db56ac7972 2011-05-19 Gedare Bloom <giddyup44@yahoo.com>
* user/conf.t: Fix typos.
2011-05-19 15:40:42 +00:00
Joel Sherrill
49115133ad 2011-05-18 Joel Sherrill <joel.sherrill@oarcorp.com>
* user/conf.t: Add SMP Configuration parameters.
2011-05-18 23:29:12 +00:00
Joel Sherrill
a331ef7325 2011-05-18 Joel Sherrill <joel.sherrill@oarcorp.com>
* user/conf.t: Slight rework to deemphasize not using confdefs.h
2011-05-18 23:00:50 +00:00
Joel Sherrill
18b8ac71d8 2011-03-16 Jennifer Averett <jennifer.averett@OARcorp.com>
PR 1743/cpu
	* user/conf.t: Add Simple Priority Scheduler as complement to existing
	Deterministic Priority Scheduler. This scheduler serves both as an
	example and as a lighter weight implementation for smaller systems.
2011-03-16 16:39:16 +00:00
Joel Sherrill
eae1447dba 2011-02-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* user/conf.t: Document changes to Scheduler configuration.
2011-02-17 22:37:06 +00:00
Joel Sherrill
db9964f185 2010-11-24 Gedare Bloom <giddyup44@yahoo.com>
PR 1647/cpukit
	* user/conf.t, user/schedule.t: Update documentation to reflect
	refactoring of SuperCore to add Scheduler and ability for user to
	configure a scheduler.
2010-11-24 15:52:21 +00:00
Joel Sherrill
11be37d1e3 2010-06-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, configure.ac, index.html.in, develenv/direct.t,
	posix_users/gen_size_report, started/nextstep.t,
	started_ada/buildada.t, user/conf.t, user/object.t: Remove ITRON API.
	* itron3.0/.cvsignore, itron3.0/Makefile.am, itron3.0/config.t,
	itron3.0/eventflags.t, itron3.0/fixedblock.t, itron3.0/gen_all,
	itron3.0/gen_section, itron3.0/gen_status_shell,
	itron3.0/interrupt.t, itron3.0/itron.texi, itron3.0/mailbox.t,
	itron3.0/memorypool.t, itron3.0/msgbuffer.t, itron3.0/network.t,
	itron3.0/preface.texi, itron3.0/rendezvous.t, itron3.0/semaphore.t,
	itron3.0/stamp-vti, itron3.0/status.t, itron3.0/task.t,
	itron3.0/tasksync.t, itron3.0/time.t, itron3.0/version.texi: Removed.
2010-06-17 18:45:36 +00:00
Joel Sherrill
a16a794916 2010-03-04 Joel Sherrill <joel.sherrill@oarcorp.com>
* user/conf.t: CONFIGURE_DISABLE_CLASSIC_NOTEPADS is typo of
	CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS. Fix it.
2010-03-04 14:40:06 +00:00
Joel Sherrill
ce017afb1b 2009-09-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* user/conf.t, user/userext.t: Eliminate use of deprecated
	rtems_extension.
2009-09-26 15:51:31 +00:00
Joel Sherrill
7c9c8c8c59 2009-08-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
* user/conf.t: Change stack allocator signature.
2009-08-26 12:14:57 +00:00
Joel Sherrill
b6f8f03e62 2009-08-05 Joel Sherrill <joel.sherrill@OARcorp.com>
* user/conf.t: Add configuration of posix message queue file
	descriptors as separate entity. Also add documentation on posix
	configuration elements not previously covered.
2009-08-05 15:29:58 +00:00
Joel Sherrill
f1b90cc4bd 2009-07-28 Joel Sherrill <joel.sherrill@oarcorp.com>
* bsp_howto/.cvsignore, bsp_howto/Makefile.am,
	bsp_howto/bsp_howto.texi: Add Frame Buffer Device Driver shell.
	* bsp_howto/framebuffer.t: New file.
	* user/conf.t: Add CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER.
2009-07-28 18:02:25 +00:00
Joel Sherrill
6d96c98879 2009-05-08 Joel Sherrill <joel.sherrill@oarcorp.com>
* user/conf.t: Change work_space_size to uintptr_t since it cannot be
	negative.
2009-05-08 13:26:59 +00:00
Joel Sherrill
1a0e1a7163 2008-12-14 Joel Sherrill <joel.sherrill@oarcorp.com>
* user/conf.t, user/region.t: Change sizes of heap/region and allocated
	objects in heap to intptr_t so they can be larger than a single
	allocatable object (e.g. size_t).
2008-12-14 22:48:33 +00:00
Joel Sherrill
7df0d54172 2008-10-14 Joel Sherrill <joel.sherrill@OARcorp.com>
* user/conf.t: Fix typo.
2008-10-14 17:44:56 +00:00
Joel Sherrill
79e4227c1e 2008-09-18 Miao Yan <yanmiaobest@gmail.com>
* user/conf.t: Add CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM and
	CONFIGURE_APPLICATION_DISABLE_FILESYSTEM.
2008-09-18 13:31:04 +00:00
Joel Sherrill
5d2c65e0bd 2008-09-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* shell/rtems.t, user/conf.t, user/stackchk.t: Rename STACK_CHECKER_ON
	to more appropriate CONFIGURE_STACK_CHECKER_ENABLED.
2008-09-17 19:30:29 +00:00
Joel Sherrill
96a0303b63 2008-09-17 Joel Sherrill <joel.sherrill@OARcorp.com>
* user/conf.t: Fix typo.
2008-09-17 19:03:10 +00:00