| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Do not allocate the scheduler control structures from the workspace.
This is a preparation step for configuration of clustered/partitioned
schedulers on SMP.
|
|
|
|
|
|
| |
Rename rtems_smp_get_processor_count() in rtems_get_processor_count().
Make rtems_get_processor_count() a function in uni-processor
configurations to enable ABI compatibility with SMP configurations.
|
| |
|
|
|
|
|
| |
Scheduler operations must be free of a global scheduler context to
enable partitioned/clustered scheduling.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add a local context structure to the SMP lock API for acquire and
release pairs. This context can be used to store the ISR level and
profiling information. It may be later used to enable more
sophisticated lock algorithms, e.g. MCS locks.
There is only one lock that cannot be used with a local context. This
is the per-CPU lock since here we would have to transfer the local
context through a context switch which is very complicated.
|
|
|
|
|
| |
This function was only used in some tests and can be replaced with other
functions.
|
|
|
|
|
| |
Some _Context_Switch() invocations end up in _Thread_Handler(). Create
the right context for this function.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add and use _ISR_Disable_without_giant() and
_ISR_Enable_without_giant() if RTEMS_SMP is defined.
On single processor systems the ISR disable/enable was the big hammer
which ensured system-wide mutual exclusion. On SMP configurations this
no longer works since other processors do not care about disabled
interrupts on this processor and continue to execute freely.
On SMP in addition to ISR disable/enable an SMP lock must be used.
Currently we have only the Giant lock so we can check easily that ISR
disable/enable is used only in the right context.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use a per-CPU thread dispatch disable level. So instead of one global
thread dispatch disable level we have now one instance per processor.
This is a major performance improvement for SMP. On non-SMP
configurations this may simplifiy the interrupt entry/exit code.
The giant lock is still present, but it is now decoupled from the thread
dispatching in _Thread_Dispatch(), _Thread_Handler(),
_Thread_Restart_self() and the interrupt entry/exit. Access to the
giant lock is now available via _Giant_Acquire() and _Giant_Release().
The giant lock is still implicitly acquired via
_Thread_Dispatch_decrement_disable_level().
The giant lock is only acquired for high-level operations in interrupt
handlers (e.g. release of a semaphore, sending of an event).
As a side-effect this change fixes the lost thread dispatch necessary
indication bug in _Thread_Dispatch().
A per-CPU thread dispatch disable level greatly simplifies the SMP
support for the interrupt entry/exit code since no spin locks have to be
acquired in this area. It is only necessary to get the current
processor index and use this to calculate the address of the own per-CPU
control. This reduces the interrupt latency considerably.
All elements for the interrupt entry/exit code are now part of the
Per_CPU_Control structure: thread dispatch disable level, ISR nest level
and thread dispatch necessary. Nothing else is required (except CPU
port specific stuff like on SPARC).
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Move implementation specific parts of sem.h and sem.inl into new header
file semimpl.h. The sem.h contains now only the application visible
API.
|
|
|
|
| |
This avoids problems with debugging enabled.
|
|
|
|
|
|
|
|
|
| |
This commit deletes all RTEMS ChangeLog files. These files have been abandoned
since converting to git version control. The historical data may be recovered
by checking out any commit before this one. Most of the contents of these
ChangeLog files can also be found in the git log.
Two external ChangeLog files, ChangeLog.slac and ChangeLog.zlib, remain.
|
|
|
|
|
| |
Hi,
Adding test documentation...
|
|
|
|
| |
This reverts commit cf42a6ea9dbb6ebee498ae8db319d3e475bcd6be.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html
for details.
|
| |
|
| |
|
|
|
|
|
| |
* tm30/init.c: Make benchmark_barrier_create,
benchmark_barrier_ident, benchmark_barrier_delete static.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1589/build
* tm01/Makefile.am, tm02/Makefile.am, tm03/Makefile.am,
tm04/Makefile.am, tm05/Makefile.am, tm06/Makefile.am,
tm07/Makefile.am, tm08/Makefile.am, tm09/Makefile.am,
tm10/Makefile.am, tm11/Makefile.am, tm12/Makefile.am,
tm13/Makefile.am, tm14/Makefile.am, tm15/Makefile.am,
tm16/Makefile.am, tm17/Makefile.am, tm18/Makefile.am,
tm19/Makefile.am, tm20/Makefile.am, tm21/Makefile.am,
tm22/Makefile.am, tm23/Makefile.am, tm24/Makefile.am,
tm25/Makefile.am, tm26/Makefile.am, tm27/Makefile.am,
tm28/Makefile.am, tm29/Makefile.am, tm30/Makefile.am,
tmck/Makefile.am, tmoverhd/Makefile.am: Remove obsolete optional
manager capability.
|
|
|
|
| |
* tm26/fptest.h: Use PRIu32 to print uint32_t.
|
|
|
|
|
| |
* tm26/system.h, tm27/system.h: Ensure these tests use the correct
scheduler.
|
|
|
|
|
| |
* tm01/task1.c, tm02/task1.c, tm03/task1.c, tm15/task1.c: Remove
warnings.
|
|
|
|
|
|
|
| |
PR 1777/cpukit
* support/include/tmacros.h, tmtests/tm26/task1.c,
tmtests/tm27/task1.c: Consolidated access to
_Thread_Dispatch_disable_level.
|
|
|
|
|
|
|
|
| |
PR 1743/cpu
* tm26/task1.c, tm27/task1.c: Add Simple Priority Scheduler as
complement to existing Deterministic Priority Scheduler. Modify these
tests to verify the scheduler they are designed to work with is the
default scheduler.
|
|
|
|
| |
* tm26/task1.c: Update for API change.
|