← Documents Documentation/ABI/testing/sysfs-power GitHub 원문 ↗

Linux 6.18.37 · ABI / testing

System power-management sysfs ABI

System sleep·hibernation modes, PM tracing과 wakeup coordination, autosleep/wake locks, suspend diagnostics·failure counters와 hardware sleep timing을 정의합니다.

Source pathDocumentation/ABI/testing/sysfs-power
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

Sleep states와 suspend mode

sysfs-power:1-41

Unified /sys/power interface에서 freeze·standby·mem·disk state와 mem suspend의 s2idle·shallow·deep operating mode를 선택합니다.

Hibernation methods와 image

sysfs-power:42-107

Firmware·platform·shutdown·reboot 방식과 testproc·test diagnostic sequence, image-size upper limit를 제어합니다.

PM trace와 callback scheduling

sysfs-power:108-169

RTC hash로 suspend/resume hang을 추적하고 loadable-module devices를 대조하며 asynchronous callback 실행을 선택합니다.

Wakeup race, autosleep와 wake locks

sysfs-power:170-258

Wakeup count handshake로 race를 막고 active sources가 없을 때 autosleep을 반복하며 named wake locks를 timeout 또는 explicit unlock으로 관리합니다.

Timing, IRQ, debug와 resume offset

sysfs-power:259-309

Device PM duration, first wakeup IRQ, suspend/hibernation debug logging과 hibernation disk offset을 제공합니다.

Suspend failures와 hardware sleep time

sysfs-power:310-444

Suspend pipeline 단계별 success/failure counts, 마지막 실패 device·errno·step과 microsecond hardware-sleep durations를 기록합니다.

Suspend 전 filesystem sync

sysfs-power:445-456

