| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
updates #2732
|
|
|
|
|
|
|
|
|
|
| |
The mutex objects use the owner field of the thread queues for the mutex
owner. Use this and add a deadlock detection to
_Thread_queue_Enqueue_critical() for thread queues with an owner.
Update #2412.
Update #2556.
Close #2765.
|
|
|
|
|
|
|
|
|
| |
The _Thread_Lock_acquire() function had a potentially infinite run-time
due to the lack of fairness at atomic operations level.
Update #2412.
Update #2556.
Update #2765.
|
|
|
|
|
|
|
|
|
| |
Move the priority change due to priority interitance to the thread queue
enqueue operation to simplify the locking on SMP configurations.
Update #2412.
Update #2556.
Update #2765.
|
|
|
|
|
|
|
|
|
|
| |
Raise the priority under thread queue lock protection and omit the
superfluous thread queue priority change, since the thread is extracted
anyway. The unblock operation will pick up the new priority.
Update #2412.
Update #2556.
Update #2765.
|
|
|
|
|
|
| |
Update #2412.
Update #2556.
Update #2765.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Fixes a bug with elapsed time calculations misusing absolute time
arguments in nanosleep_helper by passing the requested relative interval.
* Fixes a bug with truncation of absolute timeouts by passing the
full 64-bit value to Thread_queue_Enqueue.
* Share yield logic between nanosleep and clock_nanosleep.
updates #2732
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Sleeping with CLOCK_REALTIME should use the WATCHDOG_ABSOLUTE
clock discipline for the threadq so that the timeout interval
may change in case the clock source changes. Similarly,
CLOCK_MONOTONIC uses the WATCHDOG_RELATIVE threadq that will
only wakeup the thread after the requested count of ticks elapse.
updates #2732
|
|
|
|
| |
updates #2745
|
|
|
|
| |
updates #2745
|
| |
|
|
|
|
| |
updates #2732
|
|
|
|
|
|
|
|
|
| |
Clock disciplines may be WATCHDOG_RELATIVE, WATCHDOG_ABSOLUTE,
or WATCHDOG_NO_TIMEOUT. A discipline of WATCHDOG_RELATIVE with
a timeout of WATCHDOG_NO_TIMEOUT is equivalent to a discipline
of WATCHDOG_NO_TIMEOUT.
updates #2732
|
| |
|
|
|
|
| |
Update #2752.
|
|
|
|
|
| |
Do not use RTEMS_NO_RETURN hints for debug configurations to ease use of
stack traces in case of fatal errors.
|
| |
|
|
|
|
| |
Helps to detect invalid concurrent writes.
|
|
|
|
|
|
|
| |
This helps to detect
* double insert, append, prepend errors, and
* get from empty chain errors.
|
| |
|
|
|
|
|
|
|
|
| |
Memory content changes caused by relocation has to be
propagated to memory/cache level which is used/snooped
during instruction cache fill.
Closes #2438
|
| |
|
|
|
|
| |
closes #2756,
|
|
|
|
|
| |
This enables fatal extensions to continue program execution after some
fatal errors.
|
|
|
|
|
|
|
| |
This partially reverts 38ee75853f674977609bd078c69fb53420afdd08. Let
the calling context decide if interrupts must be disabled or not. The
goal is to enable fatal extensions to continue program execution after
some fatal errors.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Synchronize each cluster of sections of the same type separately
to support even cases where text and data are allocated from different
areas (for example due allocation from different MPU protection regions).
rtems_cache_instruction_sync_after_code_change is called even to data
sections. Propagation of data only changes should not require cache
maintenance operation on sane SMP mutithread capable systems if barrier
instruction is added but be on safe side even for case where self
modifying code uses data sections initial values etc.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and maximal alignment.
There is need for unambiguous named and defined cache function
which should be called when code is updated, loaded
or is self-modifying.
There should be function to obtain maximal cache line length
as well. This function can and should be used for allocations
which can be used for data and or code and ensures that
there are no partial cache lines overlaps on start and
end of allocated region.
|
|
|
|
|
| |
Some/many Cortex-A cores have data cache line length 64 bytes and maximum
value has to be used for system structures alignment.
|
|
|
|
|
|
|
|
|
| |
base access.
The main reason for inclusion of minimum hypervisor related defines
is that current ARM boards firmware and loaders (U-boot for example)
start loaded operating system kernel in HYP mode to allow it take
control of virtualization (Linux/KVM for example).
|
| |
|
|
|
|
|
|
| |
Provide the scheduler node to initialize or destroy to the corresponding
operations. This makes it possible to have more than one scheduler node
per thread.
|
|
|
|
|
|
|
|
| |
Restore the 32-bit priority field in MP_packet_Prefix.
Bug introduced by 254dc82daf8cbd6922376fcbb81c31e21cbf4d16.
Close #2750.
|
|
|
|
|
|
|
|
|
|
|
| |
Task priorities are only valid within a scheduler instance. The
rtems_task_set_scheduler() directive moves a task from one scheduler
instance to another using the current priority of the thread. However,
the current task priority of the source scheduler instance is undefined
in the target scheduler instance. Add a third parameter to specify the
priority.
Close #2749.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ARM and PowerPC interrupt epilogues call _Thread_Dispatch() with
interrupts disabled (counter example: SPARC).
On SMP configurations, since inter-processor interrupts set the thread
dispatch necessary indicator this prevents a thread dispatch
notification in post-switch handlers (which all run with interrupts
disabled).
On all configurations, this is a serious issue for the interrupt
latency.
Update #2751
|
| |
|
|
|
|
| |
Bug introduced by 9bfad8cd519f17cbb26a672868169fcd304d5bd5.
|
|
|
|
|
| |
Use _Scheduler_SMP_Allocate_processor_exact() to prevent unexpected
migrations.
|
|
|
|
|
| |
The use of atomic fences is brittle and may break due to changes in
different areas which is hard to manage.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
According to the C11 standard only atomic read-modify-write operations
guarantee that the last value written in modification order is read, see
"7.17.3 Order and consistency". Thus we must use a read-modify-write in
_SMP_Inter_processor_interrupt_handler() to make sure we read an
up-to-date message.
|
|
|
|
|
| |
Import the <sys/socket.h> from current FreeBSD. This allows to build
some current software (e.g. libressl).
|