| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Update #3082.
Update #3085.
|
|
|
|
| |
This fixes some "variably modified" warnings and a clang compile error.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The SPARC ABI is a bit special with respect to the floating point context.
The complete floating point context is volatile. Thus, from an ABI point
of view nothing needs to be saved and restored during a context switch.
Instead the floating point context must be saved and restored during
interrupt processing. Historically, the deferred floating point switch was
used for SPARC and the complete floating point context is saved and
restored during a context switch to the new floating point unit owner.
This is a bit dangerous since post-switch actions (e.g. signal handlers)
and context switch extensions may silently corrupt the floating point
context.
The floating point unit is disabled for interrupt handlers. Thus, in case
an interrupt handler uses the floating point unit then this will result in a
trap (INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT).
In uniprocessor configurations, a lazy floating point context switch is
used. In case an active floating point thread is interrupted (PSR[EF] == 1)
and a thread dispatch is carried out, then this thread is registered as the
floating point owner. When a floating point owner is present during a
context switch, the floating point unit is disabled for the heir thread
(PSR[EF] == 0). The floating point disabled trap checks that the use of the
floating point unit is allowed and saves/restores the floating point context
on demand.
Update #3077.
|
|
|
|
|
|
| |
Add new fatal error INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT.
Update #3077.
|
|
|
|
|
|
|
| |
Rename SPARC_USE_SAFE_FP_SUPPORT in SPARC_USE_SYNCHRONOUS_FP_SWITCH.
Update comment.
Update #3077.
|
|
|
|
| |
Update #3077.
|
|
|
|
|
|
| |
Avoid void pointer arithmetic.
Updates #2859.
|
|
|
|
|
|
| |
Use the libio mutex lock instead of the mmap mappings lock.
Updates #2859.
|
|
|
|
|
|
| |
Operarations are already protected by mmap_mappings_lock.
Updates #2859.
|
|
|
|
|
|
|
|
|
|
| |
The loop that checks if the current address is already mapped uses
the same local variable for the chanin node as the newly allocated
chain node so the allocated chain node gets over written.
Added a new local variable for the loop that checks the address
Updates #2859.
|
|
|
|
| |
Update #3059.
|
|
|
|
|
|
| |
This avoids an unnecessary use of the floating point unit.
Update #3076.
|
|
|
|
| |
Update #3076.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds NOP instructions to prevent instruction sequences
that are sensitive to the LEON3FT B2BST errata. See GRLIB-TN-0009:
"LEON3FT Stale Cache Entry After Store with Data Tag Parity Error"
for more information.
The sequences are only modified if __FIX_LEON3FT_B2BST is defined.
The patch works in conjunction with the -mfix-ut700, -mfix-gr712rc,
and -mfix-ut699 GCC flags that prevents the sensitive sequences from
being generated.
Update #3057.
|
|
|
|
|
|
|
|
|
|
|
| |
Added a mmap file handler to struct _rtems_filesystem_file_handlers_r.
Updated each file handler object to support the default mmap handler.
Updated mmap() to call the mmap handler for MAP_SHARED.
Added a mmap file handler for shm
Added support for MAP_ANON in mmap().
Updates #2859
|
|
|
|
| |
Update #3059.
|
|
|
|
| |
Close #3071.
|
|
|
|
| |
Update #3071.
|
|
|
|
| |
Update #3071.
|
|
|
|
|
|
|
| |
This mechanism can be used to safely move the interrupt server from one
scheduler instance to another for example.
Update #3071.
|
|
|
|
|
|
|
| |
This allows load balancing of interrupt processing in SMP
configurations.
Update #3071.
|
|
|
|
| |
Update #3070.
|
|
|
|
| |
Update #3069.
|
|
|
|
| |
Update #3059.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The EDF SMP scheduler supports simple thread processor affinities
(see #3059) with a small run-time overhead. The current default SMP
scheduler lacks support for thread processor affinities at all. The EDF
SMP scheduler offers a good feature set for most applications. So, use
it by default. Run-time libraries like libgomp, MTAPI, work stealing
schedulers, language interpreters (e.g. Erlang virtual machine),
maintainence of per-processor data (e.g. Universal Memory Allocator
(UMA)), etc. use a one-to-one thread processor affinity for example.
Update #3063.
|
|
|
|
|
|
|
| |
Ensure that the thread processor affinity fits the new scheduler
instance.
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
|
|
|
| |
This allows scheduler implementations to easily access
scheduler-specific data.
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
|
|
|
|
| |
The set of online processors must be a subset of the thread processor
affinity for the schedulers without arbitrary processor affinity support
to avoid problems in case of processor addition and removal.
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
|
|
|
|
| |
Account for the thread processor affinity and make sure that it is
possible to allocate a processor to each thread dedicated to a scheduler
instance.
Update #3059.
|
|
|
|
|
|
|
| |
Replace the simple processor count with the processor set owned by the
scheduler instance.
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
|
|
|
|
| |
Implement the Processor_mask via <sys/bitset.h>. Provide
_Processor_mask_To_uint32_t() to enable its use in device specific
routines, e.g. interrupt affinity register in an interrupt controller.
Update #3059.
|
|
|
|
| |
Update #2909.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Right after a "msr basepri_max, %[basepri]" instruction an interrupt
service may still take place (observed at least on Cortex-M7). However,
pendable service calls that are activated during this interrupt service
may be delayed until interrupts are enable again. The
_ARMV7M_Pendable_service_call() did not check that a thread dispatch is
allowed. Move this test from _ARMV7M_Interrupt_service_leave() to
_ARMV7M_Pendable_service_call().
Update #3060.
|
|
|
|
| |
Update #3060.
|
|
|
|
| |
Update #3056.
|