From 466c42c3c1dcc644b834447f4a1f513ef1d25152 Mon Sep 17 00:00:00 2001 From: Darian Leung Date: Thu, 14 Oct 2021 01:31:05 +0800 Subject: [PATCH] freertos: Fix SMP round robin scheduling The previous SMP freertos round robin would skip over tasks when time slicing. This commit implements a Best Effort Round Robin where selected tasks are put to the back of the list, thus makes the time slicing more fair. - Documentation has been updated accordingly. - Tidy up vTaskSwitchContext() to match v10.4.3 more - Increased esp_ipc task stack size to avoid overflow Closes https://github.com/espressif/esp-idf/issues/7256 --- components/esp_ipc/Kconfig | 2 +- components/freertos/tasks.c | 252 ++++++++++-------- .../test_freertos_scheduling_round_robin.c | 169 ++++++++++++ .../freertos-ready-task-list-smp-pxIndex.png | Bin 29564 -> 0 bytes docs/_static/freertos-ready-task-list-smp.png | Bin 61732 -> 0 bytes docs/_static/freertos-ready-task-list.png | Bin 49709 -> 0 bytes docs/en/api-guides/freertos-smp.rst | 146 +++++----- 7 files changed, 376 insertions(+), 193 deletions(-) create mode 100644 components/freertos/test/test_freertos_scheduling_round_robin.c delete mode 100644 docs/_static/freertos-ready-task-list-smp-pxIndex.png delete mode 100644 docs/_static/freertos-ready-task-list-smp.png delete mode 100644 docs/_static/freertos-ready-task-list.png diff --git a/components/esp_ipc/Kconfig b/components/esp_ipc/Kconfig index b97f978007..44ed96996f 100644 --- a/components/esp_ipc/Kconfig +++ b/components/esp_ipc/Kconfig @@ -5,7 +5,7 @@ menu "IPC (Inter-Processor Call)" range 512 65536 if !APPTRACE_ENABLE range 2048 65536 if APPTRACE_ENABLE default 2048 if APPTRACE_ENABLE - default 1024 + default 1536 help Configure the IPC tasks stack size. One IPC task runs on each core (in dual core mode), and allows for cross-core function calls. diff --git a/components/freertos/tasks.c b/components/freertos/tasks.c index 572556f2cf..9d144cb3a7 100644 --- a/components/freertos/tasks.c +++ b/components/freertos/tasks.c @@ -143,6 +143,9 @@ /*-----------------------------------------------------------*/ +#ifdef ESP_PLATFORM + #define taskSELECT_HIGHEST_PRIORITY_TASK() taskSelectHighestPriorityTaskSMP() +#else //ESP_PLATFORM #define taskSELECT_HIGHEST_PRIORITY_TASK() \ { \ UBaseType_t uxTopPriority = uxTopReadyPriority; \ @@ -159,6 +162,7 @@ listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB[xPortGetCoreID()], &( pxReadyTasksLists[ uxTopPriority ] ) ); \ uxTopReadyPriority = uxTopPriority; \ } /* taskSELECT_HIGHEST_PRIORITY_TASK */ +#endif //ESP_PLATFORM /*-----------------------------------------------------------*/ @@ -3358,12 +3362,102 @@ BaseType_t xTaskIncrementTick( void ) #endif /* configUSE_APPLICATION_TASK_TAG */ /*-----------------------------------------------------------*/ +#ifdef ESP_PLATFORM +#if ( configUSE_PORT_OPTIMISED_TASK_SELECTION == 0 ) +static void taskSelectHighestPriorityTaskSMP( void ) +{ + /* This function is called from a critical section. So some optimizations are made */ + BaseType_t uxCurPriority; + BaseType_t xTaskScheduled = pdFALSE; + BaseType_t xNewTopPrioritySet = pdFALSE; + BaseType_t xCoreID = xPortGetCoreID(); /* Optimization: Read once */ + + /* Search for tasks, starting form the highest ready priority. If nothing is + * found, we eventually default to the IDLE tasks at priority 0 */ + for ( uxCurPriority = uxTopReadyPriority; uxCurPriority >= 0 && xTaskScheduled == pdFALSE; uxCurPriority-- ) + { + /* Check if current priority has one or more ready tasks. Skip if none */ + if( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxCurPriority ] ) ) ) + { + continue; + } + + /* Save a copy of highest priority that has a ready state task */ + if( xNewTopPrioritySet == pdFALSE ) + { + xNewTopPrioritySet = pdTRUE; + uxTopReadyPriority = uxCurPriority; + } + + /* We now search this priority's ready task list for a runnable task. + * We always start searching from the head of the list, so we reset + * pxIndex to point to the tail so that we start walking the list from + * the first item */ + pxReadyTasksLists[ uxCurPriority ].pxIndex = ( ListItem_t * ) &( pxReadyTasksLists[ uxCurPriority ].xListEnd ); + + /* Get the first item on the list */ + TCB_t * pxTCBCur; + TCB_t * pxTCBFirst; + listGET_OWNER_OF_NEXT_ENTRY( pxTCBCur, &( pxReadyTasksLists[ uxCurPriority ] ) ); + pxTCBFirst = pxTCBCur; + do + { + /* Check if the current task is currently being executed. However, if + * it's being executed by the current core, we can still schedule it. + * Todo: Each task can store a xTaskRunState, instead of needing to + * check each core */ + UBaseType_t ux; + for( ux = 0; ux < ( UBaseType_t )configNUM_CORES; ux++ ) + { + if ( ux == xCoreID ) + { + continue; + } + else if ( pxCurrentTCB[ux] == pxTCBCur ) + { + /* Current task is already being executed. Get the next task */ + goto get_next_task; + } + } + + /* Check if the current task has a compatible affinity */ + if ( ( pxTCBCur->xCoreID != xCoreID ) && ( pxTCBCur->xCoreID != tskNO_AFFINITY ) ) + { + goto get_next_task; + } + + /* The current task is runnable. Schedule it */ + pxCurrentTCB[ xCoreID ] = pxTCBCur; + xTaskScheduled = pdTRUE; + + /* Move the current tasks list item to the back of the list in order + * to implement best effort round robin. To do this, we need to reset + * the pxIndex to point to the tail again. */ + pxReadyTasksLists[ uxCurPriority ].pxIndex = ( ListItem_t * ) &( pxReadyTasksLists[ uxCurPriority ].xListEnd ); + uxListRemove( &( pxTCBCur->xStateListItem ) ); + vListInsertEnd( &( pxReadyTasksLists[ uxCurPriority ] ), &( pxTCBCur->xStateListItem ) ); + break; + +get_next_task: + /* The current task cannot be scheduled. Get the next task in the list */ + listGET_OWNER_OF_NEXT_ENTRY( pxTCBCur, &( pxReadyTasksLists[ uxCurPriority ] ) ); + } while( pxTCBCur != pxTCBFirst); /* Check to see if we've walked the entire list */ + } + + assert( xTaskScheduled == pdTRUE ); /* At this point, a task MUST have been scheduled */ +} +#endif /* configUSE_PORT_OPTIMISED_TASK_SELECTION */ +#endif //ESP_PLATFORM + void vTaskSwitchContext( void ) { - //Theoretically, this is only called from either the tick interrupt or the crosscore interrupt, so disabling - //interrupts shouldn't be necessary anymore. Still, for safety we'll leave it in for now. - int irqstate = portSET_INTERRUPT_MASK_FROM_ISR(); - +#ifdef ESP_PLATFORM + /* vTaskSwitchContext is called either from: + * - ISR dispatcher when return from an ISR (interrupts will already be disabled) + * - vTaskSuspend() which is not in a critical section + * Therefore, we enter a critical section ISR version to ensure safety */ + taskENTER_CRITICAL_ISR(); +#endif // ESP_PLATFORM if( uxSchedulerSuspended[ xPortGetCoreID() ] != ( UBaseType_t ) pdFALSE ) { /* The scheduler is currently suspended - do not allow a context @@ -3373,7 +3467,9 @@ void vTaskSwitchContext( void ) else { xYieldPending[ xPortGetCoreID() ] = pdFALSE; +#ifdef ESP_PLATFORM xSwitchingContext[ xPortGetCoreID() ] = pdTRUE; +#endif // ESP_PLATFORM traceTASK_SWITCHED_OUT(); #if ( configGENERATE_RUN_TIME_STATS == 1 ) @@ -3391,7 +3487,6 @@ void vTaskSwitchContext( void ) * overflows. The guard against negative values is to protect * against suspect run time stat counter implementations - which * are provided by the application, not the kernel. */ - taskENTER_CRITICAL_ISR(); if( ulTotalRunTime > ulTaskSwitchedInTime[ xPortGetCoreID() ] ) { pxCurrentTCB[ xPortGetCoreID() ]->ulRunTimeCounter += ( ulTotalRunTime - ulTaskSwitchedInTime[ xPortGetCoreID() ] ); @@ -3400,134 +3495,59 @@ void vTaskSwitchContext( void ) { mtCOVERAGE_TEST_MARKER(); } - taskEXIT_CRITICAL_ISR(); + ulTaskSwitchedInTime[ xPortGetCoreID() ] = ulTotalRunTime; } #endif /* configGENERATE_RUN_TIME_STATS */ /* Check for stack overflow, if configured. */ +#ifdef ESP_PLATFORM taskFIRST_CHECK_FOR_STACK_OVERFLOW(); taskSECOND_CHECK_FOR_STACK_OVERFLOW(); +#else + taskCHECK_FOR_STACK_OVERFLOW(); - /* Select a new task to run */ - - /* - We cannot do taskENTER_CRITICAL_ISR(); here because it saves the interrupt context to the task tcb, and we're - swapping that out here. Instead, we're going to do the work here ourselves. Because interrupts are already disabled, we only - need to acquire the mutex. - */ - vPortCPUAcquireMutex( &xTaskQueueMutex ); - - #if !configUSE_PORT_OPTIMISED_TASK_SELECTION - unsigned portBASE_TYPE foundNonExecutingWaiter = pdFALSE, ableToSchedule = pdFALSE, resetListHead; - unsigned portBASE_TYPE holdTop=pdFALSE; - tskTCB * pxTCB; - - portBASE_TYPE uxDynamicTopReady = uxTopReadyPriority; - /* - * ToDo: This scheduler doesn't correctly implement the round-robin scheduling as done in the single-core - * FreeRTOS stack when multiple tasks have the same priority and are all ready; it just keeps grabbing the - * first one. ToDo: fix this. - * (Is this still true? if any, there's the issue with one core skipping over the processes for the other - * core, potentially not giving the skipped-over processes any time.) - */ - - while ( ableToSchedule == pdFALSE && uxDynamicTopReady >= 0 ) - { - resetListHead = pdFALSE; - // Nothing to do for empty lists - if (!listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxDynamicTopReady ] ) )) { - - ableToSchedule = pdFALSE; - tskTCB * pxRefTCB; - - /* Remember the current list item so that we - can detect if all items have been inspected. - Once this happens, we move on to a lower - priority list (assuming nothing is suitable - for scheduling). Note: This can return NULL if - the list index is at the listItem */ - pxRefTCB = pxReadyTasksLists[ uxDynamicTopReady ].pxIndex->pvOwner; - - if ((void*)pxReadyTasksLists[ uxDynamicTopReady ].pxIndex==(void*)&pxReadyTasksLists[ uxDynamicTopReady ].xListEnd) { - //pxIndex points to the list end marker. Skip that and just get the next item. - listGET_OWNER_OF_NEXT_ENTRY( pxRefTCB, &( pxReadyTasksLists[ uxDynamicTopReady ] ) ); - } - - do { - listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &( pxReadyTasksLists[ uxDynamicTopReady ] ) ); - /* Find out if the next task in the list is - already being executed by another core */ - foundNonExecutingWaiter = pdTRUE; - portBASE_TYPE i = 0; - for ( i=0; ixCoreID == tskNO_AFFINITY) { - pxCurrentTCB[xPortGetCoreID()] = pxTCB; - ableToSchedule = pdTRUE; - } else if (pxTCB->xCoreID == xPortGetCoreID()) { - pxCurrentTCB[xPortGetCoreID()] = pxTCB; - ableToSchedule = pdTRUE; - } else { - ableToSchedule = pdFALSE; - holdTop=pdTRUE; //keep this as the top prio, for the other CPU - } - } else { - ableToSchedule = pdFALSE; - } - - if (ableToSchedule == pdFALSE) { - resetListHead = pdTRUE; - } else if ((ableToSchedule == pdTRUE) && (resetListHead == pdTRUE)) { - tskTCB * pxResetTCB; - do { - listGET_OWNER_OF_NEXT_ENTRY( pxResetTCB, &( pxReadyTasksLists[ uxDynamicTopReady ] ) ); - } while(pxResetTCB != pxRefTCB); - } - } while ((ableToSchedule == pdFALSE) && (pxTCB != pxRefTCB)); - } else { - if (!holdTop) --uxTopReadyPriority; + /* Before the currently running task is switched out, save its errno. */ + #if ( configUSE_POSIX_ERRNO == 1 ) + { + pxCurrentTCB->iTaskErrno = FreeRTOS_errno; } - --uxDynamicTopReady; - } - - #else - //For Unicore targets we can keep the current FreeRTOS O(1) - //Scheduler. I hope to optimize better the scheduler for - //Multicore settings -- This will involve to create a per - //affinity ready task list which will impact hugely on - //tasks module - taskSELECT_HIGHEST_PRIORITY_TASK(); #endif - - traceTASK_SWITCHED_IN(); - xSwitchingContext[ xPortGetCoreID() ] = pdFALSE; - -#ifdef ESP_PLATFORM - //Exit critical region manually as well: release the mux now, interrupts will be re-enabled when we - //exit the function. - vPortCPUReleaseMutex( &xTaskQueueMutex ); #endif // ESP_PLATFORM + /* Select a new task to run using either the generic C or port + * optimised asm code. */ + taskSELECT_HIGHEST_PRIORITY_TASK(); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ + traceTASK_SWITCHED_IN(); + +#ifdef ESP_PLATFORM + xSwitchingContext[ xPortGetCoreID() ] = pdFALSE; #if CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK vPortSetStackWatchpoint(pxCurrentTCB[xPortGetCoreID()]->pxStack); #endif +#else + /* After the new task is switched in, update the global errno. */ + #if ( configUSE_POSIX_ERRNO == 1 ) + { + FreeRTOS_errno = pxCurrentTCB->iTaskErrno; + } + #endif + #if ( configUSE_NEWLIB_REENTRANT == 1 ) + { + /* Switch Newlib's _impure_ptr variable to point to the _reent + * structure specific to this task. + * See the third party link http://www.nadler.com/embedded/newlibAndFreeRTOS.html + * for additional information. */ + _impure_ptr = &( pxCurrentTCB->xNewLib_reent ); + } + #endif /* configUSE_NEWLIB_REENTRANT */ +#endif // ESP_PLATFORM } - portCLEAR_INTERRUPT_MASK_FROM_ISR(irqstate); +#ifdef ESP_PLATFORM + /* Exit the critical section previously entered */ + taskEXIT_CRITICAL_ISR(); +#endif // ESP_PLATFORM } /*-----------------------------------------------------------*/ diff --git a/components/freertos/test/test_freertos_scheduling_round_robin.c b/components/freertos/test/test_freertos_scheduling_round_robin.c new file mode 100644 index 0000000000..15d8787410 --- /dev/null +++ b/components/freertos/test/test_freertos_scheduling_round_robin.c @@ -0,0 +1,169 @@ +/* + * SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/queue.h" +#include "esp_rom_sys.h" +#include "hal/interrupt_controller_hal.h" +#include "unity.h" +#include "test_utils.h" + +/* +Test Best Effort Round Robin Scheduling: + +The following test case tests the "Best Effort Round Robin Scheduling" that fixes the skipping behavior found in older +versions of the ESP-IDF SMP FreeRTOS (see docs for more details about Best Effort Round Robin Scheduling). + +This test... +- Only runs under dual core configuration +- Will disable the tick interrupts of both cores + +Test flow as follows: + +1. Stop preemption on core 0 by raising the priority of the unity task +2. Stop preemption on core 0 by creating a blocker task +3. Disable tick interrupts on both cores +4. Create N spin tasks on each core, each with a sequential task_code +5. Unblock those spin tasks in a sequential order +6. Lower priority of unity task and stop the blocker task so that spin tasks are run +7. Each time a spin task is run (i.e., an iteration) it will send its task code to a queue +8. Spin tasks will clean themselves up +9. The queue should contain the task codes of the spin tasks in the order they were started in, thus showing that round + robin schedules the tasks in a sequential order. +*/ + +#if !defined(CONFIG_FREERTOS_UNICORE) && (defined(CONFIG_FREERTOS_CORETIMER_0) || defined(CONFIG_FREERTOS_CORETIMER_1)) + +#define SPIN_TASK_PRIO (CONFIG_UNITY_FREERTOS_PRIORITY + 1) +#define SPIN_TASK_NUM_ITER 3 +#define TASK_STACK_SIZE 1024 +#define NUM_PINNED_SPIN_TASK_PER_CORE 3 +#if defined(CONFIG_FREERTOS_CORETIMER_0) +#define TICK_INTR_IDX 6 +#else //defined(CONFIG_FREERTOS_CORETIMER_1) +#define TICK_INTR_IDX 15 +#endif + +static QueueHandle_t core0_run_order_queue; +static QueueHandle_t core1_run_order_queue; +static uint32_t total_iter_count[configNUM_CORES] = {0}; + +static void spin_task(void *arg) +{ + uint32_t task_code = (uint32_t)arg; + QueueHandle_t run_order_queue = ((task_code >> 4) == 0) ? core0_run_order_queue : core1_run_order_queue; + + //Wait to be started + ulTaskNotifyTake(pdTRUE, portMAX_DELAY); + + for (int i = 0; i < SPIN_TASK_NUM_ITER; i++) { + xQueueSend(run_order_queue, &task_code, 0); + //No need for critical sections as tick interrupt is disabled + total_iter_count[xPortGetCoreID()]++; + taskYIELD(); + } + + //Last iteration of the last spin task on this core. Reenable this core's tick interrupt + if (total_iter_count[xPortGetCoreID()] == (NUM_PINNED_SPIN_TASK_PER_CORE * SPIN_TASK_NUM_ITER)) { + interrupt_controller_hal_enable_interrupts(1 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 diff --git a/docs/_static/freertos-ready-task-list-smp.png b/docs/_static/freertos-ready-task-list-smp.png deleted file mode 100644 index 820007afc5a0d29ce4f805339e453673a594dd65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61732 zcmeAS@N?(olHy`uVBq!ia0y~yVCG<8U<~14V_;zXeo!lvNA9*a29w(7Beu2se&-0XOPMV28ItiJzX3_D&pSMa?TJvx^+J@ z&u^nQ*2ZsmZu9)s>d|Rhb9f(@vX+JtkG0l>!uWuLtmZ;9Gdc|24jwroA*^WFsdjOP z%i_w)&dQV3H$R)_pRLx{Us?aR>Q&6EZ(oA$ZhybG_Whh+`+nu!e;2&m@9(RSxmH_C z;tLqt@3 zjg*?uV`*Lyf7}neH#PcqXRUzV)CJ4!*DhsU@L%z<{$7W|l`Z>kUkZ>jKlxjHb$alV z_mlPZ99sePn7D*Baf@~_-H~6u?tXwvHIH$7@Rw-G z>zY+}IbSWkyLt2K4R;-OU3_(~dsfVjs~*SXB~CGK+Q0Hk$i@1Q|I@Q=wpoAZ4mzpx zEpAqr*8IbnQW}rnne7#NXz|V&Z%DD>~RyZ*(vYqn7(ED<+evDBRXQo!X!nT{M zSo9Sy$8#!+<%uRHb(hVZv}O4Q&&x;7EVEmiP^2rkpi*MB(3h2c3$B})2pb>%wWa4| z>Hd>bL-tM4PFyVVD$RF8)mc8K-pH--XVzQJ6{tASdV1~ar|$c6|Mo@gi}tx&vt48F z4zHfLjp6e@sa<Vnh7O!MA7{(g&EOuu<%*(C9M33@S;zu ze?BdIt{LuBy*q8jvo$Y_VjuW~F==+ot7wKd<(EHEZsgRcYvuTKM`gc{wwub-4_m^^ zk4$~AT6tnf(>(70T`sTp(Tg~=Y_(>dTB>uEjmbTTbKYWQ%@)%XZo&0N8V&(MtF4V> zIV~@~loX2z_;6qC+@kJy=LgGUI9c>grd?ljHBi(-&|dC!fJL>b@A=|5 ziJXFsobrbcu3EeHs;unmU*6K}*FO90uMS;V>VNLQPD{7ID~Go}`H?Ao?8uL}wJyKK zPEKuj?!W$J{Q2r@tqZ&?wmt1()pIDj^sC!_y$E}_{hTjnmJ0=GWe0gXG|pc6l0oFv z_3P8S=f9Vosd3{y|FrAcOX~DhJ?987w*IBC>YC?Nfo0xZyM#7ao?dIsb@zYWhT@74 zwxIQVr`1-Z$sO~vJUK;c{*+uMGfUCx(58N~<;)rDbyf;px^Uvv#x>K*{iIW-6sg|$ z%)ynV=GeGq=DG6=_=4tJJE^^2c0tI9*K675(-EpKBn!PQ`rB%MybDvDSmOSE$pxXN zuvwjHM~|w_I3?w&TCt5~O;KxS#5ogPSB704yOnhgF53|H=;<0(jUd^T*SEN`9=q_E zEwp3iQ}3^r^{<&~vF|_Jb==ead9LA-@SPI3(tG^GBP8at1co(jz18kDBfj`p*DtO` zmp46c@y=eeRn(@tsP|@mNlGZw(PO<*(SK7etDRj_{XPDx>-npjR%9!jx+s{&6u{}X zmNB(tHA~gBtzI0jB9|=`%3Aa!GkypECDY8Q1x8*o-|U$eWPYe>%9XROnbN0}wF;&f zxvB)^ZCJ?VA$p*TqdQu1QuqU-2MVz>t_8>jIrtspIKt0p5^JISW|T4T;1-`9Bve|WZlR59|9EA?Iq&($KtWpKj^iF4f30~4WrRf7t^(1?Rn2##)vW*cN=R0}0 zYj>==Q2%j7gY=ekQ8rQ6Y*n@;nTn3wJfiRQtWJ z=^FF2Z{7@%3{b7{k8@zIS9_dz^vgSq8SY08uV#I8cB; tXcrrxoE^4@`N=CN$>> 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 diff --git a/docs/en/api-guides/freertos-smp.rst b/docs/en/api-guides/freertos-smp.rst index 388cdde9f5..1b71d62380 100644 --- a/docs/en/api-guides/freertos-smp.rst +++ b/docs/en/api-guides/freertos-smp.rst @@ -19,7 +19,7 @@ FreeRTOS and ESP-IDF FreeRTOS. The API reference for vanilla FreeRTOS can be found via https://www.freertos.org/a00106.html For information regarding features that are exclusive to ESP-IDF FreeRTOS, -see :doc:`ESP-IDF FreeRTOS Additions<../api-reference/system/freertos_additions>`. +see :doc:`ESP-IDF FreeRTOS Additions`. .. only:: not CONFIG_FREERTOS_UNICORE @@ -30,10 +30,7 @@ see :doc:`ESP-IDF FreeRTOS Additions<../api-reference/system/freertos_additions> ``1`` for **APP_CPU**, or ``tskNO_AFFINITY`` which allows the task to run on both. - :ref:`round-robin-scheduling`: The ESP-IDF FreeRTOS scheduler will skip tasks when - implementing Round-Robin scheduling between multiple tasks in the Ready state - that are of the same priority. To avoid this behavior, ensure that those tasks either - enter a blocked state, or are distributed across a wider range of priorities. + :ref:`round-robin-scheduling`: The ESP-IDF FreeRTOS scheduler implements a "Best Effort Round-Robin Scheduling" instead of the ideal Round-Robin scheduling in vanilla FreeRTOS. :ref:`scheduler-suspension`: Suspending the scheduler in ESP-IDF FreeRTOS will only affect the scheduler on the the calling core. In other words, calling @@ -133,91 +130,88 @@ synchronicity. Round Robin Scheduling ^^^^^^^^^^^^^^^^^^^^^^ -Given multiple tasks in the Ready state and of the same priority, vanilla -FreeRTOS implements Round Robin scheduling between each task. This will result -in running those tasks in turn each time the scheduler is called -(e.g. every tick interrupt). On the other hand, the ESP-IDF FreeRTOS scheduler -may skip tasks when Round Robin scheduling multiple Ready state tasks of the -same priority. +Given multiple tasks in the Ready state and of the same priority, vanilla FreeRTOS implements Round Robin scheduling between multiple ready state tasks of the same priority. This will result in running those tasks in turn each time the scheduler is called (e.g. when the tick interrupt occurs or when a task blocks/yields). -The issue of skipping tasks during Round Robin scheduling arises from the way -the Ready Tasks List is implemented in FreeRTOS. In vanilla FreeRTOS, -``pxReadyTasksList`` is used to store a list of tasks that are in the Ready -state. The list is implemented as an array of length ``configMAX_PRIORITIES`` -where each element of the array is a linked list. Each linked list is of type -``List_t`` and contains TCBs of tasks of the same priority that are in the -Ready state. The following diagram illustrates the ``pxReadyTasksList`` -structure. +On the other hand, it is not possible for the ESP-IDF FreeRTOS scheduler to implement perfect Round Robin due to the fact that a particular task may not be able to run on a particular core due to the following reasons: -.. figure:: ../../_static/freertos-ready-task-list.png - :align: center - :alt: Vanilla FreeRTOS Ready Task List Structure +- The task is pinned to the another core. +- For unpinned tasks, the task is already being run by another core. - Illustration of FreeRTOS Ready Task List Data Structure +Therefore, when a core searches the ready state task list for a task to run, the core may need to skip over a few tasks in the same priority list or drop to a lower priority in order to find a ready state task that the core can run. + +The ESP-IDF FreeRTOS scheduler implements a Best Effort Round Robin scheduling for ready state tasks of the same priority by ensuring that tasks that have been selected to run will be placed at the back of the list, thus giving unselected tasks a higher priority on the next scheduling iteration (i.e., the next tick interrupt or yield) + +The following example demonstrates the Best Effort Round Robin Scheduling in action. Assume that: + +- There are four ready state tasks of the same priority ``AX, B0, C1, D1`` where: + - The priority is the current highest priority with ready state tasks + - The first character represents the task's names (i.e., ``A, B, C, D``) + - And the second character represents the tasks core pinning (and ``X`` means unpinned) +- The task list is always searched from the head + +.. code-block:: none + + -------------------------------------------------------------------------------- + + 1. Starting state. None of the ready state tasks have been selected to run + + Head [ AX , B0 , C1 , D0 ] Tail + + -------------------------------------------------------------------------------- + + 2. Core 0 has tick interrupt and searches for a task to run. + Task A is selected and is moved to the back of the list + + Core0--| + Head [ AX , B0 , C1 , D0 ] Tail + + 0 + Head [ B0 , C1 , D0 , AX ] Tail + + -------------------------------------------------------------------------------- + + 3. Core 1 has a tick interrupt and searches for a task to run. + Task B cannot be run due to incompatible affinity, so core 1 skips to Task C. + Task C is selected and is moved to the back of the list + + Core1-------| 0 + Head [ B0 , C1 , D0 , AX ] Tail + + 0 1 + Head [ B0 , D0 , AX , C1 ] Tail + + -------------------------------------------------------------------------------- + + 4. Core 0 has another tick interrupt and searches for a task to run. + Task B is selected and moved to the back of the list -Each linked list also contains a ``pxIndex`` which points to the last TCB -returned when the list was queried. This index allows the ``vTaskSwitchContext()`` -to start traversing the list at the TCB immediately after ``pxIndex`` hence -implementing Round Robin Scheduling between tasks of the same priority. + Core0--| 1 + Head [ B0 , D0 , AX , C1 ] Tail -In ESP-IDF FreeRTOS, the Ready Tasks List is shared between cores hence -``pxReadyTasksList`` will contain tasks pinned to different cores. When a core -calls the scheduler, it is able to look at the ``xCoreID`` member of each TCB -in the list to determine if a task is allowed to run on calling the core. The -ESP-IDF FreeRTOS ``pxReadyTasksList`` is illustrated below. + 1 0 + Head [ D0 , AX , C1 , B0 ] Tail -.. figure:: ../../_static/freertos-ready-task-list-smp.png - :align: center - :alt: ESP-IDF FreeRTOS Ready Task List Structure + -------------------------------------------------------------------------------- - Illustration of FreeRTOS Ready Task List Data Structure in ESP-IDF + 5. Core 1 has another tick and searches for a task to run. + Task D cannot be run due to incompatible affinity, so core 1 skips to Task A + Task A is selected and moved to the back of the list -Therefore when **PRO_CPU** calls the scheduler, it will only consider the tasks -in blue or purple. Whereas when **APP_CPU** calls the scheduler, it will only -consider the tasks in orange or purple. + Core1-------| 0 + Head [ D0 , AX , C1 , B0 ] Tail -Although each TCB has an ``xCoreID`` in ESP-IDF FreeRTOS, the linked list of -each priority only has a single ``pxIndex``. Therefore when the scheduler is -called from a particular core and traverses the linked list, it will skip all -TCBs pinned to the other core and point the pxIndex at the selected task. If -the other core then calls the scheduler, it will traverse the linked list -starting at the TCB immediately after ``pxIndex``. Therefore, TCBs skipped on -the previous scheduler call from the other core would not be considered on the -current scheduler call. This issue is demonstrated in the following -illustration. + 0 1 + Head [ D0 , C1 , B0 , AX ] Tail -.. figure:: ../../_static/freertos-ready-task-list-smp-pxIndex.png - :align: center - :alt: ESP-IDF pxIndex Behavior - Illustration of pxIndex behavior in ESP-IDF FreeRTOS +The implications to users regarding the Best Effort Round Robin Scheduling: -Referring to the illustration above, assume that priority 9 is the highest -priority, and none of the tasks in priority 9 will block hence will always be -either in the running or Ready state. +- Users cannot expect multiple ready state tasks of the same priority to run sequentially (as is the case in Vanilla FreeRTOS). As demonstrated in the example above, a core may need to skip over tasks. +- However, given enough ticks, a task will eventually be given some processing time. +- If a core cannot find a task runnable task at the highest ready state priority, it will drop to a lower priority to search for tasks. +- To achieve ideal round robin scheduling, users should ensure that all tasks of a particular priority are pinned to the same core. -1) **PRO_CPU** calls the scheduler and selects Task A to run, hence moves -``pxIndex`` to point to Task A - -2) **APP_CPU** calls the scheduler and starts traversing from the task after -``pxIndex`` which is Task B. However Task B is not selected to run as it is not -pinned to **APP_CPU** hence it is skipped and Task C is selected instead. -``pxIndex`` now points to Task C - -3) **PRO_CPU** calls the scheduler and starts traversing from Task D. It skips -Task D and selects Task E to run and points ``pxIndex`` to Task E. Notice that -Task B isn’t traversed because it was skipped the last time **APP_CPU** called -the scheduler to traverse the list. - -4) The same situation with Task D will occur if **APP_CPU** calls the -scheduler again as ``pxIndex`` now points to Task E - -One solution to the issue of task skipping is to ensure that every task will -enter a blocked state so that they are removed from the Ready Task List. -Another solution is to distribute tasks across multiple priorities such that -a given priority will not be assigned multiple tasks that are pinned to -different cores. .. _scheduler-suspension: