summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/percpujobs.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-05-20Update company nameSebastian Huber1-1/+1
The embedded brains GmbH & Co. KG is the legal successor of embedded brains GmbH.
2021-08-18score: Simplify _Per_CPU_Wait_for_job()Sebastian Huber1-1/+0
The _SMP_Fatal() is a no-return function, so the "break" statement is superfluous.
2021-07-29score: Change _SMP_Send_message() parameter typeSebastian Huber1-1/+1
Use the processor control to specify the target processor since this is what the callers have available.
2021-07-29score: Assert job properties in _Per_CPU_Add_job()Sebastian Huber1-0/+2
2021-07-29score: Add _Per_CPU_Submit_job()Sebastian Huber1-1/+8
2021-07-28score: Move per-CPU jobs supportSebastian Huber1-100/+1
Add percpujobs.c to contain the per-CPU jobs implementation.
2021-07-28score: Simplify SMP processor state handlingSebastian Huber1-26/+10
The per-CPU states which control the SMP system initialization were added quite early during the SMP support development. Replace this initial implementation with a simplified one. There is no longer a global SMP lock required which serialized the state changes of all processors. The new implementation better integrates with the per-CPU jobs.
2021-07-28score: Remove processor event broadcast/receiveSebastian Huber1-3/+1
Remove _CPU_SMP_Processor_event_broadcast() and _CPU_SMP_Processor_event_receive(). These functions are hard to use since they are subject to the lost wake up problem.
2020-12-02score: Canonicalize Doxygen @file commentsSebastian Huber1-2/+13
Use common phrases for the file brief descriptions. Update #3706.
2019-05-20score: Add _Per_CPU_Wait_for_job()Sebastian Huber1-27/+34
2019-05-20score: Add _SMP_Synchronize()Sebastian Huber1-0/+10
2019-05-20score: Modify _Per_CPU_Perform_jobs()Sebastian Huber1-5/+7
Process only the jobs initially registered on the processing list. This makes it possible to add jobs for the current processor in a job handler. These jobs are processed with the next SMP_MESSAGE_PERFORM_JOBS message. The lock is only acquired and released once.
2019-05-20score: Add _Per_CPU_Add_job()Sebastian Huber1-16/+21
2019-05-20score: Move per-processor job data structuresSebastian Huber1-69/+18
This enables re-use for other purposes, e.g. replacement for SMP_MESSAGE_TEST.
2019-05-20score: Simplify _SMP_Multicast_action()Sebastian Huber1-20/+5
Move resposibility to disable thread dispatching to the caller of _SMP_Multicast_action(). Using an interrupt disable for this purpose is questionable.
2019-05-20score: Add _SMP_Othercast_action()Sebastian Huber1-0/+12
2019-05-20score: Add _SMP_Broadcast_action()Sebastian Huber1-4/+8
2019-05-20score: Use dedicated lock for per-CPU jobsSebastian Huber1-12/+12
2019-05-15score: Fix per-CPU job done handlingSebastian Huber1-4/+14
2019-04-12score: More robust _SMP_Multicast_action()Sebastian Huber1-2/+12
If the caller already disabled interrupts, then do not disable thread dispatching. Calling _SMP_Multicast_action() with interrupts disabled is a questionable use case.
2019-04-12score: Improve _SMP_Multicast_action()Sebastian Huber1-7/+20
Let it work during system initialization.
2019-04-12score: Rework SMP multicast actionSebastian Huber1-76/+173
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.
2019-04-12score: Use processor mask in _SMP_Multicast_actionSebastian Huber1-17/+7
Processor_mask is the internal data type to deal with processor sets.
2019-04-11score: Rename _SMP_Get_processor_count()Sebastian Huber1-1/+1
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.
2019-01-18score: Avoid internal API and use ISR lockSebastian Huber1-9/+9
2017-07-07score: Introduce _SMP_Get_online_processors()Sebastian Huber1-1/+1
Update #3059.
2017-07-06score: Use <sys/bitset.h> for Processor_maskSebastian Huber1-8/+8
Implement the Processor_mask via <sys/bitset.h>. Provide _Processor_mask_To_uint32_t() to enable its use in device specific routines, e.g. interrupt affinity register in an interrupt controller. Update #3059.
2017-04-05SMP: Simplify SMP multicast actionsSebastian Huber1-54/+48
2016-07-25score: Fix for RTEMS_DEBUGSebastian Huber1-0/+1
2016-05-20score: Rename _ISR_Disable_without_giant()Sebastian Huber1-2/+2
Rename _ISR_Disable_without_giant() into _ISR_Local_disable(). Rename _ISR_Enable_without_giant() into _ISR_Local_enable(). This is a preparation to remove the Giant lock. Update #2555.
2016-03-04score: Add _SMP_Before_multitasking_action()Sebastian Huber1-2/+2
The use case for this is the Cortex-A9 MPCore which has per-processor registers (only accessible by a particular processor) for the global timer used by the clock driver. This might be useful for other drivers as well. Update #2554.
2015-04-20score: Refactor SMP cache manager supportSebastian Huber1-0/+141