User space freeze와 device suspend 사이의 sync() 실행 여부를 runtime value와 build-time default로 제어합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 What: /sys/power/
2 Date: August 2006
3 Contact: Rafael J. Wysocki <[email protected]>
4 Description:
5 The /sys/power directory will contain files that will
6 provide a unified interface to the power management
7 subsystem.
8
9 What: /sys/power/state
10 Date: November 2016
11 Contact: Rafael J. Wysocki <[email protected]>
12 Description:
13 The /sys/power/state file controls system sleep states.
14 Reading from this file returns the available sleep state
15 labels, which may be "mem" (suspend), "standby" (power-on
16 suspend), "freeze" (suspend-to-idle) and "disk" (hibernation).
17
18 Writing one of the above strings to this file causes the system
19 to transition into the corresponding state, if available.
20
21 See Documentation/admin-guide/pm/sleep-states.rst for more
22 information.
23
24 What: /sys/power/mem_sleep
25 Date: November 2016
26 Contact: Rafael J. Wysocki <[email protected]>
27 Description:
28 The /sys/power/mem_sleep file controls the operating mode of
29 system suspend. Reading from it returns the available modes
30 as "s2idle" (always present), "shallow" and "deep" (present if
31 supported). The mode that will be used on subsequent attempts
32 to suspend the system (by writing "mem" to the /sys/power/state
33 file described above) is enclosed in square brackets.
34
35 Writing one of the above strings to this file causes the mode
36 represented by it to be used on subsequent attempts to suspend
37 the system.
38
39 See Documentation/admin-guide/pm/sleep-states.rst for more
40 information.
41
42 What: /sys/power/disk
43 Date: September 2006
44 Contact: Rafael J. Wysocki <[email protected]>
45 Description:
46 The /sys/power/disk file controls the operating mode of the
47 suspend-to-disk mechanism. Reading from this file returns
48 the name of the method by which the system will be put to
49 sleep on the next suspend. There are four methods supported:
50
51 'firmware' - means that the memory image will be saved to disk
52 by some firmware, in which case we also assume that the
53 firmware will handle the system suspend.
54
55 'platform' - the memory image will be saved by the kernel and
56 the system will be put to sleep by the platform driver (e.g.
57 ACPI or other PM registers).
58
59 'shutdown' - the memory image will be saved by the kernel and
60 the system will be powered off.
61
62 'reboot' - the memory image will be saved by the kernel and
63 the system will be rebooted.
64
65 Additionally, /sys/power/disk can be used to turn on one of the
66 two testing modes of the suspend-to-disk mechanism: 'testproc'
67 or 'test'. If the suspend-to-disk mechanism is in the
68 'testproc' mode, writing 'disk' to /sys/power/state will cause
69 the kernel to disable nonboot CPUs and freeze tasks, wait for 5
70 seconds, unfreeze tasks and enable nonboot CPUs. If it is in
71 the 'test' mode, writing 'disk' to /sys/power/state will cause
72 the kernel to disable nonboot CPUs and freeze tasks, shrink
73 memory, suspend devices, wait for 5 seconds, resume devices,
74 unfreeze tasks and enable nonboot CPUs. Then, we are able to
75 look in the log messages and work out, for example, which code
76 is being slow and which device drivers are misbehaving.
77
78 The suspend-to-disk method may be chosen by writing to this
79 file one of the accepted strings:
80
81 - 'firmware'
82 - 'platform'
83 - 'shutdown'
84 - 'reboot'
85 - 'testproc'
86 - 'test'
87
88 It will only change to 'firmware' or 'platform' if the system
89 supports that.
90
91 What: /sys/power/image_size
92 Date: August 2006
93 Contact: Rafael J. Wysocki <[email protected]>
94 Description:
95 The /sys/power/image_size file controls the size of the image
96 created by the suspend-to-disk mechanism. It can be written a
97 string representing a non-negative integer that will be used
98 as an upper limit of the image size, in bytes. The kernel's
99 suspend-to-disk code will do its best to ensure the image size
100 will not exceed this number. However, if it turns out to be
101 impossible, the kernel will try to suspend anyway using the
102 smallest image possible. In particular, if "0" is written to
103 this file, the suspend image will be as small as possible.
104
105 Reading from this file will display the current image size
106 limit, which is set to around 2/5 of available RAM by default.
107
108 What: /sys/power/pm_trace
109 Date: August 2006
110 Contact: Rafael J. Wysocki <[email protected]>
111 Description:
112 The /sys/power/pm_trace file controls the code which saves the
113 last PM event point in the RTC across reboots, so that you can
114 debug a machine that just hangs during suspend (or more
115 commonly, during resume). Namely, the RTC is only used to save
116 the last PM event point if this file contains '1'. Initially
117 it contains '0' which may be changed to '1' by writing a
118 string representing a nonzero integer into it.
119
120 To use this debugging feature you should attempt to suspend
121 the machine, then reboot it and run::
122
123 dmesg -s 1000000 | grep 'hash matches'
124
125 If you do not get any matches (or they appear to be false
126 positives), it is possible that the last PM event point
127 referred to a device created by a loadable kernel module. In
128 this case cat /sys/power/pm_trace_dev_match (see below) after
129 your system is started up and the kernel modules are loaded.
130
131 CAUTION: Using it will cause your machine's real-time (CMOS)
132 clock to be set to a random invalid time after a resume.
133
134 What: /sys/power/pm_trace_dev_match
135 Date: October 2010
136 Contact: James Hogan <[email protected]>
137 Description:
138 The /sys/power/pm_trace_dev_match file contains the name of the
139 device associated with the last PM event point saved in the RTC
140 across reboots when pm_trace has been used. More precisely it
141 contains the list of current devices (including those
142 registered by loadable kernel modules since boot) which match
143 the device hash in the RTC at boot, with a newline after each
144 one.
145
146 The advantage of this file over the hash matches printed to the
147 kernel log (see /sys/power/pm_trace), is that it includes
148 devices created after boot by loadable kernel modules.
149
150 Due to the small hash size necessary to fit in the RTC, it is
151 possible that more than one device matches the hash, in which
152 case further investigation is required to determine which
153 device is causing the problem. Note that genuine RTC clock
154 values (such as when pm_trace has not been used), can still
155 match a device and output its name here.
156
157 What: /sys/power/pm_async
158 Date: January 2009
159 Contact: Rafael J. Wysocki <[email protected]>
160 Description:
161 The /sys/power/pm_async file controls the switch allowing the
162 user space to enable or disable asynchronous suspend and resume
163 of devices. If enabled, this feature will cause some device
164 drivers' suspend and resume callbacks to be executed in parallel
165 with each other and with the main suspend thread. It is enabled
166 if this file contains "1", which is the default. It may be
167 disabled by writing "0" to this file, in which case all devices
168 will be suspended and resumed synchronously.
169
170 What: /sys/power/wakeup_count
171 Date: July 2010
172 Contact: Rafael J. Wysocki <[email protected]>
173 Description:
174 The /sys/power/wakeup_count file allows user space to put the
175 system into a sleep state while taking into account the
176 concurrent arrival of wakeup events. Reading from it returns
177 the current number of registered wakeup events and it blocks if
178 some wakeup events are being processed at the time the file is
179 read from. Writing to it will only succeed if the current
180 number of wakeup events is equal to the written value and, if
181 successful, will make the kernel abort a subsequent transition
182 to a sleep state if any wakeup events are reported after the
183 write has returned.
184
185 What: /sys/power/reserved_size
186 Date: May 2011
187 Contact: Rafael J. Wysocki <[email protected]>
188 Description:
189 The /sys/power/reserved_size file allows user space to control
190 the amount of memory reserved for allocations made by device
191 drivers during the "device freeze" stage of hibernation. It can
192 be written a string representing a non-negative integer that
193 will be used as the amount of memory to reserve for allocations
194 made by device drivers' "freeze" callbacks, in bytes.
195
196 Reading from this file will display the current value, which is
197 set to 1 MB by default.
198
199 What: /sys/power/autosleep
200 Date: April 2012
201 Contact: Rafael J. Wysocki <[email protected]>
202 Description:
203 The /sys/power/autosleep file can be written one of the strings
204 returned by reads from /sys/power/state. If that happens, a
205 work item attempting to trigger a transition of the system to
206 the sleep state represented by that string is queued up. This
207 attempt will only succeed if there are no active wakeup sources
208 in the system at that time. After every execution, regardless
209 of whether or not the attempt to put the system to sleep has
210 succeeded, the work item requeues itself until user space
211 writes "off" to /sys/power/autosleep.
212
213 Reading from this file causes the last string successfully
214 written to it to be returned.
215
216 What: /sys/power/wake_lock
217 Date: February 2012
218 Contact: Rafael J. Wysocki <[email protected]>
219 Description:
220 The /sys/power/wake_lock file allows user space to create
221 wakeup source objects and activate them on demand (if one of
222 those wakeup sources is active, reads from the
223 /sys/power/wakeup_count file block or return false). When a
224 string without white space is written to /sys/power/wake_lock,
225 it will be assumed to represent a wakeup source name. If there
226 is a wakeup source object with that name, it will be activated
227 (unless active already). Otherwise, a new wakeup source object
228 will be registered, assigned the given name and activated.
229 If a string written to /sys/power/wake_lock contains white
230 space, the part of the string preceding the white space will be
231 regarded as a wakeup source name and handled as descrived above.
232 The other part of the string will be regarded as a timeout (in
233 nanoseconds) such that the wakeup source will be automatically
234 deactivated after it has expired. The timeout, if present, is
235 set regardless of the current state of the wakeup source object
236 in question.
237
238 Reads from this file return a string consisting of the names of
239 wakeup sources created with the help of it that are active at
240 the moment, separated with spaces.
241
242
243 What: /sys/power/wake_unlock
244 Date: February 2012
245 Contact: Rafael J. Wysocki <[email protected]>
246 Description:
247 The /sys/power/wake_unlock file allows user space to deactivate
248 wakeup sources created with the help of /sys/power/wake_lock.
249 When a string is written to /sys/power/wake_unlock, it will be
250 assumed to represent the name of a wakeup source to deactivate.
251
252 If a wakeup source object of that name exists and is active at
253 the moment, it will be deactivated.
254
255 Reads from this file return a string consisting of the names of
256 wakeup sources created with the help of /sys/power/wake_lock
257 that are inactive at the moment, separated with spaces.
258
259 What: /sys/power/pm_print_times
260 Date: May 2012
261 Contact: Sameer Nanda <[email protected]>
262 Description:
263 The /sys/power/pm_print_times file allows user space to
264 control whether the time taken by devices to suspend and
265 resume is printed. These prints are useful for hunting down
266 devices that take too long to suspend or resume.
267
268 Writing a "1" enables this printing while writing a "0"
269 disables it. The default value is "0". Reading from this file
270 will display the current value.
271
272 What: /sys/power/pm_wakeup_irq
273 Date: April 2015
274 Contact: Alexandra Yates <[email protected]>
275 Description:
276 The /sys/power/pm_wakeup_irq file reports to user space the IRQ
277 number of the first wakeup interrupt (that is, the first
278 interrupt from an IRQ line armed for system wakeup) seen by the
279 kernel during the most recent system suspend/resume cycle.
280
281 This output is useful for system wakeup diagnostics of spurious
282 wakeup interrupts.
283
284 What: /sys/power/pm_debug_messages
285 Date: July 2017
286 Contact: Rafael J. Wysocki <[email protected]>
287 Description:
288 The /sys/power/pm_debug_messages file controls the printing
289 of debug messages from the system suspend/hiberbation
290 infrastructure to the kernel log.
291
292 Writing a "1" to this file enables the debug messages and
293 writing a "0" (default) to it disables them. Reads from
294 this file return the current value.
295
296 What: /sys/power/resume_offset
297 Date: April 2018
298 Contact: Mario Limonciello <[email protected]>
299 Description:
300 This file is used for telling the kernel an offset into a disk
301 to use when hibernating the system such as with a swap file.
302
303 Reads from this file will display the current offset
304 the kernel will be using on the next hibernation
305 attempt.
306
307 Using this sysfs file will override any values that were
308 set using the kernel command line for disk offset.
309
310 What: /sys/power/suspend_stats
311 Date: July 2019
312 Contact: Kalesh Singh <[email protected]>
313 Description:
314 The /sys/power/suspend_stats directory contains suspend related
315 statistics.
316
317 What: /sys/power/suspend_stats/success
318 Date: July 2019
319 Contact: Kalesh Singh <[email protected]>
320 Description:
321 The /sys/power/suspend_stats/success file contains the number
322 of times entering system sleep state succeeded.
323
324 What: /sys/power/suspend_stats/fail
325 Date: July 2019
326 Contact: Kalesh Singh <[email protected]>
327 Description:
328 The /sys/power/suspend_stats/fail file contains the number
329 of times entering system sleep state failed.
330
331 What: /sys/power/suspend_stats/failed_freeze
332 Date: July 2019
333 Contact: Kalesh Singh <[email protected]>
334 Description:
335 The /sys/power/suspend_stats/failed_freeze file contains the
336 number of times freezing processes failed.
337
338 What: /sys/power/suspend_stats/failed_prepare
339 Date: July 2019
340 Contact: Kalesh Singh <[email protected]>
341 Description:
342 The /sys/power/suspend_stats/failed_prepare file contains the
343 number of times preparing all non-sysdev devices for
344 a system PM transition failed.
345
346 What: /sys/power/suspend_stats/failed_resume
347 Date: July 2019
348 Contact: Kalesh Singh <[email protected]>
349 Description:
350 The /sys/power/suspend_stats/failed_resume file contains the
351 number of times executing "resume" callbacks of
352 non-sysdev devices failed.
353
354 What: /sys/power/suspend_stats/failed_resume_early
355 Date: July 2019
356 Contact: Kalesh Singh <[email protected]>
357 Description:
358 The /sys/power/suspend_stats/failed_resume_early file contains
359 the number of times executing "early resume" callbacks
360 of devices failed.
361
362 What: /sys/power/suspend_stats/failed_resume_noirq
363 Date: July 2019
364 Contact: Kalesh Singh <[email protected]>
365 Description:
366 The /sys/power/suspend_stats/failed_resume_noirq file contains
367 the number of times executing "noirq resume" callbacks
368 of devices failed.
369
370 What: /sys/power/suspend_stats/failed_suspend
371 Date: July 2019
372 Contact: Kalesh Singh <[email protected]>
373 Description:
374 The /sys/power/suspend_stats/failed_suspend file contains
375 the number of times executing "suspend" callbacks
376 of all non-sysdev devices failed.
377
378 What: /sys/power/suspend_stats/failed_suspend_late
379 Date: July 2019
380 Contact: Kalesh Singh <[email protected]>
381 Description:
382 The /sys/power/suspend_stats/failed_suspend_late file contains
383 the number of times executing "late suspend" callbacks
384 of all devices failed.
385
386 What: /sys/power/suspend_stats/failed_suspend_noirq
387 Date: July 2019
388 Contact: Kalesh Singh <[email protected]>
389 Description:
390 The /sys/power/suspend_stats/failed_suspend_noirq file contains
391 the number of times executing "noirq suspend" callbacks
392 of all devices failed.
393
394 What: /sys/power/suspend_stats/last_failed_dev
395 Date: July 2019
396 Contact: Kalesh Singh <[email protected]>
397 Description:
398 The /sys/power/suspend_stats/last_failed_dev file contains
399 the last device for which a suspend/resume callback failed.
400
401 What: /sys/power/suspend_stats/last_failed_errno
402 Date: July 2019
403 Contact: Kalesh Singh <[email protected]>
404 Description:
405 The /sys/power/suspend_stats/last_failed_errno file contains
406 the errno of the last failed attempt at entering
407 system sleep state.
408
409 What: /sys/power/suspend_stats/last_failed_step
410 Date: July 2019
411 Contact: Kalesh Singh <[email protected]>
412 Description:
413 The /sys/power/suspend_stats/last_failed_step file contains
414 the last failed step in the suspend/resume path.
415
416 What: /sys/power/suspend_stats/last_hw_sleep
417 Date: June 2023
418 Contact: Mario Limonciello <[email protected]>
419 Description:
420 The /sys/power/suspend_stats/last_hw_sleep file
421 contains the duration of time spent in a hardware sleep
422 state in the most recent system suspend-resume cycle.
423 This number is measured in microseconds.
424
425 What: /sys/power/suspend_stats/total_hw_sleep
426 Date: June 2023
427 Contact: Mario Limonciello <[email protected]>
428 Description:
429 The /sys/power/suspend_stats/total_hw_sleep file
430 contains the aggregate of time spent in a hardware sleep
431 state since the kernel was booted. This number
432 is measured in microseconds.
433
434 What: /sys/power/suspend_stats/max_hw_sleep
435 Date: June 2023
436 Contact: Mario Limonciello <[email protected]>
437 Description:
438 The /sys/power/suspend_stats/max_hw_sleep file
439 contains the maximum amount of time that the hardware can
440 report for time spent in a hardware sleep state. When sleep
441 cycles are longer than this time, the values for
442 'total_hw_sleep' and 'last_hw_sleep' may not be accurate.
443 This number is measured in microseconds.
444
445 What: /sys/power/sync_on_suspend
446 Date: October 2019
447 Contact: Jonas Meurer <[email protected]>
448 Description:
449 This file controls whether or not the kernel will sync()
450 filesystems during system suspend (after freezing user space
451 and before suspending devices).
452
453 Writing a "1" to this file enables the sync() and writing a "0"
454 disables it. Reads from the file return the current value.
455 The default is "1" if the build-time "SUSPEND_SKIP_SYNC" config
456 flag is unset, or "0" otherwise.
457

