Commit Graph
26244 Commits
Author SHA1 Message Date
Joel Sherrill 95cb09ed74 sparc/shared/.../linkcmds.base: Correct C++ support
Add KEEP() for .eh_frame*, .ctor*, and .dtor*.
2014-04-04 09:26:08 -05:00
Joel Sherrill c6f0a4b7cb schedulerpriorityaffinitysmp.h: Fix compilation error introduced by recent changes 2014-04-04 09:24:44 -05:00
Joel Sherrill eb2c8133aa privateenv.c: Remove unused variable warning 2014-04-04 09:24:17 -05:00
Sebastian Huber 24934e36e2 score: Add scheduler control to scheduler ops
Scheduler operations must be free of a global scheduler context to
enable partitioned/clustered scheduling.
2014-04-04 11:01:18 +02:00
Sebastian Huber 439c494fe2 score: Add and use Scheduler_simple_Control 2014-04-04 11:01:18 +02:00
Sebastian Huber 3891983283 score: Add and use Scheduler_EDF_Control 2014-04-04 11:01:18 +02:00
Sebastian Huber e8fffc2d5c score: Delete superfluous field 2014-04-04 11:01:18 +02:00
Sebastian Huber d62b5ac99b score: Include missing header file 2014-04-04 11:01:18 +02:00
Sebastian Huber fc3c7599f6 score: Move declaration to end of file 2014-04-04 11:01:18 +02:00
Joel Sherrill 69d7279bd5 pthreadimpl.h: Conditionalize thread affinity copying 2014-04-03 17:02:40 -05:00
Joel Sherrill aa7ff5d3f9 leon2 ckinit.c, console.c: Comment clean up 2014-04-03 15:16:07 -05:00
Joel Sherrill fcc1076195 leon2/Makefile.am: Change to one file per line 2014-04-03 15:16:07 -05:00
Joel Sherrill 68a647045b erc32/Makefile.am: Change to one file per line 2014-04-03 15:16:07 -05:00
Joel Sherrill 6c0b7b878c psim/console/console-io.c: Comment clean up 2014-04-03 15:16:07 -05:00
Joel Sherrill d4db719346 sim68000/console/conscfg.c: Comment clean up 2014-04-03 15:16:07 -05:00
Joel Sherrill 3a422f7d66 h8sim/console/console-io.c: Comment clean up 2014-04-03 15:16:07 -05:00
Joel Sherrill 68c156aea7 pthreadcreate.c: Fix bug where attr used instead of the_attr 2014-04-03 15:03:42 -05:00
Joel Sherrill a0a073d1c9 pthread.c: Conditionalize thread affinity initialization 2014-04-03 13:51:47 -05:00
Jennifer Averett af53e6cffa smpaffinity01: Use Priority Affinity SMP scheduler. 2014-04-03 10:48:58 -05:00
Jennifer Averett d4e1ead87d smppsxaffinity01: Use Priority Affinity SMP scheduler. 2014-04-03 10:48:57 -05:00
Jennifer Averett cb283959ce smppsxaffinity02: Use Priority Affinity SMP scheduler. 2014-04-03 10:48:57 -05:00
Jennifer Averett e045fb6c60 posix: Move affinity from thread to scheduler. 2014-04-03 10:48:57 -05:00
Jennifer Averett 7205189ce3 posix: Modified pthread init to use cpuset default. 2014-04-03 10:48:57 -05:00
Jennifer Averett 54f345f5a5 rtems: Move affinity from thread to scheduler. 2014-04-03 10:48:57 -05:00
Jennifer Averett 6d24e8bc6f sapi: Add priority affinity smp scheduler. 2014-04-03 10:48:56 -05:00
Jennifer Averett da5b1b9f4c score: Remove affinity element from thread. 2014-04-03 10:48:56 -05:00
Jennifer Averett 56c396ba47 score: Add priority affinity smp scheduler. 2014-04-03 10:48:56 -05:00
Jennifer Averett cfe457f9a6 score: score: Add get/set affinity to Scheduler Framework. 2014-04-03 10:46:24 -05:00
Sebastian Huber 1a6093dc60 samples/fileio: Fix configuration 2014-04-03 12:53:24 +02:00
Sebastian Huber 494c2e3002 score: Move priority bit map to scheduler instance
Delete global variables _Priority_Major_bit_map and _Priority_Bit_map.
This makes it possible to use multiple priority scheduler instances for
example with clustered/partitioned scheduling on SMP.
2014-04-03 11:13:26 +02:00
Sebastian Huber f570b07199 score: Rename Priority_bit_map_Control
Rename Priority_bit_map_Control in Priority_bit_map_Word.
2014-04-03 11:13:26 +02:00
Sebastian Huber 3f5f2ce229 score: PR788: Add INTERNAL_ERROR_RESOURCE_IN_USE
Issue a fatal error in case a thread is deleted which still owns
resources (e.g. a binary semaphore with priority inheritance or ceiling
protocol).  The resource count must be checked quite late since RTEMS
task variable destructors, POSIX key destructors, POSIX cleanup handler,
the Newlib thread termination extension or other thread termination
extensions may release resources.  In this context it would be quite
difficult to return an error status to the caller.

