[RFC][PATCH 0/1 v1] Using Thread Notifiers to Add Thread Support for the Context ID Register of ARM v6 & v7 Architectures

Wolfgang BETZ wolfgang.betz at st.com
Tue Aug 23 12:12:01 EDT 2011


From: Wolfgang Betz <wolfgang.betz at st.com>

The Context ID Register, CONTEXTIDR, identifies the current:
- Process Identifier (PROCID) &
- Address Space Identifier (ASID).

The value of the whole of this register is called the Context ID and is 
used by:
- the ARM debug logic, for Linked and Unlinked Context ID matching
  (e.g. for breakpoint debug and watchpoint debug events).
- the trace logic, to identify the current process.

The CONTEXTIDR is a 32-bit read/write register whose format is:
- PROCID, bits [31:8]
  Process Identifier. This field should be programmed with a unique 
  value that identifies the current process and is used by the trace logic and 
  the debug logic to identify the process that is running currently.
- ASID, bits [7:0]
  Address Space Identifier. This field must be programmed with the 
  value of the current ASID and is used by many memory management functions.

This change-set aims at:
- implementing thread tracing support based on the armv6 & v7 CONTEXTIDR 
  register while leaving the Linux kernel ASID functionality (semantically)
  unchanged.
- focusing on compatibility with tracing tools such as Lauterbach's 
  TRACE32 tool.
- the avoidance of platform specific calls in generic code.
- simplicity, readability, and good performances.
- being general: i.e. the change-set applies to all armv7/v6 platforms &
  is in general compilable for all (other) platforms.

The patch has been jointly developed by 
Lauterbach GmbH (http://www.lauterbach.com) and 
STMicroelectronics Srl (http://www.st.com/). 
Main contributors are:
- Khaled Jmal <khaled.jmal at lauterbach.com>
- Rudi Dienstbeck <Rudolf.Dienstbeck at Lauterbach.com>
- Wolfgang Betz <wolfgang.betz at st.com>


Wolfgang Betz (1):
  Using Thread Notifiers to Add Thread Support for the Context ID
    Register of ARM v6 & v7 Architectures

 arch/arm/Kconfig.debug             |   12 ++++++
 arch/arm/include/asm/mmu_context.h |   75 ++++++++++++++++++++++++++++++++----
 arch/arm/include/asm/proc-fns.h    |    9 ++--
 arch/arm/kernel/smp.c              |    2 +-
 arch/arm/mm/context.c              |   54 +++++++++++++++++++++++++-
 arch/arm/mm/proc-v6.S              |    4 +-
 arch/arm/mm/proc-v7.S              |    4 +-
 7 files changed, 140 insertions(+), 20 deletions(-)

-- 
1.7.6



More information about the linux-arm-kernel mailing list