From 9d3e821279cb4443e184088ef4b708cc36b55101 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 19 Oct 2021 14:28:48 +0200 Subject: 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. --- cpukit/include/rtems/score/scheduleredfsmp.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'cpukit/include/rtems') 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 { -- cgit v1.2.3