Notice: We have migrated to GitLab launching 2024-05-01 see here: https://gitlab.rtems.org/

Changes between Version 68 and Version 69 of Developer/SMP


Ignore:
Timestamp:
04/18/14 18:18:40 (10 years ago)
Author:
Mayes
Comment:

/* Status of Effort*/

Legend:

Unmodified
Added
Removed
Modified
  • Developer/SMP

    v68 v69  
    1313|+
    1414|-
    15 |'''Design Issue''' || '''Status Summary''' || '''Notes'''
     15|'''Design Issues''' || '''Summary''' || '''Notes'''
    1616|-
    1717| [http://www.rtems.org/wiki/index.php/SMP#Low-Level_Start Low Level Start] || TBD ||
     
    4646|-
    4747| [http://www.rtems.org/wiki/index.php/SMP#Semaphores_and_Mutexes Semaphores and Mutexes] || TBD ||
     48|-
     49|}
     50
     51
     52{| border="1" style="margin: 1em auto 1em auto;text-align: center;"
     53|+
     54|-
     55|'''Implementation Status''' || '''Summary''' || '''Notes'''
     56|-
     57| [http://www.rtems.org/wiki/index.php/SMP#Tool_Chain Tool Chain] || TBD ||
     58|-
     59| [http://www.rtems.org/wiki/index.php/SMP#Profiling Profiling] || TBD ||
     60|-
     61| [http://www.rtems.org/wiki/index.php/SMP#Interrupt_Support_2 Interrupt Support] || TBD ||
     62|-
     63| [http://www.rtems.org/wiki/index.php/SMP#Clustered_Scheduling_2 Clustered Scheduling] || TBD ||
     64|-
     65| [http://www.rtems.org/wiki/index.php/SMP#Multiprocessor_Resource_Sharing_Protocol_-_MrsP  Multiprocessor Resource Sharing Protocol - MrsP] || TBD ||
     66|-
     67| [http://www.rtems.org/wiki/index.php/SMP#Fine_Grained_Locking Fine Grained Locking] || TBD ||
     68|-
     69| [http://www.rtems.org/wiki/index.php/SMP#Post-Switch_Actions Post-Switch Actions] || TBD ||
     70|-
     71| [http://www.rtems.org/wiki/index.php/SMP#Thread_Delete.2FRestart Thread Delete/Restart] || TBD ||
     72|-
     73| [http://www.rtems.org/wiki/index.php/SMP#Barrier_Synchronization Barrier Synchronization] || TBD ||
     74|-
     75| [http://www.rtems.org/wiki/index.php/SMP#Low-Level_Broadcasts Low-Level Broadcasts] || TBD ||
     76|-
     77| [http://www.rtems.org/wiki/index.php/SMP#Termios_Framework Termios Framework] || TBD ||
    4878|-
    4979|}
     
    14821512directly which thread is about to block on that mutex.  Some sequences assume
    14831513exactly one executing thread in the system, which is not true on a SMP system
    1484 with more than one processor.  With an SMP lock per mutex object all state
    1485 information for this mutex must be present in the mutex object.  So the locked
    1486 mutex to locked mutex with a waiting thread change must be atomic with respect
    1487 to the mutex SMP lock.  Later mutex timeout or release operations can then get
    1488 the waiting thread and deal with it accordingly.
    1489 =  Implementation  =
    1490 
    1491 
    1492 The blocking operation synchronization state must move from the synchronization
    1493 object (e.g. mutex, message queue) to the thread wait information
    1494 (Thread_Wait_information) since it is clear that the thread has to block and
    1495 not the object.  There may be also multiple threads on different processors
    1496 which queue up on a mutex at the same time.
    1497 
    1498 Blocking threads must be registered in the object under the SMP lock of the
    1499 object and must be independent of the scheduler data structures.  Thus we can
    1500 no longer use the normal chain node of the thread and instead have to add a
    1501 chain node to the thread wait information.
    1502 
    1503 The thread queue operations must no longer use internal locks (e.g. ISR
    1504 disable/enable).  This simplifies them considerable.  The thread queue
    1505 operations must be performed under the SMP lock of the object.  The drawback is
    1506 that the time of disabled interrupts increases.
     1514with more than one proce