[RFC][PATCH 0/1 v1] Using Thread Notifiers to Add Thread Support for the Context ID Register of ARM v6 & v7 Architectures
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
- 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)
- focusing on compatibility with tracing tools such as Lauterbach's
- 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(-)
More information about the linux-arm-kernel