3. 한국어 전문 번역

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

System power sysfs ABI: power management root

1-8
항목한국어 전문 번역
What/sys/power/
Date2006년 8월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/` directory에는 power-management subsystem에 대한 unified interface를 제공하는 files가 들어 있습니다.

System power sysfs ABI: state

9-23
항목한국어 전문 번역
What/sys/power/state
Date2016년 11월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/state`는 system sleep states를 제어합니다. Read하면 available sleep-state labels를 반환하며 `mem`은 suspend, `standby`는 power-on suspend, `freeze`는 suspend-to-idle, `disk`는 hibernation입니다. Available label 하나를 쓰면 system이 대응 state로 transition합니다. 자세한 내용은 `Documentation/admin-guide/pm/sleep-states.rst`를 참조합니다.
System sleep-state labels
LabelSleep state
freezeSuspend-to-idle
standbyPower-on suspend
memSuspend using selected mem_sleep mode
diskHibernation

state file의 read labels와 corresponding transitions입니다.

System power sysfs ABI: mem sleep

24-41
항목한국어 전문 번역
What/sys/power/mem_sleep
Date2016년 11월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/mem_sleep`은 system suspend의 operating mode를 제어합니다. Read하면 항상 존재하는 `s2idle`과 지원되는 경우의 `shallow`, `deep`을 반환합니다. 이후 `/sys/power/state`에 `mem`을 쓸 때 사용할 mode는 square brackets로 둘러싸여 표시됩니다. Mode string 하나를 쓰면 이후 suspend attempts에 그 mode를 사용합니다. 자세한 내용은 `Documentation/admin-guide/pm/sleep-states.rst`를 참조합니다.
mem_sleep suspend modes
ModeAvailabilityMeaning
s2idleAlways presentSuspend-to-idle
shallowIf supportedShallow system suspend
deepIf supportedDeep system suspend

Available modes와 availability를 정리합니다. Selected mode는 read output에서 square brackets로 표시됩니다.

Selecting the mem suspend mode
Write s2idle, shallow or deepSelected mode appears in [brackets]Write mem to /sys/power/stateSuspend in selected mode

mem_sleep selection은 다음 state=mem transition에 적용됩니다.

System power sysfs ABI: disk

42-90
항목한국어 전문 번역
What/sys/power/disk
Date2006년 9월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/disk`는 suspend-to-disk mechanism의 operating mode를 제어합니다. `firmware`는 firmware가 memory image를 disk에 저장하고 system suspend도 처리함을 뜻합니다. `platform`은 kernel이 image를 저장하고 ACPI 또는 다른 PM registers 같은 platform driver가 system을 sleep 상태로 만듭니다. `shutdown`은 kernel이 image를 저장한 뒤 power off하고, `reboot`는 image를 저장한 뒤 reboot합니다. Test mode `testproc`에서 `/sys/power/state`에 `disk`를 쓰면 nonboot CPUs를 disable하고 tasks를 freeze한 뒤 5 seconds를 기다렸다가 tasks를 unfreeze하고 CPUs를 enable합니다. `test` mode는 그 사이에 memory shrink, device suspend, 5-second wait와 device resume까지 수행합니다. Logs로 느린 code와 오동작하는 drivers를 찾을 수 있습니다. Accepted strings는 `firmware`, `platform`, `shutdown`, `reboot`, `testproc`, `test`이며 `firmware`와 `platform`은 system이 지원할 때만 선택됩니다.
Suspend-to-disk methods
MethodImage saved byFinal action
firmwareFirmwareFirmware handles suspend
platformKernelPlatform driver puts system to sleep
shutdownKernelPower off
rebootKernelReboot

