Commit Graph

4049 Commits

Author SHA1 Message Date
Sebastian Huber
030ce684c4 tests: Fix canonical-target-name.m4
Update #3109.
2018-01-02 11:13:30 +01:00
Joel Sherrill
1307e759e3 tm08: Do not use RTEMS_INTERRUPT_MASK for no reschedule case
Updates #3000.
2017-12-08 12:16:14 -06:00
Joel Sherrill
21e96d6648 sp08: Disable RTEMS_INTERRUPT_MASK testing when SMP enabled
Updates #3000.
2017-12-08 12:16:14 -06:00
Christian Mauderer
2fe368787e dosfs: Allow creating a file with similar name.
If there is already a file with a long file name it isn't possible to
create a second file which has a name that ends on the first files name
(for example ets.beam and sets.beam). This patch fixes that.

Update #3258.
2017-12-07 07:30:16 +01:00
Joel Sherrill
e9e0f1d464 smpunsupported01: Add missing error check for rtems_task_mode
Update test documentation to include more cases.

Updates #3000.
2017-12-06 12:48:46 -06:00
Sebastian Huber
9e339a8e7e sptests/sp51: Delete semaphore after use
This ensures that the configured semaphore maximum is not exceeded.
2017-12-06 19:18:55 +01:00
Sebastian Huber
bc5b56ad41 libio: Use API mutex 2017-12-06 07:13:04 +01:00
Christian Mauderer
ca835e5683 dosfs: Fix files with same name as volume name.
Take care that a file in the root directory with the same name as the
volume name can be found.

Update #3257.
2017-12-05 08:00:34 +01:00
Sebastian Huber
fd5471b6b7 ada: Check C and POSIX types
Update #3256.
2017-12-04 14:15:18 +01:00
Sebastian Huber
6c2b8a4b35 score: Use self-contained API mutex
Use a self-contained recursive mutex for API_Mutex_Control.  The API
mutexes are protected against asynchronous thread cancellation.

Add dedicated mutexes for libatomic and TOD.

Close #2629.
Close #2630.
2017-12-04 10:53:39 +01:00
Sebastian Huber
3d7d2a37e6 ada/sp09: Fix timer server test case
A priority of zero is valid for the timer server.
2017-12-04 10:53:38 +01:00
Sebastian Huber
535d0183d8 ada/sp09: Fix region test cases 2017-12-04 10:53:38 +01:00
Sebastian Huber
6e05265f22 ada: Fix work_space_size() test support 2017-12-04 10:53:37 +01:00
Sebastian Huber
215fa23177 ada/tm04: Account for task delete behaviour change 2017-12-04 09:39:35 +01:00
Sebastian Huber
76bd25e908 ada/sp19: Add missing FP attribute 2017-12-02 20:33:15 +01:00
Sebastian Huber
dda8142f27 ada/sp07: Fix uninitialized variable
Bug was introduced by d5154d0f6a.

Updates #2493.
2017-12-01 15:22:52 +01:00
Sebastian Huber
5e05fa0f7b ada: Fix user extension support 2017-12-01 15:21:34 +01:00
Sebastian Huber
c589775aea ada: Use CONFIGURE_DISABLE_SMP_CONFIGURATION
Most Ada tests fail otherwise.

Update #3020.
2017-12-01 13:58:22 +01:00
Sebastian Huber
2178978ad4 ada/tm20: Account for optional heap protection
Reduce size of the big allocation block to account for the optional heap
protection (RTEMS_DEBUG).
2017-12-01 13:19:48 +01:00
Sebastian Huber
a01e169fd3 ada/spname01: Fix several issues 2017-12-01 13:19:48 +01:00
Sebastian Huber
f6c9334d9b ada: Add standard test begin/end message 2017-12-01 09:52:41 +01:00
Sebastian Huber
6899a8d79d ada: Delete superfluous CONFIGURE_SPTEST 2017-12-01 09:52:17 +01:00
Joel Sherrill
d6c5a97896 block06/init.c: Fix printf() format warning 2017-11-29 13:03:40 -06:00
Sebastian Huber
e58e29fdb9 Remove coverhd.h
This header file contained timing overhead values which are hard to
maintain.

