To enter tickless about Minimal idle task and idle task on SMP

Hi
When I tested lower power mode, it is found that idle task could not enter portSUPPRESS_TICKS_AND_SLEEP. Because prvGetExpectedIdleTime() always returns zero. On freertos smp, the number of idle tasks is equal to core numbers.

+++ b/tasks.c
@@ -2978,7 +2978,7 @@ void vTaskSuspendAll( void )
        {
            xReturn = 0;
        }
-        else if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > 1 )
+        else if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > configNUM_CORES )
        {
            /* There are other idle priority tasks in the ready state.  If
             * time slicing is used then the very next tick interrupt must be

Besides, minial idle task does not check configUSE_TICKLESS_IDLE and only core0 does systick handler. The idle task has no affnity with core0. If minimal idle task runs on core1 and idle task runs on core0, core0 can not do tickless which enable systick.

We have not yet tested tickless idle in SMP. Tickless idle in SMP would require some sort of coordination among IDLE tasks to find out the point when all the cores are idle. If you end up implementing it, feel free to upstream.