Changeset 7c58036 in rtems-docs


Ignore:
Timestamp:
Sep 7, 2018, 1:47:43 PM (9 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
11040cf
Parents:
d90c813
git-author:
Sebastian Huber <sebastian.huber@…> (09/07/18 13:47:43)
git-committer:
Sebastian Huber <sebastian.huber@…> (09/10/18 05:09:46)
Message:

c-user: Mention thread pinning

Close #3508.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c-user/symmetric_multiprocessing_services.rst

    rd90c813 r7c58036  
    810810   This API is not intended for general application use.  Please ask on the
    811811   development mailing list in case you want to use it.
     812
     813Thread Pinning
     814--------------
     815
     816Thread pinning ensures that a thread is only dispatched to the processor on
     817which it is pinned.  It may be used to access per-processor data structures in
     818critical sections with enabled thread dispatching, e.g. a pinned thread is
     819allowed to block.  The `_Thread_Pin()` operation will pin the executing thread
     820to its current processor.  A thread may be pinned recursively, the last unpin
     821request via `_Thread_Unpin()` revokes the pinning.
     822
     823Thread pinning should be used only for short critical sections and not all
     824the time.  Thread pinning is a very low overhead operation in case the
     825thread is not preempted during the pinning.  A preemption will result in
     826scheduler operations to ensure that the thread executes only on its pinned
     827processor.  Thread pinning must be used with care, since it prevents help
     828through the locking protocols.  This makes the :ref:`OMIP <OMIP>` and
     829:ref:`MrsP <MrsP>` locking protocols ineffective if pinned threads are
     830involved.
     831
     832The thread pinning is not intended for general application use.  Please ask on
     833the development mailing list in case you want to use it.
Note: See TracChangeset for help on using the changeset viewer.