요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Corrected-error polling과 event trigger
sysfs-mce:38-75Shared polling interval은 error 빈도에 따라 exponential speedup과 backoff를 적용하며, trigger program과 CPU rendezvous timeout을 제공합니다.
Corrected-error 및 CMCI 제어
sysfs-mce:76-97Corrected errors를 보존하거나 조용히 clear하는 정책과 CMCI 자체를 끄는 controls를 구분합니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
1
What: /sys/devices/system/machinecheck/machinecheckX/
2
Contact: Andi Kleen <ak@linux.intel.com>
3
Date: Feb, 2007
4
Description:
5
(X = CPU number)
7
Machine checks report internal hardware error conditions
8
detected by the CPU. Uncorrected errors typically cause a
9
machine check (often with panic), corrected ones cause a
10
machine check log entry.
12
For more details about the x86 machine check architecture
13
see the Intel and AMD architecture manuals from their
14
developer websites.
16
For more details about the architecture
17
see http://one.firstfloor.org/~andi/mce.pdf
19
Each CPU has its own directory.
21
What: /sys/devices/system/machinecheck/machinecheckX/bank<Y>
22
Contact: Andi Kleen <ak@linux.intel.com>
23
Date: Feb, 2007
24
Description:
25
(Y bank number)
27
64bit Hex bitmask enabling/disabling specific subevents for
28
bank Y.
30
When a bit in the bitmask is zero then the respective
31
subevent will not be reported.
33
By default all events are enabled.
35
Note that BIOS maintain another mask to disable specific events
36
per bank. This is not visible here
38
What: /sys/devices/system/machinecheck/machinecheckX/check_interval
39
Contact: Andi Kleen <ak@linux.intel.com>
40
Date: Feb, 2007
41
Description:
42
The entries appear for each CPU, but they are truly shared
43
between all CPUs.
45
How often to poll for corrected machine check errors, in
46
seconds (Note output is hexadecimal). Default 5 minutes.
47
When the poller finds MCEs it triggers an exponential speedup
48
(poll more often) on the polling interval. When the poller
49
stops finding MCEs, it triggers an exponential backoff
50
(poll less often) on the polling interval. The check_interval
51
variable is both the initial and maximum polling interval.
52
0 means no polling for corrected machine check errors
53
(but some corrected errors might be still reported
54
in other ways)
56
What: /sys/devices/system/machinecheck/machinecheckX/trigger
57
Contact: Andi Kleen <ak@linux.intel.com>
58
Date: Feb, 2007
59
Description:
60
The entries appear for each CPU, but they are truly shared
61
between all CPUs.
63
Program to run when a machine check event is detected.
64
This is an alternative to running mcelog regularly from cron
65
and allows to detect events faster.
67
What: /sys/devices/system/machinecheck/machinecheckX/monarch_timeout
68
Contact: Andi Kleen <ak@linux.intel.com>
69
Date: Feb, 2007
70
Description:
71
How long to wait for the other CPUs to machine check too on a
72
exception. 0 to disable waiting for other CPUs.
74
Unit: us
76
What: /sys/devices/system/machinecheck/machinecheckX/ignore_ce
77
Contact: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
78
Date: Jun 2009
79
Description:
80
Disables polling and CMCI for corrected errors.
81
All corrected events are not cleared and kept in bank MSRs.
83
What: /sys/devices/system/machinecheck/machinecheckX/dont_log_ce
84
Contact: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
85
Date: Jun 2009
86
Description:
87
Disables logging for corrected errors.
88
All reported corrected errors will be cleared silently.
90
This option will be useful if you never care about corrected
91
errors.
93
What: /sys/devices/system/machinecheck/machinecheckX/cmci_disabled
94
Contact: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
95
Date: Jun 2009
96
Description:
97
Disables the CMCI feature.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
x86 machine-check sysfs ABI: machinecheckX
1-20| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/devices/system/machinecheck/machinecheckX/ |
| Date | 2007년 2월 |
| Contact | Andi Kleen <ak@linux.intel.com> |
| Description | `/sys/devices/system/machinecheck/machinecheckX/`에서 `X`는 CPU number입니다. Machine check는 CPU가 감지한 internal hardware error condition을 보고합니다. Uncorrected errors는 보통 machine check를 발생시키며 종종 panic으로 이어지고, corrected errors는 machine-check log entry를 만듭니다. x86 machine-check architecture의 자세한 내용은 Intel 및 AMD developer website의 architecture manuals와 `http://one.firstfloor.org/~andi/mce.pdf`를 참조합니다. 각 CPU에는 자체 directory가 있습니다. |
x86 machine-check sysfs ABI: bank<Y>
21-37| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/devices/system/machinecheck/machinecheckX/bank<Y> |
| Date | 2007년 2월 |
| Contact | Andi Kleen <ak@linux.intel.com> |
| Description | `/sys/devices/system/machinecheck/machinecheckX/bank<Y>`에서 `Y`는 bank number입니다. 이 file은 bank `Y`의 특정 subevents를 enable 또는 disable하는 64-bit hexadecimal bitmask입니다. Bit가 0이면 해당 subevent는 보고되지 않으며, default로 모든 events가 enable됩니다. BIOS도 bank별 특정 events를 disable하는 별도 mask를 유지하지만 그 mask는 이 interface에서 보이지 않습니다. |
x86 machine-check sysfs ABI: check interval
38-55| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/devices/system/machinecheck/machinecheckX/check_interval |
| Date | 2007년 2월 |
| Contact | Andi Kleen <ak@linux.intel.com> |
| Description | `check_interval` entry는 CPU마다 나타나지만 실제 value는 모든 CPUs 사이에서 공유됩니다. Corrected machine-check errors를 polling할 interval을 seconds 단위로 지정하며 output은 hexadecimal입니다. Default는 5 minutes입니다. Poller가 MCE를 찾으면 interval을 exponential하게 줄여 더 자주 polling하고, 더 이상 MCE를 찾지 못하면 exponential backoff로 덜 자주 polling합니다. `check_interval`은 initial interval이자 maximum interval입니다. `0`은 corrected machine-check error polling을 중지하지만 일부 corrected errors는 다른 방식으로 계속 보고될 수 있습니다. |
Start at check_interval→MCE found→Exponential speedup→Poll more often
No MCE found→Exponential backoff→Poll less often→Never exceed check_interval
check_interval = 0→Disable corrected-error polling
`check_interval`은 initial·maximum interval이며 MCE 발견 여부에 따라 polling rate가 지수적으로 변합니다.
x86 machine-check sysfs ABI: trigger
56-66| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/devices/system/machinecheck/machinecheckX/trigger |
| Date | 2007년 2월 |
| Contact | Andi Kleen <ak@linux.intel.com> |
| Description | `trigger` entry는 CPU마다 나타나지만 모든 CPUs가 실제 value를 공유합니다. Machine-check event가 감지될 때 실행할 program을 지정합니다. 이는 cron에서 `mcelog`를 정기적으로 실행하는 방식의 대안이며 events를 더 빠르게 감지할 수 있습니다. |
x86 machine-check sysfs ABI: monarch timeout
67-75| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/devices/system/machinecheck/machinecheckX/monarch_timeout |
| Date | 2007년 2월 |
| Contact | Andi Kleen <ak@linux.intel.com> |
| Description | `monarch_timeout`은 exception 발생 시 다른 CPUs도 machine check에 진입하기를 기다리는 시간을 지정합니다. `0`은 다른 CPUs를 기다리지 않도록 합니다. 단위는 microseconds(`us`)입니다. |
x86 machine-check sysfs ABI: ignore ce
76-82| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/devices/system/machinecheck/machinecheckX/ignore_ce |
| Date | 2009년 6월 |
| Contact | Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> |
| Description | `ignore_ce`는 corrected errors를 위한 polling과 CMCI를 disable합니다. 모든 corrected events는 clear되지 않고 bank MSRs에 유지됩니다. |
ControlDisabled behaviorCorrected-event state
ignore_cePolling and CMCIKept in bank MSRs
dont_log_ceLoggingSilently cleared
cmci_disabledCMCI featureNot specified here
세 controls는 polling, logging, CMCI와 corrected-event clear 여부에 서로 다른 영향을 줍니다.
x86 machine-check sysfs ABI: dont log ce
83-92| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/devices/system/machinecheck/machinecheckX/dont_log_ce |
| Date | 2009년 6월 |
| Contact | Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> |
| Description | `dont_log_ce`는 corrected errors의 logging을 disable합니다. 보고된 모든 corrected errors는 조용히 clear됩니다. Corrected errors에 전혀 관심이 없는 경우 사용할 수 있습니다. |
x86 machine-check sysfs ABI: cmci disabled
93-97| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/devices/system/machinecheck/machinecheckX/cmci_disabled |
| Date | 2009년 6월 |
| Contact | Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> |
| Description | `cmci_disabled`는 CMCI feature를 disable합니다. |
CPU와 bank별 hardware error reporting
sysfs-mce:1-37CPU별 machine-check directory와 bank subevent mask가 corrected·uncorrected hardware error의 보고 범위를 결정합니다.