Commit Graph

29490 Commits

Author SHA1 Message Date
Sebastian Huber
99fc1d1d1b score: Rework EDF scheduler
Use inline red-black tree insert.  Do not use shifting priorities since
this is not supported by the thread queues.  Due to the 32-bit
Priority_Control this currently limits the uptime to 49days with a 1ms
clock tick.

Update #2173.
2016-06-22 14:37:11 +02:00
Sebastian Huber
9a78f8a507 score: Modify release job scheduler operation
Pass the deadline in watchdog ticks to the scheduler.

Update #2173.
2016-06-22 14:37:10 +02:00
Sebastian Huber
7ec66e0890 score: Remove hidden deadline overrule for CBS
Do what the user commands.  Maybe we should add a rtems_cbs_period()
that calls rtems_rate_monotonic_period() with the right parameter.

Update #2173.
2016-06-22 14:37:10 +02:00
Sebastian Huber
77ff5599e0 score: Introduce map priority scheduler operation
Introduce map/unmap priority scheduler operations to map thread priority
values from/to the user domain to/from the scheduler domain.  Use the
map priority operation to validate the thread priority.  The EDF
schedulers use this new operation to distinguish between normal
priorities and priorities obtain through a job release.

Update #2173.
Update #2556.
2016-06-22 14:36:40 +02:00
Sebastian Huber
b8f76fa28e score: Delete unused _Scheduler_Priority_compare()
By convention, thread priorities must be integers in RTEMS.  Smaller
values represent more important threads.
2016-06-22 14:00:29 +02:00
Sebastian Huber
c82835a231 rtems: Rework RTEMS API to SuperCore priority
Use same structure as POSIX API for thread priority conversion to/from
SuperCore.
2016-06-22 14:00:28 +02:00
Sebastian Huber
1a4eac500c posix: Generalize _POSIX_Priority_To_core()
Move POSIX API priority validation into _POSIX_Priority_To_core().
2016-06-22 14:00:28 +02:00
Sebastian Huber
5a32c486f9 posix: Make POSIX API aware of scheduler instances 2016-06-22 14:00:28 +02:00
Sebastian Huber
eec08efc90 posix: Rework sporadic server scheduling policy
Instead of lowering the priority in case the initial budget is consumed
raise the priority for each new period.  Restore the normal priority
once the initial budget is consumed.  This makes it later easier to
combine the high priority phase with temporary priority boosts (e.g. via
priority ceiling and inheritance).

Use the thread lock to protect the POSIX thread attributes instead of
the thread state lock.  This makes it easier to change the thread
priority and keep the POSIX attributes consistent.

