summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/score
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-10-19 14:28:48 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-11-23 11:00:28 +0100
commit9d3e821279cb4443e184088ef4b708cc36b55101 (patch)
tree9f84dafabda8bfdd374bc98fa1bc6982e7b5b8a1 /cpukit/include/rtems/score
parentscore: Use extract from scheduled callbacks (diff)
downloadrtems-9d3e821279cb4443e184088ef4b708cc36b55101.tar.bz2
score: Rework affine ready queue handling
Rework the handling of the affine ready queue for the EDF SMP scheduler. Do the queue handling in the node insert, move, and extract operations. Remove the queue handling from _Scheduler_EDF_SMP_Allocate_processor(). Update #4531.
Diffstat (limited to 'cpukit/include/rtems/score')
-rw-r--r--cpukit/include/rtems/score/scheduleredfsmp.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/cpukit/include/rtems/score/scheduleredfsmp.h b/cpukit/include/rtems/score/scheduleredfsmp.h
index 85e438e81d..ec975ed12f 100644
--- a/cpukit/include/rtems/score/scheduleredfsmp.h
+++ b/cpukit/include/rtems/score/scheduleredfsmp.h
@@ -79,9 +79,18 @@ typedef struct {
RBTree_Control Queue;
/**
- * @brief The scheduled thread of the corresponding processor.
+ * @brief If this member is not NULL, then it references the scheduled thread
+ * affine only to the corresponding processor, otherwise the processor is
+ * allocated to a thread which may execute on any of the processors owned
+ * by the scheduler.
*/
- Scheduler_EDF_SMP_Node *scheduled;
+ Scheduler_EDF_SMP_Node *affine_scheduled;
+
+ /**
+ * @brief This member references the thread allocated to the corresponding
+ * processor.
+ */
+ Scheduler_EDF_SMP_Node *allocated;
} Scheduler_EDF_SMP_Ready_queue;
typedef struct {