Memory image writer와 final platform action을 구분합니다.

Suspend-to-disk test modes
ModeSequence
testprocDisable nonboot CPUs; freeze tasks; wait 5s; unfreeze; enable CPUs
testDisable CPUs; freeze; shrink memory; suspend devices; wait 5s; resume; unfreeze; enable CPUs

두 test modes가 실행하는 단계와 5-second wait를 비교합니다.

System power sysfs ABI: image size

91-107
항목한국어 전문 번역
What/sys/power/image_size
Date2006년 8월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/image_size`는 suspend-to-disk image size를 제어합니다. Non-negative integer string을 쓰면 bytes 단위 upper limit로 사용하며 kernel은 image가 이를 넘지 않도록 최선을 다합니다. 불가능하면 가능한 가장 작은 image로 suspend를 계속 시도합니다. `0`을 쓰면 image를 가능한 한 작게 만듭니다. Read하면 current limit를 표시하며 default는 available RAM의 약 `2/5`입니다.
Hibernation image-size behavior
Input or stateBehavior
Non-negative integerUpper limit in bytes
0Make image as small as possible
DefaultAround 2/5 of available RAM
Limit impossibleTry suspend with smallest possible image

Requested upper limit, zero special case와 default를 정리합니다.

System power sysfs ABI: pm trace

108-133
항목한국어 전문 번역
What/sys/power/pm_trace
Date2006년 8월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/pm_trace`는 마지막 PM event point를 reboot 사이에도 RTC에 저장하여 suspend 또는 resume 중 hang을 debug하게 합니다. File이 `1`일 때만 RTC를 사용하며 initial value는 `0`입니다. Nonzero integer string을 쓰면 enable됩니다. Suspend를 시도하고 reboot한 뒤 `dmesg -s 1000000 | grep 'hash matches'`를 실행합니다. Match가 없거나 false positive로 보이면 loadable kernel module이 만든 device일 수 있으므로 modules load 뒤 `/sys/power/pm_trace_dev_match`를 읽습니다. 주의: 이 기능을 사용하면 resume 뒤 real-time CMOS clock이 random invalid time으로 설정됩니다.
PM trace debugging
Write nonzero to pm_traceAttempt suspendHang or resume failureRebootSearch hash matches
No reliable matchLoad kernel modulesRead pm_trace_dev_matchInvestigate matching devices

