Commit Graph

26469 Commits

Author SHA1 Message Date
Sebastian Huber
2369b10a71 score: Add and use _Scheduler_Get_context() 2014-05-14 17:01:22 +02:00
Sebastian Huber
0f41cc3f4b score: _Scheduler_priority_Ready_queue_requeue()
Delete unused function _Scheduler_priority_Ready_queue_requeue().
2014-05-14 16:49:27 +02:00
Sebastian Huber
c21c5912a8 score: Add STATES_RESTARTING
Use separate state for thread restart.
2014-05-14 16:49:27 +02:00
Sebastian Huber
01f302bd55 score: Typo 2014-05-14 16:49:27 +02:00
Sebastian Huber
0e8d55b0ca monitor: Support STATES_MIGRATING 2014-05-14 16:49:27 +02:00
Sebastian Huber
249eaf9991 bsps/sparc: Fix BSS initialization
Use __bss_start available via %g2 to clear the BSS section.  The usage
of _edata resulted in a copy of [_edata, __bss_start) from ROM to RAM
and then a clear to zero of this area.

Clear now only [__bss_start, _end).
2014-05-14 14:46:20 +02:00
Sebastian Huber
b2d191e833 bsps/sparc: Fix data copy in start procedure
Use the register %g4 for the data content since it must be an even
numbered register due to the std/ldd.  Use the register %g2 for the BSS
start address, so that it can be later re-used for the BSS zero loop.
2014-05-14 14:46:20 +02:00
Sebastian Huber
3730a07fac score: Use Scheduler_Context for SMP scheduler
Use the basic Scheduler_Context for the general SMP scheduler operations
to avoid usage of structure offsets to get the specialized context
variants.
2014-05-14 14:46:20 +02:00
Sebastian Huber
e9ee2f034d score: Capitalize SMP acronym 2014-05-14 14:46:20 +02:00
Sebastian Huber
c6522a6564 score: SMP scheduler documentation 2014-05-14 14:46:20 +02:00
Sebastian Huber
beab7329fc score: Introduce scheduler nodes
Rename scheduler per-thread information into scheduler nodes using
Scheduler_Node as the base type.  Use inheritance for specialized
schedulers.

Move the scheduler specific states from the thread control block into
the scheduler node structure.

Validate the SMP scheduler node state transitions in case RTEMS_DEBUG is
defined.
2014-05-14 14:46:19 +02:00
Sebastian Huber
5b1ff71ab7 score: Scheduler documentation 2014-05-14 14:46:19 +02:00
Daniel Cederman
774ee0029e sparc: Change asm to __asm__ to compile with -std=c99. 2014-05-14 10:33:28 +02:00
Ralf Kirchner
c8b7b32329 bsp/altera-caclone-v: Early printk support
Make sure printk can work early during BSP startup.
2014-05-12 15:57:50 +02:00
Sebastian Huber
390e73c4ee score: Move out of __RTEMS_HAVE_SYS_CPUSET_H__
Move _Scheduler_Get() and _Scheduler_Set() out of the #if
defined(__RTEMS_HAVE_SYS_CPUSET_H__) block.
2014-05-12 15:56:42 +02:00
Sebastian Huber
fa0a9a1893 bsps: Declare bsp_start_on_secondary_processors() 2014-05-12 09:32:20 +02:00
Sebastian Huber
6c5c2f39d0 bsps: Use bsp_start_on_secondary_processor()
Use a standard function for startup on secondary processors.
2014-05-12 09:23:51 +02:00
Sebastian Huber
64a04ac3c7 bsps: Use standard file name for BSP support 2014-05-12 09:01:40 +02:00
Sebastian Huber
ca2dd1ef09 bsp/leon3: Delete unused function 2014-05-12 08:37:05 +02:00
Sebastian Huber
6339cd2de2 rtems: Move extern "C" in <rtems.h>
Do not cover the includes with an extern "C".
2014-05-12 08:37:05 +02:00
Christian Mauderer
3a3869c449 bsps/sparc: Move flags to grlib header
This enables re-use for other BSPs
2014-05-12 08:37:00 +02:00
Sebastian Huber
89f079469c bsp/gen83xx: Disable interrupt nesting for br_uid
This is necessary for the USB support.
2014-05-08 13:02:44 +02:00
Sebastian Huber
11b05f11d4 score: Fix CPU context usage on SMP
We must not alter the is executing indicator in
_CPU_Context_Initialize() since this would cause an invalid state during
a self restart.

