Commit Graph

162 Commits

Author SHA1 Message Date
Sebastian Huber
4dad4b8411 sapi: Add profiling application level support 2014-03-14 08:46:49 +01:00
Sebastian Huber
3378be955a sptests/spcache01: New test 2014-02-24 16:12:03 +01:00
Sebastian Huber
95d0c98cac score: Fix thread TLS area initialization
Do not use _TLS_Size here since this will lead GCC to assume that this
symbol is not 0 and the later > 0 test will be optimized away.
2014-02-24 12:50:32 +01:00
Sebastian Huber
b39e055a49 score: Delete INTERNAL_ERROR_SHUTDOWN_WHEN_NOT_UP
This error case is no longer required since rtems_shutdown_executive()
can be called anytime, anywhere
2014-02-19 09:59:39 +01:00
Sebastian Huber
24bf11eca1 score: Add CPU counter support
Add a CPU counter interface to allow access to a free-running counter.
It is useful to measure short time intervals.  This can be used for
example to enable profiling of critical low-level functions.

Add two busy wait functions rtems_counter_delay_ticks() and
rtems_counter_delay_nanoseconds() implemented via the CPU counter.
2014-02-14 10:28:29 +01:00
Sebastian Huber
022851aba5 Add thread-local storage (TLS) support
Tested and implemented on ARM, m68k, PowerPC and SPARC.  Other
architectures need more work.
2014-02-04 10:06:35 +01:00
Mandar Juvekar
255178ec35 sptests: Refactor sp09 into sppartition_err01 and sp09. 2014-01-02 13:22:36 -06:00
Mandar Juvekar
dfcb3ace79 spregion_err01: New test refactored from sp09 2013-12-30 09:18:51 -06:00
Chirayu Desai
7b5f6643b2 sptests: refactor sp09/screen13 into a new test spclock_err02 2013-12-24 09:53:59 -05:00
Jennifer Averett
fe011a59a4 sptests/spcpuset*: Add tests for fixed size cpu_set_t operations.
This adds five tests for <sys/cpuset.h>. It does not include
tests for CPU_XXX_S methods. The autotools should be able to
avoid enabling the tests unless the toolset has <sys/cpuset.h>.
2013-12-19 14:11:09 -06:00
Daniel Ramirez
07f4edc14b sptests: refactored sp09/screen14.c into two new tests 2013-12-11 20:11:08 -05:00
Chirayu Desai
54da1243eb sptests: add a test for page size
Bug: https://www.rtems.org/bugzilla/show_bug.cgi?id=1216
2013-12-06 10:45:28 -05:00
Sebastian Huber
ec987ec00a sptests/spintrcritical20: PR2140: New test 2013-08-23 12:56:19 +02:00
Sebastian Huber
6b0cd960e5 sptests/spintrcritical19: PR2136: New test 2013-08-08 14:11:23 +02:00
WeiY
693088951d clean up spatomic testcase 2013-08-01 16:48:25 +02:00
Zhongwei Yao
8fb2bea426 score: Add freechain 2013-07-24 11:11:21 +02:00
WeiY
2e7f579865 stdatomic.h support check when configure 2013-07-17 13:07:33 +02:00
Gedare Bloom
26ecc744b5 sptests: add test to demonstrate bug in strict order mutex 2013-05-20 09:41:18 -04:00
Gedare Bloom
9cdbf73497 sptests: add test for priority inversion with multiple locks 2013-05-20 09:37:53 -04:00
Sebastian Huber
39993d6d76 score: Add CPU context validation 2013-05-10 12:10:14 +02:00
WeiY
502693f50e Clear the atomic conditional compilation. 2013-05-01 10:28:48 -04:00
Ralf Corsépius
bdf9072032 Introduce AM_CONDITIONAL ATOMIC, cpuopt RTEMS_ATOMIC. 2013-02-14 23:47:31 +01:00
WeiY
9d23df2fbc score: atomic support for RTEMS automake and autoconf changes 2013-02-07 17:02:12 -05:00
Sebastian Huber
815994fd17 score: Add CPU_Exception_frame
Add CPU port type CPU_Exception_frame and function
_CPU_Exception_frame_print().

The CPU ports of avr, bfin, h8300, lm32, m32c, m32r, m68k, nios2, sh,
sparc64, and v850 use an empty default implementation of
_CPU_Exception_frame_print().

Add rtems_exception_frame and rtems_exception_frame_print().

Add RTEMS_FATAL_SOURCE_EXCEPTION for CPU exceptions.  Use rtems_fatal()
with source RTEMS_FATAL_SOURCE_EXCEPTION in CPU ports of i386, powerpc,
and sparc for unexpected exceptions.

Add third parameter to RTEMS_BSP_CLEANUP_OPTIONS() which controls the
BSP_PRINT_EXCEPTION_CONTEXT define used in the default
bsp_fatal_extension().

