summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* smptests: Add smppsxaffinity01.Jennifer Averett2014-03-076-0/+232
| | | | | This test exercises the ability to obtain and modify the affinity field of the POSIX thread attributes.
* smptests: Add smpaffinity01Jennifer Averett2014-03-076-0/+307
| | | | This test exercises the new Classic API task affinity methods.
* psxtests: Added test for pthread_getattr_np().Jennifer Averett2014-03-076-1/+261
|
* posix: Add pthread_getattr_np().Jennifer Averett2014-03-072-0/+58
| | | | | This is a useful POSIX thread API helper which is found in `GNU/Linux and *BSD.
* posix: Add dynamic pthread get and set affinity.Jennifer Averett2014-03-073-1/+139
| | | | | | | This patch adds the following methods: + pthread_get_affinity_np + pthread_set_affinity_np
* posix: Add pthread_attr_t methods to get/set affinity.Jennifer Averett2014-03-073-0/+108
| | | | | | | This patch adds the following methods: + pthread_attr_get_affinity_np + pthread_attr_set_affinity_np
* posix: Add support method to compare two pthread attribute structures.Jennifer Averett2014-03-072-0/+95
|
* posix: Add POSIX thread affinity attribute support.Jennifer Averett2014-03-074-16/+129
| | | | | With the addition of pthread affinity information in pthread_attr_t, the existing code for pthread_attr_t had to be adjusted.
* rtems: Add Classic API get and set affinity methods.Jennifer Averett2014-03-074-0/+177
| | | | | | | Add the following methods: + rtems_task_get_affinity + rtems_task_set_affinity
* sapi: Moved smp initialization and added cpuset initilization.Jennifer Averett2014-03-071-2/+5
| | | | | | | SMP must be initialized in order to know the current set of cores available. Without this, you cannot initialize the default cpu_set_t associated with Classic API tasks and POSIX threads.
* score: Add cpuset support to Score.Jennifer Averett2014-03-078-1/+361
| | | | | | This new Score Handler provides a structure to manage a cpu_set_t plus helper routines to validate the contents against the current system configuration.
* spcpuset01: Add check for sys/cpuset.h.Jennifer Averett2014-03-073-10/+29
| | | | | If <sys/cpuset.h> is not provided by the toolset, the test cannot be compiled.
* smptests: Delete config.h.inSebastian Huber2014-03-061-19/+0
|
* score: Fix per-CPU state documentationSebastian Huber2014-03-061-3/+3
|
* score: Delete _Thread_Dispatch_set_disable_level()Sebastian Huber2014-03-065-70/+5
| | | | | This function was only used in some tests and can be replaced with other functions.
* tmtests/tm26: Fix deadlock for SMP configurationsSebastian Huber2014-03-061-1/+2
| | | | | Some _Context_Switch() invocations end up in _Thread_Handler(). Create the right context for this function.
* rtems: Add RTEMS_INTERRUPT_REPLACESebastian Huber2014-03-062-33/+83
| | | | | | | | | | | | | | | | | | | | | A new option RTEMS_INTERRUPT_REPLACE is introduced that permits updating the first interrupt handler for the registered interrupt vector and matching argument. If no match is found, the install function fails with RTEMS_UNSATISFIED. The Interrupt Manager Extension offers interrupt handlers with an argument pointer. It is impossible to update two words (handler and argument) atomically on most architectures. In order to avoid an SMP lock in bsp_interrupt_handler_dispatch() which would degrade the interrupt response time an alternative must be provided that makes it possible to tear-down interrupt sources without an SMP lock. Add RTEMS_INTERRUPT_REPLACE option to Interrupt Manager Extension. This enables a clean tear-down of interrupt sources on SMP configurations. Instead of an interrupt handler removal a replacement handler can be installed to silence an interrupt source. This can be used in contexts that allow no sophisticated synchronization (e.g. in atexit() or fatal handlers).
* bsps: SMP support for generic interrupt supportSebastian Huber2014-03-062-18/+59
|
* score: Add _Atomic_Fence()Sebastian Huber2014-03-064-19/+84
|
* libnetworking: TypoSebastian Huber2014-03-062-2/+22
|
* score: Add and use _Giant_Drop()Sebastian Huber2014-03-069-0/+210
| | | | New test smptests/smpfatal03.
* score: SMP initialization and shutdown changesSebastian Huber2014-03-0618-119/+565
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename _SMP_Request_other_cores_to_perform_first_context_switch() into _SMP_Request_start_multitasking() since this requests now a multitasking start on all configured and available processors. The name corresponds _Thread_Start_multitasking() and _SMP_Start_multitasking_on_secondary_processor() actions issued in response to this request. Move in source file to right place. Rename PER_CPU_STATE_READY_TO_BEGIN_MULTITASKING into PER_CPU_STATE_READY_TO_START_MULTITASKING. Rename PER_CPU_STATE_BEGIN_MULTITASKING into PER_CPU_STATE_REQUEST_START_MULTITASKING. Rename _SMP_Request_other_cores_to_shutdown() into _SMP_Request_shutdown(). Add a per-CPU state lock to protect all changes. This was necessary to offer a controlled shutdown of the system (atomic read/writes alone are not sufficient for this kind of synchronization). Add documentation for Per_CPU_State. Delete debug output. New tests smptests/smpfatal01 and smptests/smpfatal02.
* bsp/leon3: Unmask IPI only on secondary processorDaniel Hellstrom2014-03-061-1/+1
|
* taskmode: Formatting correctionJoel Sherrill2014-03-051-5/+3
|
* tmtests/tmcontext01: New testSebastian Huber2014-02-287-0/+598
|
* bsp/leon3: Add L2 cache supportSebastian Huber2014-02-281-0/+88
|
* bsp/leon3: Add L2C registersSebastian Huber2014-02-281-0/+25
|
* bsp/leon3: Add new cache manager implementationSebastian Huber2014-02-282-1/+114
| | | | | | | | | | | The previous implementation used an instruction cache line size of 0, this is a bogus value. Use a instruction cache line size of 64 since the L2 cache may have a line size of 32 or 64. A greater value should cause no harm. Use a FLUSH operation for _CPU_cache_invalidate_instruction_range(). This is a preperation step to support the L2 cache.
* bsp/leon3: Add and use cache register functionsSebastian Huber2014-02-283-21/+46
|
* rtems: Add cache size functionsSebastian Huber2014-02-284-4/+81
| | | | | Add rtems_cache_get_data_cache_size() and rtems_cache_get_instruction_cache_size().
* rtems: Use size_t for cache line sizeSebastian Huber2014-02-285-8/+8
| | | | A cache line cannot have a negative size.
* rtems: Cache manager documentationSebastian Huber2014-02-281-66/+79
| | | | Move useful functions to the top of the file.
* sptests/spcache01: Detect write-through cacheSebastian Huber2014-02-282-3/+15
|
* bsp/leon3: Use ambapp_freq_get() for CPU counterSebastian Huber2014-02-283-40/+33
|
* bsps: Delete LEON3_FATAL_CPU_COUNTER_INITSebastian Huber2014-02-281-2/+1
|
* bsps: Fix empty interrupt handler entrySebastian Huber2014-02-281-4/+5
| | | | | The vector number of spurious interrupts was wrong after the interrupt handler removal on SMP configurations.
* sptests/spcache01: New testSebastian Huber2014-02-246-0/+426
|
* sparc: Fix CPU counter supportSebastian Huber2014-02-249-38/+180
| | | | | | | | The SPARC processors supported by RTEMS have no built-in CPU counter support. We have to use some hardware counter module for this purpose. The BSP must provide a 32-bit register which contains the current CPU counter value and a function for the difference calculation. It can use for example the GPTIMER instance used for the clock driver.
* score: Fix thread TLS area initializationSebastian Huber2014-02-249-32/+140
| | | | | Do not use _TLS_Size here since this will lead GCC to assume that this symbol is not 0 and the later > 0 test will be optimized away.
* sptests/spcpucounter01: Adjust testSebastian Huber2014-02-242-9/+29
| | | | | Adjust test to work with clock driver based CPU counters. They have a period equal to the clock tick interval.
* bsps: Add empty cache managerSebastian Huber2014-02-2421-1/+98
| | | | | This is necessary to add tests that use the cache manager. For example to get better estimates of worst-case timings.
* bsps/powerpc: Use System V small-data areaSebastian Huber2014-02-248-8/+8
| | | | | | The 32-bit ABIs for thread-local storage (TLS) and EABI read-only small-data area have a conflicting register (r2) usage. Use the System V small-data instead (here r2 is system reserved).
* bsp/leon3: Add bsp_reset() for SMP configurationSebastian Huber2014-02-213-0/+65
|
* bsp/leon3: Add and use leon3_get_cpu_count()Sebastian Huber2014-02-212-2/+10
|
* bsp/leon3: Add leon3_power_down_loop()Sebastian Huber2014-02-212-0/+4
|
* bsps/sparc: Delete unused fileSebastian Huber2014-02-211-24/+0
|
* bsp/score603e: Remove unused BSP_fatal_return()Sebastian Huber2014-02-211-5/+0
|
* score: _CPU_SMP_Get_current_processor()Sebastian Huber2014-02-219-31/+73
| | | | | | | Remove RTEMS_COMPILER_PURE_ATTRIBUTE from _SMP_Get_current_processor() and all _CPU_SMP_Get_current_processor(). Make inline ASM statements volatile again. Test smptests/smpmigration01 showed that GCC optimizes too much otherwise.
* score: _Thread_Start_multitasking()Sebastian Huber2014-02-211-1/+5
| | | | | Fix serious race-condition. Read the heir after the per-CPU lock acquire.
* score: Rename _Internal_error_Occurred()Sebastian Huber2014-02-2129-39/+39
| | | | Rename _Internal_error_Occurred() into _Terminate().