Update #3254.
2017-11-24 15:27:01 +01:00
Sebastian Huber
57f96b999d libtests/malloctest: Fix 64-bit targets
Update #3082.
2017-11-24 15:27:01 +01:00
Sebastian Huber
54e7b81b98 libtests/stringto01: Fix 64-bit targets
Update #3082.
2017-11-24 15:18:43 +01:00
Sebastian Huber
2e7c3f68d1 sptests/splinkersets01: Fix 64-bit targets
Update #3082.
2017-11-24 15:13:09 +01:00
Sebastian Huber
83ad1c5640 ada/sp04: Fix clock get
Update #2676.
2017-11-24 13:51:37 +01:00
Sebastian Huber
c59479faa8 tests: Use exponential backoff in locked_vprintf()
Without the exponential backoff a livelock was observed on a QorIQ P2020
with test SMP 5.
2017-11-22 09:40:24 +01:00
Sebastian Huber
15e19273b2 sapi: New implementation of rtems_panic()
The previous rtems_panic() implementation was quite heavy weight.  It
depended on _exit() which calls the global destructors.  It used
fprintf(stderr, ...) for output which depends on an initialized console
device and the complex fprintf().

Introduce a new fatal source RTEMS_FATAL_SOURCE_PANIC for rtems_panic()
and output via vprintk().

Update #3244.
2017-11-22 09:40:23 +01:00
Sebastian Huber
cd3e2204c7 INTERNAL_ERROR_POSIX_INIT_THREAD_ENTRY_IS_NULL
Delete superfluous INTERNAL_ERROR_POSIX_INIT_THREAD_ENTRY_IS_NULL.

Update #3243.
2017-11-22 09:40:23 +01:00
Sebastian Huber
a7dcef97e9 score: Simplify global construction
Update #3243.
2017-11-22 09:40:22 +01:00
Sebastian Huber
c597fb166e score: Optimize scheduler priority updates
Thread priority changes may append or prepend the thread to its priority
group on the scheduler ready queue.  Previously, a separate priority
value and a prepend-it flag in the scheduler node were used to propagate
a priority change to the scheduler.

Now, use an append-it bit in the priority control and reduce the plain
priority value to 63 bits.

This change leads to a significant code size reduction (about 25%) of
the SMP schedulers.  The negligible increase of the standard priority
scheduler is due to some additional shift operations
(SCHEDULER_PRIORITY_MAP() and SCHEDULER_PRIORITY_UNMAP()).

Before:

   text filename
    136 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleblock.o
    464 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimplechangepriority.o
     24 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimple.o
    108 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleschedule.o
    292 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleunblock.o
    264 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleyield.o

   text filename
    280 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityblock.o
    488 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerprioritychangepriority.o
    200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriority.o
    164 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityschedule.o
    328 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityunblock.o
    200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityyield.o

   text filename
  24112 arm-rtems5/c/imx7/cpukit/score/src/libscore_a-scheduleredfsmp.o

   text filename
  37204 sparc-rtems5/c/gr740/cpukit/score/src/libscore_a-scheduleredfsmp.o

   text filename
  42236 powerpc-rtems5/c/qoriq_e6500_32/cpukit/score/src/libscore_a-scheduleredfsmp.o

After:

   text filename
    136 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleblock.o
    272 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimplechangepriority.o
     24 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimple.o
    108 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleschedule.o
    292 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleunblock.o
    264 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleyield.o

   text filename
    280 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityblock.o
    488 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerprioritychangepriority.o
    208 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriority.o
    164 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityschedule.o
    332 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityunblock.o
    200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityyield.o

   text filename
  18860 arm-rtems5/c/imx7/cpukit/score/src/libscore_a-scheduleredfsmp.o

   text filename
  28520 sparc-rtems5/c/gr740/cpukit/score/src/libscore_a-scheduleredfsmp.o

   text filename
  32664 powerpc-rtems5/c/qoriq_e6500_32/cpukit/score/src/libscore_a-scheduleredfsmp.o
2017-11-20 08:36:49 +01:00
Christian Mauderer
1358d4c824 getentropy: Add test.
Update #3239.
2017-11-17 07:26:55 +01:00
Christian Mauderer
ddc339c51f cpukit: Add _arc4random_getentropy_fail.
Add a default implementation of _arc4random_getentropy_fail with an
internal error.