Add test sptests/spfatal26.
2012-11-27 17:03:40 +01:00
Sebastian Huber
dc6e830c10 sapi: Add and use rtems_internal_error_description 2012-11-15 15:33:11 +01:00
Sebastian Huber
44633fd65c sptests/spinternalerror01: New test 2012-11-13 09:37:57 +01:00
Sebastian Huber
0edf263139 rtems: Add system events
System events are similar to normal events.  They offer a second set of
events.  These events are intended for internal RTEMS use and should not
be used by applications (with the exception of the transient system
event).
2012-10-30 18:03:02 +01:00
Sebastian Huber
47a3cd8f73 score: Work area initialization API change
The work areas (RTEMS work space and C program heap) will be initialized
now in a separate step and are no longer part of
rtems_initialize_data_structures().  Initialization is performed with
tables of Heap_Area entries.  This allows usage of scattered memory
areas present on various small scale micro-controllers.

The sbrk() support API changes also.  The bsp_sbrk_init() must now deal
with a minimum size for the first memory chunk to take the configured
work space size into account.
2012-10-25 14:54:06 +02:00
Sebastian Huber
9b83a66546 score: Critical fix for thread dispatching
The changes in _Thread_Dispatch() of commits
dad36c52b8 and
d4dc7c8196 introduced a severe bug which
destroys the real-time properties of RTEMS completely.

Consider the following scenario.  We have three tasks L (lowest
priority), M (middle priority), and H (highest priority).  Now let a
thread dispatch from M to L happen.  An interrupt occurs in
_Thread_Dispatch() here:

void _Thread_Dispatch( void )
{
  [...]

post_switch:

  _ISR_Enable( level );

  <-- INTERRUPT
  <-- AFTER INTERRUPT

  _Thread_Unnest_dispatch();

  _API_extensions_Run_postswitch();
}

The interrupt event makes task H ready.  The interrupt code will see
_Thread_Dispatch_disable_level > 0 and thus doesn't perform a
_Thread_Dispatch().  Now we return to position "AFTER INTERRUPT".  This
means task L executes now although task H is ready!  Task H will execute
once someone calls _Thread_Dispatch().
2012-10-07 14:40:49 +02:00
Krzysztof Mięsowicz
a6eaa5489c timespec helpers: Add wrappers with new test 2012-08-29 07:38:54 -05:00
Krzysztof Mięsowicz
3913e3cf93 sp77: new test to cover allocated message size overflowing
Author:    Krzysztof Mięsowicz <krzysztof.miesowicz@gmail.com>
2012-08-29 07:37:01 -05:00
Ralf Corsépius
bb2b8259ea Require automake-1.12.2. 2012-07-19 15:47:55 +02:00
Ralf Corsépius
0f772813aa Require autoconf-2.69. 2012-07-19 15:44:32 +02: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
Joel Sherrill
33a105fb69 Revert: Remove CVS Ids
See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html
for details.
2012-05-07 11:08:48 -05:00
Ralf Corsépius
70f3719807 Remove CVS-Ids. 2012-05-04 09:36:24 +02:00
Petr Benes
c050143273 PR1908: QoS library for CBS scheduler
Since the CBS scheduler is inspired by AQuoSA project for Linux, additional API
(qreslib) compliant with Linux has been created.

Sptest for qreslib included.
2012-04-15 23:06:34 -04:00
Sebastian Huber
46231e1330 2011-12-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1924/cpukit
	* spstkalloc02/.cvsignore, spstkalloc02/Makefile.am,
	spstkalloc02/init.c, spstkalloc02/spstkalloc02.doc,
	spstkalloc02/spstkalloc02.scn: New files.
	* Makefile.am, configure.ac: Reflect changes above.
2011-12-14 13:18:01 +00:00
Ralf Corsepius
b47a7ccb8d 2011-09-30 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Check for size of time_t.
2011-09-30 01:55:27 +00:00
Sebastian Huber
0d573690ae 2011-09-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
* sp2038/Makefile.am, sp2038/init.c, sp2038/sp2038.doc,
	sp2038/sp2038.scn: New files.
	* Makefile.am, configure.ac: Reflect changes above.
2011-09-28 16:01:53 +00:00
Joel Sherrill
bd1b8de265 2011-09-15 Petr Benes <benesp16@fel.cvut.cz>
PR 1907/testing
	* Makefile.am, configure.ac: Add tests for the CBS (Constant Bandwidth
	Server) scheduler.
	* spcbssched01/.cvsignore, spcbssched01/Makefile.am,
	spcbssched01/init.c, spcbssched01/spcbssched01.doc,
	spcbssched01/spcbssched01.scn, spcbssched01/system.h,
	spcbssched01/task1.c, spcbssched02/.cvsignore,
	spcbssched02/Makefile.am, spcbssched02/init.c,
	spcbssched02/spcbssched02.doc, spcbssched02/spcbssched02.scn,
	spcbssched02/system.h, spcbssched02/task_periodic.c,
	spcbssched03/.cvsignore, spcbssched03/Makefile.am,
	spcbssched03/cbsparams.h, spcbssched03/init.c,
	spcbssched03/spcbssched03.doc, spcbssched03/spcbssched03.scn,
	spcbssched03/system.h, spcbssched03/tasks_aperiodic.c,
	spcbssched03/tasks_periodic.c: New files.