RTC hash를 reboot 뒤 kernel log 또는 module-aware device list와 대조합니다.

dmesg -s 1000000 | grep 'hash matches'
cat /sys/power/pm_trace_dev_match

CAUTION: pm_trace 사용 뒤 resume하면 real-time CMOS clock이 random invalid time으로 바뀝니다.

System power sysfs ABI: pm trace dev match

134-156
항목한국어 전문 번역
What/sys/power/pm_trace_dev_match
Date2010년 10월
KernelVersion
ContactJames Hogan <[email protected]>
Description`/sys/power/pm_trace_dev_match`는 `pm_trace`가 사용됐을 때 reboot 사이 RTC에 저장된 마지막 PM event point와 연결된 device names를 담습니다. Boot 시 RTC device hash와 match하는 current devices를, boot 뒤 loadable kernel modules가 register한 devices까지 포함해 한 줄에 하나씩 나열합니다. RTC에 맞추기 위한 hash가 작아 둘 이상의 device가 match할 수 있으므로 원인 device를 추가 조사해야 합니다. `pm_trace`를 사용하지 않은 genuine RTC clock value도 우연히 device와 match할 수 있습니다.

System power sysfs ABI: pm async

157-169
항목한국어 전문 번역
What/sys/power/pm_async
Date2009년 1월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/pm_async`는 userspace가 asynchronous device suspend/resume을 enable 또는 disable하게 합니다. Enable하면 일부 driver callbacks가 서로 및 main suspend thread와 parallel로 실행됩니다. Default `1`은 enabled이고 `0`을 쓰면 모든 devices를 synchronously suspend/resume합니다.
Device PM callback scheduling
ValueCallback execution
1 (default)Eligible callbacks run asynchronously in parallel
0All devices suspend and resume synchronously

pm_async가 suspend/resume callbacks의 scheduling model을 선택합니다.

System power sysfs ABI: wakeup count

170-184
항목한국어 전문 번역
What/sys/power/wakeup_count
Date2010년 7월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/wakeup_count`는 concurrent wakeup events를 고려하면서 userspace가 system을 sleep state로 전환하게 합니다. Read하면 registered wakeup events의 current count를 반환하며 event 처리 중이면 block합니다. Write는 current count가 쓴 value와 같을 때만 성공합니다. 성공한 write 뒤 새 wakeup event가 보고되면 kernel이 subsequent sleep transition을 abort합니다.
Race-free wakeup-count handshake
Read wakeup_countWait for in-flight eventsWrite same countNo new eventAllow sleep transition
Write countNew wakeup event arrivesAbort subsequent sleep transition

