← Documents Documentation/trace/events-msr.rst GitHub 원문 ↗

Linux 6.18.37 · Tracing

MSR Trace Events

x86 MSR read, write와 RDPMC tracepoint 및 numeric register를 symbolic name으로 해독하는 절차입니다.

Source pathDocumentation/trace/events-msr.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

events-msr.rst:1-40

x86 MSR read, write와 RDPMC tracepoint 및 numeric register를 symbolic name으로 해독하는 절차입니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 ================
2 MSR Trace Events
3 ================
4
5 The x86 kernel supports tracing most MSR (Model Specific Register) accesses.
6 To see the definition of the MSRs on Intel systems please see the SDM
7 at https://www.intel.com/sdm (Volume 3)
8
9 Available trace points:
10
11 /sys/kernel/tracing/events/msr/
12
13 Trace MSR reads:
14
15 read_msr
16
17 - msr: MSR number
18 - val: Value written
19 - failed: 1 if the access failed, otherwise 0
20
21
22 Trace MSR writes:
23
24 write_msr
25
26 - msr: MSR number
27 - val: Value written
28 - failed: 1 if the access failed, otherwise 0
29
30
31 Trace RDPMC in kernel:
32
33 rdpmc
34
35 The trace data can be post processed with the postprocess/decode_msr.py script::
36
37 cat /sys/kernel/tracing/trace | decode_msr.py /usr/src/linux/include/asm/msr-index.h
38
39 to add symbolic MSR names.
40
41

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

x86 MSR trace 개요

1-12

x86 kernel은 대부분의 MSR(Model Specific Register) access를 trace할 수 있다. Intel system의 MSR 정의는 Intel SDM Volume 3의 `https://www.intel.com/sdm`을 참조한다.

사용 가능한 tracepoint는 `/sys/kernel/tracing/events/msr/` 아래에 나타난다.

MSR trace 위치
x86 MSR accessMSR tracepoints
MSR tracepoints/sys/kernel/tracing/events/msr

x86 register access가 tracefs의 msr event group에 기록된다.

MSR 참고 자료
항목위치
Intel MSR definitionIntel SDM Volume 3
Kernel trace group/sys/kernel/tracing/events/msr/

register 번호를 architecture symbol과 연결할 때 사용하는 위치다.

================
MSR Trace Events
================

The x86 kernel supports tracing most MSR (Model Specific Register) accesses.
To see the definition of the MSRs on Intel systems please see the SDM
at https://www.intel.com/sdm (Volume 3)

Available trace points:

/sys/kernel/tracing/events/msr/

read_msr와 write_msr

13-30

`read_msr`는 MSR read를, `write_msr`는 MSR write를 추적한다. 두 event 모두 `msr`, `val`, `failed` field를 제공한다.

`msr`는 MSR number, `val`은 기록된 value다. 원문의 read 항목도 `Value written`이라고 표기하며 그대로 보존한다. `failed`는 access가 실패하면 1, 성공하면 0이다.

MSR access event field
Field의미
msrMSR number
val원문 표기: Value written
failed실패 1, 성공 0

read_msr와 write_msr가 공통으로 제공하는 field다.

MSR access 결과
MSR readread_msr
MSR writewrite_msr
Event recordmsr, val, failed

access 종류와 성공 여부를 하나의 record로 남긴다.

Trace MSR reads:

read_msr

  - msr: MSR number
  - val: Value written
  - failed: 1 if the access failed, otherwise 0


Trace MSR writes:

write_msr

  - msr: MSR number
  - val: Value written
  - failed: 1 if the access failed, otherwise 0

RDPMC와 symbolic name 후처리

31-40

kernel 안에서 실행되는 RDPMC는 `rdpmc` event로 추적한다.

trace data는 `postprocess/decode_msr.py`로 후처리할 수 있다. `/sys/kernel/tracing/trace`를 script에 pipe하고 `/usr/src/linux/include/asm/msr-index.h`를 넘기면 numeric MSR에 symbolic MSR name을 추가한다.

MSR trace decode
/sys/kernel/tracing/tracedecode_msr.py
asm/msr-index.hdecode_msr.py
decode_msr.pyTrace with symbolic MSR names

raw trace와 msr-index.h를 결합해 symbolic name을 붙인다.

Trace RDPMC in kernel:

rdpmc

The trace data can be post processed with the postprocess/decode_msr.py script::

  cat /sys/kernel/tracing/trace | decode_msr.py /usr/src/linux/include/asm/msr-index.h

to add symbolic MSR names.