2011-09-15 15:56:01 +00:00
Joel Sherrill
0d6aee4e35 2011-09-11 Petr Benes <benesp16@fel.cvut.cz>
PR 1897/testing
	* Makefile.am, configure.ac: Add tests for Earliest Deadline First
	(EDF) Scheduling Algorithm implementation.
	* spedfsched01/.cvsignore, spedfsched01/Makefile.am,
	spedfsched01/init.c, spedfsched01/spedfsched01.doc,
	spedfsched01/spedfsched01.scn, spedfsched01/system.h,
	spedfsched01/task1.c, spedfsched02/.cvsignore,
	spedfsched02/Makefile.am, spedfsched02/getall.c, spedfsched02/init.c,
	spedfsched02/spedfsched02.doc, spedfsched02/spedfsched02.scn,
	spedfsched02/system.h, spedfsched02/task1.c, spedfsched03/.cvsignore,
	spedfsched03/Makefile.am, spedfsched03/edfparams.h,
	spedfsched03/init.c, spedfsched03/spedfsched03.doc,
	spedfsched03/spedfsched03.scn, spedfsched03/system.h,
	spedfsched03/tasks_aperiodic.c, spedfsched03/tasks_periodic.c: New
	files.
2011-09-11 20:56:45 +00:00
Joel Sherrill
3cdac682c9 2011-07-28 Pawel Zagorski <pzagor@agh.edu.pl>
PR 1857/tests
	* Makefile.am, configure.ac: Add test where there is more than one
	thread at a priority with the executing thread being non-preemptive.
	* sp76/.cvsignore, sp76/Makefile.am, sp76/init.c, sp76/sp76.doc,
	sp76/sp76.scn: New files.
2011-07-28 21:06:43 +00:00
Joel Sherrill
6b95d5c0f7 2011-07-26 Joel Sherrill <joel.sherrilL@OARcorp.com>
* Makefile.am, configure.ac: New test to get coverage of core mutex
	obtain while in ISR or other dispatch disabled critical section but
	no wait.
	* sp75/.cvsignore, sp75/Makefile.am, sp75/init.c, sp75/sp75.doc,
	sp75/sp75.scn: New files.
2011-07-26 20:53:09 +00:00
Joel Sherrill
dacde6e4c1 2011-07-26 Pawel Zagorski <pzagor@agh.edu.pl>
PR 1853/tests
	* Makefile.am, configure.ac: Add test for case where a thread is
	non-preemptive, multiple threads are ready at that priority, a higher
	priority thread is heir and the thread yields.
	* sp74/.cvsignore, sp74/Makefile.am, sp74/init.c, sp74/sp74.doc,
	sp74/sp74.scn: New files.
2011-07-26 17:30:30 +00:00
Sebastian Huber
b68d231ee2 2011-05-06 Sebastian Huber <sebastian.huber@embedded-brains.de>
* spnsext01/.cvsignore, spnsext01/Makefile.am, spnsext01/init.c,
	spnsext01/spnsext01.doc, spnsext01/spnsext01.scn: New files.
	* Makefile.am, configure.ac: Reflect changes above.
2011-05-06 07:08:04 +00:00
Joel Sherrill
142b3b810f 2011-04-04 Gedare Bloom <giddyup44@yahoo.com>
PR 1641/cpukit
	* Makefile.am, configure.ac: Create testcase for red black tree.
	* sprbtree01/init.c, sprbtree01/Makefile.am, sprbtree01/sprbtree01.doc,
	sprbtree01/sprbtree01.scn: New files.
2011-04-04 18:45:38 +00:00
Joel Sherrill
5bbc204431 2011-03-16 Jennifer Averett <jennifer.averett@OARcorp.com>
PR 1743/cpu
	* Makefile.am, configure.ac, spsize/size.c: 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.
	* spsimplesched01/.cvsignore, spsimplesched01/Makefile.am,
	spsimplesched01/init.c, spsimplesched01/spsimplesched01.doc,
	spsimplesched01/spsimplesched01.scn, spsimplesched02/.cvsignore,
	spsimplesched02/Makefile.am, spsimplesched02/init.c,
	spsimplesched02/spsimplesched02.doc,
	spsimplesched02/spsimplesched02.scn, spsimplesched03/.cvsignore,
	spsimplesched03/Makefile.am, spsimplesched03/init.c,
	spsimplesched03/spsimplesched03.doc,
	spsimplesched03/spsimplesched03.scn: New files.
2011-03-16 16:33:04 +00:00
Joel Sherrill
89ed8a9055 2011-03-11 Joel Sherrill <joel.sherrilL@OARcorp.com>
* Makefile.am, configure.ac: Add sp73.  This is a new test designed
	to improve coverage of the thread yield logic.
	* sp73/.cvsignore, sp73/Makefile.am, sp73/init.c, sp73/sp73.doc,
	sp73/sp73.scn: New files.
2011-03-11 16:39:27 +00:00
Ralf Corsepius
027e40dc03 2011-02-22 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Add AC_CONFIG_HEADER(config.h).
2011-02-22 14:56:36 +00:00