Read와 matching write 사이에 wakeup activity가 생기면 sleep transition을 막습니다.

System power sysfs ABI: reserved size

185-198
항목한국어 전문 번역
What/sys/power/reserved_size
Date2011년 5월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/reserved_size`는 hibernation의 "device freeze" stage에서 device-driver `freeze` callbacks가 allocation할 수 있도록 reserve할 memory를 제어합니다. Non-negative integer string을 bytes 단위 reserve amount로 씁니다. Read하면 current value를 표시하며 default는 `1 MB`입니다.

System power sysfs ABI: autosleep

199-215
항목한국어 전문 번역
What/sys/power/autosleep
Date2012년 4월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/autosleep`에는 `/sys/power/state` read가 반환한 strings 중 하나를 쓸 수 있습니다. 그러면 해당 sleep state로 transition을 시도하는 work item이 queue됩니다. Active wakeup sources가 없을 때만 성공합니다. 성공 여부와 관계없이 실행할 때마다 userspace가 `off`를 쓸 때까지 work item이 자신을 다시 queue합니다. Read하면 마지막으로 성공적으로 쓴 string을 반환합니다.
Autosleep work loop
Write sleep-state labelQueue work itemCheck active wakeup sourcesAttempt sleep if noneRequeue work item
Write offStop autosleep loop

Active wakeup sources가 없을 때 sleep을 시도하고 off가 올 때까지 계속 requeue합니다.

System power sysfs ABI: wake lock

