Commit Graph

30201 Commits

Author SHA1 Message Date
Sebastian Huber
141e16d225 rtems: Conditionally define rtems_interrupt_frame
Update #2808.
2016-11-18 07:30:32 +01:00
Sebastian Huber
8ef8a32d00 bsps/mips: Use <libcpu/isr_entries.h>
Avoid duplicate mips_vector_isr_handlers() declarations.
2016-11-18 07:30:32 +01:00
Sebastian Huber
82d30a310c score: Move CPU_PER_CPU_CONTROL_SIZE
Move CPU_PER_CPU_CONTROL_SIZE and the optional CPU_Per_CPU_control to
<rtems/score/cpuimpl.h> to hide it from <rtems.h>.
2016-11-18 07:30:32 +01:00
Sebastian Huber
d78d5294cd score: Add and use _Thread_Dispatch_direct()
This function is useful for operations which synchronously block, e.g.
self restart, self deletion, yield, sleep.  It helps to detect if these
operations are called in the wrong context.  Since the thread dispatch
necessary indicator is not used, this is more robust in some SMP
situations.

Update #2751.
2016-11-18 07:30:31 +01:00
Sebastian Huber
acc6d9bf37 score: Remove obsolete defines
The thread dispatch inline option is no longer used.
2016-11-18 07:30:31 +01:00
Sebastian Huber
0e658d456c posix: Simplify cleanup push/pop
The POSIX cleanup list must be proteced from asynchronous thread
deletion.  Here local interrupt disable is sufficient.
2016-11-18 07:30:31 +01:00
Sebastian Huber
1897fa6d82 sptests/sp37: Better cope with internal padding 2016-11-18 07:30:31 +01:00
Sebastian Huber
04bd261726 arm: Use TPIDRPRW for current per-CPU control
Use the previously unused TPIDRPRW register to get the per-CPU control
of the current processor.  This avoids instructions in
GET_SELF_CPU_CONTROL which are not available in Thumb mode.
2016-11-18 07:30:31 +01:00
Chris Johns
3a30c6fa5c Fix untar mkdir when the directory exists. 2016-11-18 09:10:20 +11:00
Christian Mauderer
bb5d97f3eb bsp/atsamv: Make size of nocache-memory configurable. 2016-11-17 15:18:03 +01:00
Jiri Gaisler
316da9356a rtl-mdreloc-sparc.c: Do not print unaligned pointer and cause unaligned access.
updates #2802.
2016-11-14 08:21:12 -06:00
Sebastian Huber
38a1449fd4 powerpc: Add _CPU_Get_current_per_CPU_control()
Add _CPU_Get_current_per_CPU_control() on SMP configurations.  Use SPRG0
for the current per-CPU control.  This reduces the code size by three
instructions and is slightly faster.

Update #2805.
2016-11-10 09:58:37 +01:00
Sebastian Huber
58bced64b9 score: Move _CPU_Get_current_per_CPU_control()
Move _CPU_Get_current_per_CPU_control() from <rtems/score/cpu.h> to
<rtems/score/cpuimpl.h>.
2016-11-10 09:22:18 +01:00
Sebastian Huber
05ca53ddf6 rtems: Add scheduler processor add/remove
Update #2797.
2016-11-10 09:22:09 +01:00
Sebastian Huber
1f5bee3d85 score: Add and use Thread_Control::is_idle
Update #2797.
2016-11-09 15:27:30 +01:00
Sebastian Huber
e6107854b2 score: Rename _Scheduler_Assignments
Rename _Scheduler_Assignments into _Scheduler_Initial_assignments to
make it clear that they may not reflect the run-time scheduler
assignment.

Update #2797.
2016-11-09 15:27:29 +01:00
Sebastian Huber
68ef65bd5e score: Clarify _Scheduler_SMP_Start_idle() 2016-11-09 15:27:29 +01:00
Sebastian Huber
1c46b80329 score: Add scheduler to per-CPU information
This makes it possible to adjust the scheduler of a processor at
run-time.

Update #2797.
2016-11-09 15:27:29 +01:00
Sebastian Huber
f20dfa8fcd score: Avoid _Scheduler_Get_by_CPU_index( 0 )
Avoid use of processor index 0 which may have no scheduler assigned.
2016-11-09 15:27:29 +01:00
Sebastian Huber
2612a0bf5b score: Simplify _Scheduler_Get_by_id()
Avoid dead code in non-SMP configurations.  Return scheduler identifier
independent of the current processor count of the scheduler via
rtems_scheduler_ident(), since this value may change during run-time.
Check the processor count in _Scheduler_Set() under scheduler lock
protection.

Update #2797.
2016-11-09 15:27:29 +01:00
Sebastian Huber
16b14cfdf8 score: Fix _MRSP_Initialize()
The ceiling priorities must be initialized by scheduler index.  Do not
confuse it with a processor index.
2016-11-09 15:27:28 +01:00
Sebastian Huber
947814cae7 mpci: Use the first scheduler for MPCI
Avoid use of processor index 0 which may have no scheduler assigned.
2016-11-09 15:27:28 +01:00
Sebastian Huber
2f5ac5b507 rtems: Fix rtems_task_create() scheduler selection
Use the home scheduler of the executing thread for the created thread.
This is in line with pthread_create().  Using the current processor may
pick up an unexpected scheduler in case of a temporary migration, e.g.
due to locking protocols.
2016-11-09 15:27:28 +01:00
Sebastian Huber
eb98dd49bc score: Inline some SMP lock operations by default
The SMP ticket lock release turned out to be suitable for inlining, e.g.
a hand full of instructions, no branches.