Fixes a false positive use of uninitialized variable warning.
2016-06-22 14:00:28 +02:00
Sebastian Huber
6bab009a61 posix: Delete POSIX_API_Control::schedparam
This field was redundant.
2016-06-22 14:00:28 +02:00
Sebastian Huber
4dc5450eeb posix: Delete POSIX_API_Control::schedpolicy
This field was redundant.
2016-06-22 14:00:28 +02:00
Sebastian Huber
4da078a8ad posix: Delete POSIX_API_Control::ss_high_priority
This field was unused.
2016-06-22 14:00:27 +02:00
Sebastian Huber
2df7fcff88 posix: _POSIX_Mutex_Default_attributes
Make _POSIX_Mutex_Default_attributes constant and independent of the
scheduler instance.  Use INT_MAX to indicate the default ceiling
priority.
2016-06-22 14:00:27 +02:00
Sebastian Huber
ce6e9ec22f posix: pthread_mutexattr_setprioceiling()
Accept all priority values in pthread_mutexattr_setprioceiling().  This
is in line with POSIX and FreeBSD.  The priority is validated in
pthread_mutex_init().  Validate the priority only for priority ceiling
mutexes.
2016-06-22 14:00:27 +02:00
Sebastian Huber
655ce0fb00 sparc: Optimize CPU counter support 2016-06-22 14:00:27 +02:00
Sebastian Huber
3d9fd2ce55 sptests/sp20: Use printer task
This avoids test failures due to slow output devices.
2016-06-22 07:45:49 +02:00
Sebastian Huber
22c3a54b8b Add printer task 2016-06-22 07:45:49 +02:00
Sebastian Huber
f153157410 Rename rtems_test_print() into rtems_test_printf() 2016-06-22 07:45:48 +02:00
Sebastian Huber
a33bfb6cb1 Avoid <rtems/print.h> in <rtems/rtems/ratemon.h>
This gets rid of the pull in of <stdarg.h> via <rtems.h> via
<rtems/rtems/ratemon.h> via <rtems/print.h>.
2016-06-22 07:45:12 +02:00
Sebastian Huber
506bfc8580 Move printer initialization to separate header
The RTEMS print user need to know nothing about a particular printer
implementation.  In particular get rid of the <stdio.h> include which
would be visible via <rtems.h>.
2016-06-22 07:29:26 +02:00
Sebastian Huber
ede1a4182d Make rtems/print.h independent of rtems/bspIo.h 2016-06-22 07:29:26 +02:00
Sebastian Huber
e8020d1914 Rename and move RTEMS_PRINTF_ATTRIBUTE()
Rename RTEMS_PRINTF_ATTRIBUTE() into RTEMS_PRINTFLIKE() (similar to
<sys/cdefs.h> __printflike()) and move it to <rtems/score/basedefs.h>.
2016-06-22 07:29:26 +02:00
Sebastian Huber
5c370a5df4 Make rtems_fprintf_plugin() static 2016-06-22 07:29:26 +02:00
Sebastian Huber
1ce8fc32c3 Make rtems_printf_plugin() static 2016-06-22 07:29:26 +02:00
Sebastian Huber
97fd93c23e Make printk_plugin() static 2016-06-22 07:29:25 +02:00
Pavel Pisa
91043bfa91 bsp/tms570: regenerate preinstall makefile by bootstrap -p. 2016-06-21 22:20:17 +02:00
Pavel Pisa
8df196f704 bsp/tms570: include complete peripheral initialization to SCI driver.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
2016-06-21 22:20:17 +02:00
Pavel Pisa
6626efe6f0 bsp/tms570: update pinmux to provide support for initialization lists and clear of alt outputs. 2016-06-21 22:20:17 +02:00
Pavel Pisa
bc884f6538 bsp/tms570: include package balls and PINMMR registers mapping for TMS570LS3135ZWT chip. 2016-06-21 22:20:16 +02:00
Sebastian Huber
a4ff2a2a4b bsp/leon3: Add up counter timecounter 2016-06-21 15:54:18 +02:00
Sebastian Huber
291945f137 bsp/leon3: Fix interrupt timestamping
Close #2684.
2016-06-21 15:54:18 +02:00
Sebastian Huber
9460333e99 sparc: Rework CPU counter support
Rework CPU counter support to enable use of the GR740 up-counter via
%asr22 and %asr23.
2016-06-21 15:54:18 +02:00
Sebastian Huber
4c927c7900 bsp/leon3: Fix LEON3_Cpu_Index initialization 2016-06-21 15:54:18 +02:00
Sebastian Huber
7222a65f0e sptests/spcpucounter01: Resurrect workaround
Resurrect workaround accidentially removed by
3e2a3c4948.
2016-06-21 15:54:18 +02:00
Pavel Pisa
fa239ff26c arm/raspberrypi: Ensure that buffers used for VC mail box communication are synchronized through cache. 2016-06-20 17:01:19 +02:00
Sebastian Huber
3e2a3c4948 sptests/spcpucounter01: Add some statistics 2016-06-20 13:56:34 +02:00
Sebastian Huber
40b80d86ef bsp/leon3: Use sysinit for bsp_debug_uart_init() 2016-06-20 08:18:39 +02:00
Sebastian Huber
a4fa007be9 bsp/leon3: Use sysinit for amba_initialize() 2016-06-20 08:11:16 +02:00
Sebastian Huber
bc47ec1c99 score: Refine system initialization order 2016-06-20 08:11:16 +02:00
Sebastian Huber
6a6a22586b sptests/spsysinit01: Move begin of test message 2016-06-20 08:11:16 +02:00
Sebastian Huber
16706b723f bsps: Fix printk() format warning 2016-06-17 08:07:14 +02:00
Sebastian Huber
305231bd3c bsps: Fix MPCI_Fatal() prototype
Close #2742.
2016-06-17 08:04:25 +02:00
Joel Sherrill
6131b84908 Add pthread_condattr_getclock() and pthread_condattr_setclock()
updates #2608.
2016-06-16 09:04:11 -05:00
Joel Sherrill
018cf74fda mptests/mp03/task1.c: Make method static to fix warning 2016-06-16 09:03:23 -05:00
Joel Sherrill
07ac1735c8 samples/base_mp/apptask.c: Fix warning and clean up 2016-06-16 09:03:23 -05:00
Joel Sherrill
381b120acc libchip/shmdr/send.c: Fix warning and clean up 2016-06-16 09:03:22 -05:00
Joel Sherrill
82cb100aba libchip/shmdr/poll.c: Fix warning and clean up 2016-06-16 09:03:22 -05:00
Joel Sherrill
4788a074a5 mvme147s/shmsupp/mpisr.c: Fix warnings and clean up 2016-06-16 09:03:22 -05:00
Joel Sherrill
d5ff139894 mvme147s/shmsupp/getcfg.c: Fix warning 2016-06-16 09:03:22 -05:00
Sebastian Huber
4b3251adda score: Fix thread delete race condition on SMP 2016-06-16 12:46:48 +02:00