The is executing indicator must be valid at creation time since
otherwise _Thread_Kill_zombies() uses an undefined value for not started
threads.  This could result in a system life lock.
2014-05-08 13:02:40 +02:00
Sebastian Huber
35a3af7af8 doc: Use @dfn for glossary terms 2014-05-08 08:43:45 +02:00
Sebastian Huber
29e6637eb1 doc: Move SMP glossary to global glossary
Add some terms.
2014-05-08 08:43:45 +02:00
Sebastian Huber
d9196d1da7 configure: Paravirtualization for all targets
Virtual machines with paravirtualization exist not only on x86.
2014-05-08 08:40:35 +02:00
Sebastian Huber
23b9d09528 smptests/smp07: Fix test output 2014-05-07 18:32:15 +02:00
Sebastian Huber
8fa342218d smptests/smp05: Fix test name and output 2014-05-07 18:30:36 +02:00
Sebastian Huber
b97bc8bc71 tests: Add locked_printf_plugin()
Add locked_vprintf().  Return an int just like printf(), etc.
2014-05-07 18:27:19 +02:00
Sebastian Huber
0960fee406 rtems: Fix ASR SMP support
Initialize the ISR lock only once and destroy it properly.
2014-05-07 17:55:59 +02:00
Sebastian Huber
6c36946fea score: Fix SMP startup 2014-05-07 14:26:33 +02:00
Sebastian Huber
38b59a6d30 score: Implement forced thread migration
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.
2014-05-07 14:26:28 +02:00
Sebastian Huber
58444f7795 score: Delete _SMP_Test_message_default_handler
A default handler is not necessary.  The test message sender must ensure
that a handler is installed.
2014-05-07 12:08:11 +02:00
Sebastian Huber
0034629738 bsps/arm: Declare return types 2014-05-07 09:24:07 +02:00
Sebastian Huber
43ef706873 bsps: Fix BSP_INITIAL_EXTENSION 2014-05-07 09:24:07 +02:00
Sebastian Huber
07e7a7f8ce score: Documentation 2014-05-07 08:14:37 +02:00
Joel Sherrill
3324383ce0 testsuites: Remove BSP_SMALL_MEMORY 2014-05-06 18:31:00 -05:00
Joel Sherrill
053abcda22 multiple BSPs: Remove BSP_SMALL_MEMORY 2014-05-06 18:31:00 -05:00
Sebastian Huber
c2ea0ea54d bsp/gen83xx: Add BSP_USB_EHCI_MPC83XX_HAS_ULPI 2014-05-06 14:45:10 +02:00
Sebastian Huber
7d1436e4b3 posix: Fix POSIX keys initialization
Always initialize the freechain.  This prevents a NULL pointer access in
case no initial key value pairs are defined.
2014-05-06 13:46:20 +02:00
Sebastian Huber
4d906bdac2 score: Use atomic operations for SMP messages 2014-05-05 08:32:58 +02:00
Sebastian Huber
145becf075 score: Add SMP test message handler
This handler can be used to test the inter-processor interrupt
implementation.
2014-05-05 08:26:27 +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
Sebastian Huber
d20b029af9 doc: Add SMP glossary 2014-05-05 08:26:27 +02:00
Sebastian Huber
bee71f8e97 score: Fix TLS size usage 2014-05-05 08:26:27 +02:00
Chris Johns
1461b648b7 testsuite: Add a per BSP test check for tests not to build.
Provide a file per BSP to list tests that do not build for a BSP. This change
removes the BSP_SMALL_MEMORY hack from the code. That hack was a
mistake.

Provide configuration files for each BSP with tests that cannot build.
2014-05-05 10:24:41 +10:00
Ralf Kirchner
b0e83e1207 libchip: Add asserts to dwmac driver 2014-04-30 14:53:17 +02:00
Ralf Kirchner
64bc102fbf libchip: Correct netstats message for dwmac driver 2014-04-30 14:53:17 +02:00
Ralf Kirchner
bc9a71ba6a bsp/altera-cyclone-v: Move mbufs and network clusters to uncached RAM 2014-04-30 14:53:14 +02:00
Ralf Kirchner
ff13e0bd97 bsp/altera-cyclone-v: Increase size of nocache region and nocache heap
Increase size of nocache heap in order to be able to move mbufs and clusters of the network driver to uncached RAM
2014-04-30 14:44:47 +02:00