An alternative would be to place threads with a non-zero resource count
not on the zombie chain.  Thus we have a resource leak instead of a
fatal error.  The terminator thread can see this error if we return an
RTEMS_RESOURCE_IN_USE status for the rtems_task_delete() for example.
2014-04-03 11:13:25 +02:00
Sebastian Huber 499492793b score: Move __log2table to separate file 2014-04-01 14:10:23 +02:00
Sebastian Huber 8e980e6168 bsps/powerpc: Fix linker command files 2014-04-01 14:10:23 +02:00
Sebastian Huber 10b0c3f9d3 bsps/powerpc: PR757: Fix PPC_IRQ_TRACE for ppc601
We could probably also remove the ppc601 support entirely.
2014-04-01 14:10:23 +02:00
Sebastian Huber 3ccfd98bc1 libtests/newlib01: New test 2014-04-01 14:10:22 +02:00
Sebastian Huber 57db5f13fb smptests/smpthreadlife01: Avoid bad profiling stat 2014-04-01 14:10:22 +02:00
Sebastian Huber 25a978354c ringbuf: Fix ISR lock initialization/destruction 2014-04-01 14:10:22 +02:00
Sebastian Huber 91e7b0c5ae score: PR2172: _Thread_queue_Extract()
Add _Thread_queue_Extract_with_return_code().  On SMP this sequence in
_Thread_queue_Process_timeout() was broken:

[...]
      /*
       * After we enable interrupts here, a lot may happen in the
       * meantime, e.g. nested interrupts may release the resource that
       * times out here.  So we enter _Thread_queue_Extract()
       * speculatively.  Inside this function we check the actual status
       * under ISR disable protection.  This ensures that exactly one
       * executing context performs the extract operation (other parties
       * may call _Thread_queue_Dequeue()).  If this context won, then
       * we have a timeout.
       *
       * We can use the_thread_queue pointer here even if
       * the_thread->Wait.queue is already set to NULL since the extract
       * operation will only use the thread queue discipline to select
       * the right extract operation.  The timeout status is set during
       * thread queue initialization.
       */
      we_did_it = _Thread_queue_Extract( the_thread_queue, the_thread );
      if ( we_did_it ) {
        the_thread->Wait.return_code = the_thread_queue->timeout_status;
      }
[...]

In case _Thread_queue_Extract() successfully extracted a thread, then
this thread may start execution on a remote processor immediately and
read the the_thread->Wait.return_code before we update it here with the
timeout status.  Thus it observes a successful operation even if it
timed out.
2014-04-01 14:10:22 +02:00
Sebastian Huber 8118b67065 libchip: Avoid __DEVOLATILE() 2014-03-31 18:31:52 +02:00
Sebastian Huber b9b014ea7e smptests/smpthreadlife01: Typo 2014-03-31 15:49:35 +02:00
Sebastian Huber a881ff299e smptests/smpthreadlife01: Add test cases 2014-03-31 15:46:03 +02:00
Daniel Cederman 1d9818dcb3 LEON3: UT699 and GR712 sleep-mode d-cache fix
See errata of respective chip. Some code-cleanup as well.
2014-03-31 13:32:48 +02:00
Sebastian Huber ab816bcb01 sptests/sptask_err04: Fix broken test 2014-03-31 10:14:43 +02:00
Pavel Pisa 3c21ad7db0 SPI SD-Card: adapt common driver code to block devices core API changes. 2014-03-31 10:14:43 +02:00
Sebastian Huber 600bb68fa1 score: _Thread_queue_Extract_with_proxy()
Drop the return status, since it is nowhere used.
2014-03-31 10:14:43 +02:00
Sebastian Huber 03e8928753 score: Delete CORE_mutex_Control::lock
The holder field is enough to determine if a mutex is locked or not.

This leads also to better error status codes in case a
rtems_semaphore_release() is done for a mutex without having the
ownership.
2014-03-31 10:14:42 +02:00
Sebastian Huber b1ce11614b score: Delete CORE_mutex_Control::holder_id
We can use the holder pointer to get the identifier if necessary.
2014-03-31 10:14:42 +02:00
Sebastian Huber cb8d3e7b8f score: Delete CORE_mutex_Control::blocked_count 2014-03-31 10:14:42 +02:00
Sebastian Huber f0b4fd9c2e score: Do not reset resource count during restart
This fixes an integer underflow problem in case resources are released
after a thread restart.

Add new test sptests/spthreadlife01.
2014-03-31 10:14:35 +02:00