The changes in the screen files do not reflect the changes due to this
commit.  However, they are now up to date.  Obtained on a T4240 running
at 1.5GHz using GCC 7.0.0 20161108..
2016-11-09 15:19:59 +01:00
Sebastian Huber
6de41c5fe9 Provide kernel space header files
These kernel space header files must be provided for Newlib
172e2050d95b41861db858dd9bc43a3fb4a28987.
2016-11-08 10:15:28 +01:00
Sebastian Huber
6cb234f079 bsp/qoriq: Remove duplicate qoriq_gpio definition
Close #2800.
2016-11-07 09:31:35 +01:00
Sebastian Huber
7790d95f0a sparc: Provide _CPU_Get_thread_executing() 2016-11-07 07:39:42 +01:00
Sebastian Huber
df48ed2cba score: Add optional _CPU_Get_thread_executing() 2016-11-07 07:39:42 +01:00
Sebastian Huber
edbd43c613 score: Prevent assignment to _Thread_Executing 2016-11-07 07:39:41 +01:00
Sebastian Huber
df63fbd1ac score: Add <rtems/score/cpuimpl.h>
The aim of this file is to encapsulate CPU port implementation details.
This helps to hide implementation details from <rtems.h> which
indirectly includes <rtems/score/cpu.h>.
2016-11-07 07:39:41 +01:00
Sebastian Huber
ee42943cd0 score: Optimize self-contained mutexes 2016-11-04 10:54:53 +01:00
Sebastian Huber
e7ab43d46f score: Use non-inline thread queue lock ops
This reduces the code size and helps to reduce the amount of testing.
Hot paths can use the _Thread_queue_Queue_acquire_critical() and
_Thread_queue_Queue_release_critical() functions which are still inline.
2016-11-04 10:54:52 +01:00
Sebastian Huber
347ef92898 score: Provide inline variants for ISR lock ops 2016-11-04 10:54:52 +01:00
Sebastian Huber
9cd53495d2 score: Default to non-inline SMP lock ops
Use non-inline SMP lock acquire and release operations by default.
Provide inline variants for the hot spots, e.g. mutex acquire/release.
2016-11-04 10:54:52 +01:00
Sebastian Huber
9597c4ed56 Size optimization for resource snapshots
Do not reference the objects information directly.
2016-11-04 10:54:52 +01:00
Sebastian Huber
8b18b8eb67 posix: Fix _POSIX_RWLock_Manager_initialization()
Use right object class.
2016-11-04 10:54:52 +01:00
Sebastian Huber
76ad5e0c44 score: Fix _Scheduler_Try_to_schedule_node()
In case the thread is scheduled and the sticky level is greater than
one, then we must use an idle thread for correctness of MrsP.
2016-11-04 08:34:11 +01:00
Tim Cussins
11ae6f94f8 virtex4, virtex5 bsp.h: Use BSP_INTERRUPT_STACK_SIZE not user space CONFIGURE_INTERRUPT_STACK_SIZE
closes #2801.
2016-11-03 12:49:12 -05:00
Joel Sherrill
8cf2f8b6f3 testsuites/testdata/dltests-broken-on-this-bsp.tcfg: Add new dl tests 03-05 2016-11-03 10:56:09 -05:00
Joel Sherrill
0df50a6c99 m68k/mrm332/make/custom/mrm332-testsuite.tcfg: Add dl05 2016-11-03 10:56:09 -05:00
Joel Sherrill
c27986335c m68k/mcf5225x/make/custom/mcf5225x-testsuite.tcfg: Add dl05 2016-11-03 10:56:09 -05:00
Joel Sherrill
fbf45431ae m68k/mcf52235/make/custom/mcf52235-testsuite.tcfg: Add dl05 2016-11-03 10:56:09 -05:00
Joel Sherrill
710302ae48 mcf5206elite/make/custom/mcf5206elite-testsuite.tcfg: Add dl05 2016-11-03 10:56:08 -05:00
Joel Sherrill
c7589640f9 moxiesim/bsp_specs: Add crtbegin/end to fix link issues 2016-11-03 10:56:08 -05:00
Sebastian Huber
afa92ab764 score: Add _Watchdog_Ticks_from_sbintime
Necessary to support a network stack update to FreeBSD 12.
2016-11-03 15:02:42 +01:00
Sebastian Huber
9599b4683d score: Delete unused _Scheduler_Is_id_valid() 2016-11-03 11:23:49 +01:00
Sebastian Huber
47d246436f score: Conditionally enable thread resource count
Maintain the thread resource count only in debug configurations.  This
is a performance optimization for non-debug configurations.
2016-11-03 11:23:30 +01:00
Sebastian Huber
9e7fa07169 score: Relax _Scheduler_Set() restrictions
No longer unconditionally prevent scheduler changes if the thread owns
resources.  Prevent a scheduler change only in case other threads wait
for the resource.
2016-11-03 11:19:34 +01:00
Sebastian Huber
0dd49d0015 score: Introduce thread resource count methods
This makes it easier to conditionally enable/disable the thread resource
count usage.
2016-11-03 10:55:48 +01:00
Sebastian Huber
6e31b56f95 rtems: Fix binary semaphore resource count
Binary semaphores (not simple binary semaphores) maintain the resource
count since 8797c76add.  Do this also for
initially locked binary semaphores.
2016-11-03 10:55:31 +01:00