| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Move resposibility to disable thread dispatching to the caller of
_SMP_Multicast_action(). Using an interrupt disable for this purpose is
questionable.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Load symbols before allocation.
- Parse reloc records and place any reloc recs in a cache to use
while the allocator is locked.
- Relocate symbols after section allocation.
- Split section loading into allocation/locating and loading.
- Update all arch back-ends with a new reloc interface to control
tramp handling.
- Add `-a` and `-t` to the object list shell command.
Closes #3741
|
|
|
|
|
|
| |
If the caller already disabled interrupts, then do not disable thread
dispatching. Calling _SMP_Multicast_action() with interrupts disabled
is a questionable use case.
|
|
|
|
| |
Let it work during system initialization.
|
|
|
|
|
| |
Use a FIFO list of jobs per processor to carry out the SMP multicast
action. Use a done indicator per job to reduce the bus traffic a bit.
|
|
|
|
| |
Processor_mask is the internal data type to deal with processor sets.
|
|
|
|
|
| |
Add _ISR_lock_Set_name() to optimize the initialization of
zero-initialized locks.
|
|
|
|
|
|
|
| |
Rename _SMP_Get_processor_count() in _SMP_Get_processor_maximum() to be
in line with the API level rtems_scheduler_get_processor_maximum().
Update #3732.
|
|
|
|
| |
Update #3734.
|
|
|
|
|
|
|
|
|
|
|
| |
Add rtems_scheduler_get_processor_maximum() as a replacement for
rtems_get_processor_count(). The rtems_get_processor_count() is a bit
orphaned. Adopt it by the Scheduler Manager. The count is also
misleading, since the processor set may have gaps and the actual count
of online processors may be less than the value returned by
rtems_get_processor_count().
Update #3732.
|
|
|
|
|
|
|
|
|
|
|
| |
Add rtems_scheduler_get_processor() as a replacement for
rtems_get_current_processor(). The rtems_get_current_processor() is a
bit orphaned. Adopt it by the Scheduler Manager. This is in line with
the glibc sched_getcpu() function.
Deprecate rtems_get_current_processor().
Update #3731.
|
|
|
|
|
|
|
|
|
|
|
| |
This is an example test using the RTEMS Test Framework. It tests also
the framework itself.
Add T_FILE_NAME command line define to get rid of the full file path.
This is important to reduce the read-only data of test files and make
them build system independent.
Update #3199.
|
|
|
|
|
|
|
|
| |
One reason to move the test support into a dedicated library are the
standard output __wrap_*() functions. They may conflict with
application level wrappers.
Update #3199.
|
| |
|
|
|
|
|
|
|
| |
- The archive command lists archives, symbols and any duplicate
symbols.
- Change the RTL shell commands to the rtems_printer to allow
the output to be captured.
|
| |
|
| |
|
|
|
|
| |
Update #3665.
|
| |
|
|
|
|
|
| |
- Add a small memory test config file.
- Update the small memory PowerPC BSPs to use the new test config.
|
| |
|
|
|
|
| |
Remove the priority node only in case it is active.
|
|
|
|
| |
Update #3334.
|
|
|
|
|
|
|
|
| |
Recursive usage of the same pthread_once_t results now in a deadlock.
Previously, an error of EINVAL was returned. This usage scenario is
invalid according to the POSIX pthread_once() specification.
Close #3334.
|
|
|
|
|
|
| |
This file is unused and makes trouble on Windows.
Updates #3638.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add support for architecure sections that can be handled by the
architecture back end.
- Add trampoline/fixup support for PowerPC. This means the PowerPC
now supports large memory loading of applications.
- Add a bit allocator to manage small block based regions of memory.
- Add small data (sdata/sbss) support for the PowerPC. The support
makes the linker allocated small data region of memory a global
resource available to libdl loaded object files.
Updates #3687
Updates #3685
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add trampolines to support relocs that are out of range on
support architectures.
- Support not loading separate text/data sections in an object
file if the symbol provided in the section is a duplicate.
A base image may have pulled in part of an object and another
part needs to be dynamically loaded.
- Refactor the unresolved handling to scale to hundreds of
unresolved symbols when loading large number of files.
Updates #3685
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Trampolines or fixups for veneers provide long jump support
for instruciton sets that implement short relative address
branches. The linker provides trampolines when creating a
static image. This patch adds trampoline support to libdl
and the ARM architecture.
- The dl09 test requires enough memory so modules are outside
the relative branch instruction ranges for the architecture.
Updates #3685
|
|
|
|
|
|
|
| |
- Fix the handling of pending objects.
- Add a constructor flags in objects to track then being called.
Closes #2921
|
|
|
|
|
|
|
| |
- Create 2 archives.
- Load 1 object file which loads 6 object files from the libraries.
Updates #3686
|
|
|
|
| |
Updates #3686
|
|
|
|
| |
Updates #3686
|
|
|
|
| |
We must add/remove the priority queue to the FIFO of priority queues.
|
| |
|
| |
|
|
|
|
| |
Update #3665.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add low level event recording infrastructure for system and user
defined events. The infrastructure is able to record high frequency
events such as
* SMP lock acquire/release,
* interrupt entry/exit,
* thread switches,
* UMA zone allocate/free, and
* Ethernet packet input/output, etc.
It allows post-mortem analysis in fatal error handlers, e.g. the last
events are in the record buffer, the newest event overwrites the oldest
event. It is possible to detect record buffer overflows for consumers
that expect a continuous stream of events, e.g. to display the system
state in real-time.
The implementation supports high-end SMP machines (more than 1GHz
processor frequency, more than four processors).
Add a new API instead. The implementation uses per-processor data
structures and no atomic read-modify-write operations. It is uses
per-processor ring buffers to record the events.
The CPU counter is used to get the time of events. It is combined with
periodic uptime events to synchronize it with CLOCK_REALTIME.
The existing capture engine tries to solve this problem also, but its
performance is not good enough for high-end production systems. The
main issues are the variable-size buffers and the use of SMP locks for
synchronization. To fix this, the API would change significantly.
Update #3665.
|
|
|
|
| |
This avoids link-time failures on some low memory BSPs.
|
|
|
|
| |
Update #3384.
|
| |
|
|
|
|
| |
Ensure that interrupts are disabled while acquiring an ISR lock.
|
| |
|
| |
|
| |
|
| |
|