Changeset 7c0bd74 in rtems for doc


Ignore:
Timestamp:
Apr 22, 2014, 8:15:39 AM (6 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
8365ad1
Parents:
3fe1e43
git-author:
Sebastian Huber <sebastian.huber@…> (04/22/14 08:15:39)
git-committer:
Sebastian Huber <sebastian.huber@…> (04/28/14 07:26:19)
Message:

sparc: Add _CPU_Get_current_per_CPU_control()

Use register g6 for the per-CPU control of the current processor. The
register g6 is reserved for the operating system by the SPARC ABI. On
Linux register g6 is used for a similar purpose with the same method
since 1996.

The register g6 must be initialized during system startup and then must
remain unchanged.

Since the per-CPU control is used in all critical sections of the
operating system, this is a performance optimization for the operating
system core procedures. An additional benefit is that the low-level
context switch and interrupt processing code is now identical on non-SMP
and SMP configurations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/cpu_supplement/sparc.t

    r3fe1e43 r7c0bd74  
    402402RTEMS as well.
    403403
     404The register g6 is reserved for the operating system and contains the address
     405of the per-CPU control block of the current processor.  This register is
     406initialized during system start and then remains unchanged.  It is not
     407saved/restored by the context switch or interrupt processing code.
     408
    404409The register g7 is reserved for the operating system and contains the thread
    405410pointer used for thread-local storage (TLS) as mandated by the SPARC ABI.
Note: See TracChangeset for help on using the changeset viewer.