216-242
항목한국어 전문 번역
What/sys/power/wake_lock
Date2012년 2월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/wake_lock`은 userspace가 wakeup-source objects를 만들고 필요할 때 activate하게 합니다. Active source가 있으면 `/sys/power/wakeup_count` read가 block하거나 false를 반환합니다. Whitespace 없는 string은 source name입니다. 같은 name의 object가 있으면 activate하고, 없으면 새 object를 register·name·activate합니다. Whitespace가 있으면 앞부분은 name, 뒷부분은 nanoseconds 단위 timeout이며 timeout은 object current state와 관계없이 설정됩니다. Timeout이 expire하면 source가 자동 deactivate됩니다. Read하면 이 interface로 만들어졌고 현재 active인 source names를 spaces로 구분해 반환합니다.
wake_lock write syntax
InputEffect
nameCreate if needed and activate source
name timeout_nsActivate and set auto-deactivation timeout

Name-only activation과 optional nanosecond timeout을 구분합니다.

Wake-source lifecycle
Write name to wake_lockFind or register sourceActivateListed by wake_lock read
Timeout expires or write name to wake_unlockDeactivateListed by wake_unlock read

wake_lock은 create/activate하고 wake_unlock 또는 timeout은 deactivate합니다.

System power sysfs ABI: wake unlock

243-258
항목한국어 전문 번역
What/sys/power/wake_unlock
Date2012년 2월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/wake_unlock`은 `/sys/power/wake_lock`으로 만든 wakeup sources를 deactivate하게 합니다. 쓴 string을 deactivate할 source name으로 사용하며 해당 object가 존재하고 active이면 deactivate합니다. Read하면 이 interface로 만들어졌고 현재 inactive인 source names를 spaces로 구분해 반환합니다.

System power sysfs ABI: pm print times

259-271
항목한국어 전문 번역
What/sys/power/pm_print_times
Date2012년 5월
KernelVersion
ContactSameer Nanda <[email protected]>
Description`/sys/power/pm_print_times`는 device suspend/resume에 걸린 시간을 print할지 제어합니다. 느린 device를 찾는 데 유용합니다. `1`은 printing enable, `0`은 disable이며 default는 `0`입니다. Read하면 current value를 표시합니다.
Power-management diagnostic toggles
Attribute10Default
pm_print_timesPrint device PM timesDo not print0
pm_debug_messagesEnable debug messagesDisable0
sync_on_suspendRun sync()Skip sync()1 unless SUSPEND_SKIP_SYNC is set

Timing, debug logging과 filesystem sync controls의 enable values입니다.

System power sysfs ABI: pm wakeup irq

272-283
항목한국어 전문 번역
What/sys/power/pm_wakeup_irq
Date2015년 4월
KernelVersion
ContactAlexandra Yates <[email protected]>
Description`/sys/power/pm_wakeup_irq`는 가장 최근 system suspend/resume cycle에서 kernel이 본 첫 wakeup interrupt, 즉 system wakeup용으로 armed된 IRQ line의 첫 interrupt 번호를 userspace에 보고합니다. Spurious wakeup interrupt 진단에 유용합니다.

System power sysfs ABI: pm debug messages

284-295
항목한국어 전문 번역
What/sys/power/pm_debug_messages
Date2017년 7월
KernelVersion
ContactRafael J. Wysocki <[email protected]>
Description`/sys/power/pm_debug_messages`는 system suspend/hibernation infrastructure의 debug messages를 kernel log에 print할지 제어합니다. `1`은 enable, default `0`은 disable이며 read하면 current value를 반환합니다.

System power sysfs ABI: resume offset

296-309
항목한국어 전문 번역
What/sys/power/resume_offset
Date2018년 4월
KernelVersion
ContactMario Limonciello <[email protected]>
Description`/sys/power/resume_offset`은 swap file 같은 disk를 사용해 hibernate할 때 kernel이 사용할 disk offset을 지정합니다. Read하면 다음 hibernation attempt에 사용할 current offset을 표시합니다. 이 sysfs file을 사용하면 disk offset에 대해 kernel command line으로 설정한 value를 override합니다.

System power sysfs ABI: suspend stats

310-316
항목한국어 전문 번역
What/sys/power/suspend_stats
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats` directory에는 suspend-related statistics가 들어 있습니다.
Suspend failure counters and records
GroupAttributes
Outcomesuccess, fail
Freeze/preparefailed_freeze, failed_prepare
Suspend callbacksfailed_suspend, failed_suspend_late, failed_suspend_noirq
Resume callbacksfailed_resume_noirq, failed_resume_early, failed_resume
Last failurelast_failed_dev, last_failed_errno, last_failed_step

Suspend/resume pipeline의 failure phase와 last-failure records를 묶었습니다.

System power sysfs ABI: success

317-323
항목한국어 전문 번역
What/sys/power/suspend_stats/success
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/success`는 system sleep state 진입에 성공한 횟수입니다.

System power sysfs ABI: fail

324-330
항목한국어 전문 번역
What/sys/power/suspend_stats/fail
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/fail`은 system sleep state 진입에 실패한 횟수입니다.

System power sysfs ABI: failed freeze

331-337
항목한국어 전문 번역
What/sys/power/suspend_stats/failed_freeze
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/failed_freeze`는 process freezing이 실패한 횟수입니다.

