요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
================
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/
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
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.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
x86 MSR trace 개요
1-12x86 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/` 아래에 나타난다.
x86 register access가 tracefs의 msr event group에 기록된다.
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이다.
read_msr와 write_msr가 공통으로 제공하는 field다.
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-40kernel 안에서 실행되는 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을 추가한다.
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.
요약·해설
events-msr.rst:1-40x86 MSR read, write와 RDPMC tracepoint 및 numeric register를 symbolic name으로 해독하는 절차입니다.