Update #3239.
2017-11-17 07:26:41 +01:00
Sebastian Huber
727cf48289 sptests/spversion01: Simplify configuration
Update #3199.
2017-11-17 06:55:09 +01:00
Sebastian Huber
e24d64b77d psx05: Remove CONFIGURE_DISABLE_SMP_CONFIGURATION
Update #3020.
2017-11-16 15:26:24 +01:00
Sebastian Huber
ec771f2531 score: Fix priority ceiling updates
We must not clear the priority updates in _Thread_queue_Extract_locked()
since this function is used by the priority ceiling surrender operations
after the ceiling priority handover from the previous owner to the new
owner. This is especially important in SMP configurations.

Move the _Thread_queue_Context_clear_priority_updates() invocation to
the callers.

Close #3237.
2017-11-16 15:25:45 +01:00
Sebastian Huber
9c30c31e24 score: Fix _Thread_queue_Flush_critical()
The thread queue extract operations performed by the
_Thread_queue_Flush_critical() may result in a priority change of the
thread queue owner. Carry out the scheduler priority update operation.
This is especially important in SMP configurations.

Close #3236.
2017-11-16 14:38:07 +01:00
Sebastian Huber
79a998d862 rtems: rtems_semaphore_flush() with prio inherit
The _Semaphore_Get_operations() must return the proper operations for
priority inheritance semaphores.

Add a test case for rtems_semaphore_flush() with priority inheritance.

Close #3235.
2017-11-16 14:08:20 +01:00
Sebastian Huber
62119d21da dl01, dl02, dl05: Fix unresolved printf symbol
The link time wrap of printf leads to unresolved symbols in the loadable
modules.  This resulted in infinite loops and test timeouts.  Use
rtems_printf() for output.

Update #3199.
2017-11-15 08:10:20 +01:00
Sebastian Huber
cb406870aa Change RTEMS_API from 5.0 to 5
This fixes the legacy Makefile based build system which expects
RTEMS_API to be identical to the tool chain version.

Update #3220.
2017-11-13 08:39:54 +01:00
Chris Johns
e6df806a3f tests: Use ld to map (wrap) printf, puts and putchar to tester functions.
- Remove the macro defines and the need for tmacro.h by remapping the
  symbols using ld's wrap option.
- Remove FLUSH_OUTPUT, it was empty.
- Move rtems_test_exit to libmisc/testsupport as a function.

Update #3199.
2017-11-11 16:14:59 +11:00
Chris Johns
bcd0c06c9b tests: Use rtems_test_begin and rtems_test_end.
Add a tests enum and move all test banner test to the library in libmisc.

Update #3199.
2017-11-11 16:14:59 +11:00
Chris Johns
6f3fb8a547 cpukit: Add a Version API.
Provide functions to get the version string, major, minor and revision
numbers and the version control identifer that is a unique tag for
the version control system.

Update #3199.
2017-11-10 13:34:06 +11:00
Joel Sherrill
748a12629a pppd/Makefile.am: Add support/include 2017-11-09 15:06:19 -06:00
Sebastian Huber
4a14751879 Upgrade to 5.0.0
Tool name will be "rtems5", e.g. arm-rtems5-gcc.

Next release will 5.1.0.  Branch version after release will be 5.1.1.
Next master will be 6.0.0.
2017-11-09 08:12:11 +01:00
Sebastian Huber
64ba1a9606 posix: Change created_with_explicit_scheduler
Remove POSIX_API_Control::created_with_explicit_scheduler.  Add
Thread_Control::was_created_with_inherited_scheduler.  This fixes also
pthread_getattr_np() for Classic tasks.

Update #2514.
2017-11-09 08:12:11 +01:00
Sebastian Huber
7147dc43b8 posix: Remove POSIX_API_Control::schedpolicy
Use the thread CPU budget algorithm to determine the scheduler policy.
This fixes also pthread_getschedparam() for Classic tasks.

Update #2514.
2017-11-09 08:12:11 +01:00
Sebastian Huber
8d0a0aa448 sptests/spconsole01: New test 2017-11-08 13:14:31 +01:00