System power sysfs ABI: failed prepare

338-345
항목한국어 전문 번역
What/sys/power/suspend_stats/failed_prepare
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/failed_prepare`는 system PM transition을 위해 모든 non-sysdev devices를 prepare하는 데 실패한 횟수입니다.

System power sysfs ABI: failed resume

346-353
항목한국어 전문 번역
What/sys/power/suspend_stats/failed_resume
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/failed_resume`은 non-sysdev devices의 `resume` callbacks 실행이 실패한 횟수입니다.

System power sysfs ABI: failed resume early

354-361
항목한국어 전문 번역
What/sys/power/suspend_stats/failed_resume_early
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/failed_resume_early`는 device `early resume` callbacks 실행이 실패한 횟수입니다.

System power sysfs ABI: failed resume noirq

362-369
항목한국어 전문 번역
What/sys/power/suspend_stats/failed_resume_noirq
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/failed_resume_noirq`는 device `noirq resume` callbacks 실행이 실패한 횟수입니다.

System power sysfs ABI: failed suspend

370-377
항목한국어 전문 번역
What/sys/power/suspend_stats/failed_suspend
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/failed_suspend`는 모든 non-sysdev devices의 `suspend` callbacks 실행이 실패한 횟수입니다.

System power sysfs ABI: failed suspend late

378-385
항목한국어 전문 번역
What/sys/power/suspend_stats/failed_suspend_late
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/failed_suspend_late`는 모든 devices의 `late suspend` callbacks 실행이 실패한 횟수입니다.

System power sysfs ABI: failed suspend noirq

386-393
항목한국어 전문 번역
What/sys/power/suspend_stats/failed_suspend_noirq
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/failed_suspend_noirq`는 모든 devices의 `noirq suspend` callbacks 실행이 실패한 횟수입니다.

System power sysfs ABI: last failed dev

394-400
항목한국어 전문 번역
What/sys/power/suspend_stats/last_failed_dev
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/last_failed_dev`는 suspend/resume callback이 마지막으로 실패한 device를 담습니다.

System power sysfs ABI: last failed errno

401-408
항목한국어 전문 번역
What/sys/power/suspend_stats/last_failed_errno
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/last_failed_errno`는 system sleep state 진입의 마지막 실패 attempt에서 나온 errno를 담습니다.

System power sysfs ABI: last failed step

409-415
항목한국어 전문 번역
What/sys/power/suspend_stats/last_failed_step
Date2019년 7월
KernelVersion
ContactKalesh Singh <[email protected]>
Description`/sys/power/suspend_stats/last_failed_step`은 suspend/resume path에서 마지막으로 실패한 step을 담습니다.

System power sysfs ABI: last hw sleep

416-424
항목한국어 전문 번역
What/sys/power/suspend_stats/last_hw_sleep
Date2023년 6월
KernelVersion
ContactMario Limonciello <[email protected]>
Description`/sys/power/suspend_stats/last_hw_sleep`은 가장 최근 system suspend-resume cycle에서 hardware sleep state에 머문 duration을 microseconds 단위로 담습니다.
Hardware sleep-time statistics
AttributeScope
last_hw_sleepMost recent suspend-resume cycle
total_hw_sleepAggregate since kernel boot
max_hw_sleepMaximum duration hardware can report
Accuracy limitCycles longer than max_hw_sleep may make last_hw_sleep and total_hw_sleep inaccurate.

모든 values는 microseconds 단위입니다.

System power sysfs ABI: total hw sleep

425-433
항목한국어 전문 번역
What/sys/power/suspend_stats/total_hw_sleep
Date2023년 6월
KernelVersion
ContactMario Limonciello <[email protected]>
Description`/sys/power/suspend_stats/total_hw_sleep`은 kernel boot 이후 hardware sleep state에 머문 aggregate time을 microseconds 단위로 담습니다.

System power sysfs ABI: max hw sleep

434-444
항목한국어 전문 번역
What/sys/power/suspend_stats/max_hw_sleep
Date2023년 6월
KernelVersion
ContactMario Limonciello <[email protected]>
Description`/sys/power/suspend_stats/max_hw_sleep`은 hardware가 sleep-state duration으로 보고할 수 있는 maximum time을 microseconds 단위로 담습니다. Sleep cycle이 이보다 길면 `total_hw_sleep`과 `last_hw_sleep` values가 정확하지 않을 수 있습니다.

System power sysfs ABI: sync on suspend

445-456
항목한국어 전문 번역
What/sys/power/sync_on_suspend
Date2019년 10월
KernelVersion
ContactJonas Meurer <[email protected]>
Description`/sys/power/sync_on_suspend`는 system suspend 중 userspace를 freeze한 뒤 devices를 suspend하기 전에 kernel이 filesystems에 `sync()`를 실행할지 제어합니다. `1`은 enable, `0`은 disable이며 read하면 current value를 반환합니다. Build-time `SUSPEND_SKIP_SYNC` config flag가 unset이면 default는 `1`, 그렇지 않으면 `0`입니다.