요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. SPDX-License-Identifier: GPL-2.0
===========================
Low Power Idle Table (LPIT)
===========================
To enumerate platform Low Power Idle states, Intel platforms are using
“Low Power Idle Table” (LPIT). More details about this table can be
downloaded from:
https://www.uefi.org/sites/default/files/resources/Intel_ACPI_Low_Power_S0_Idle.pdf
Residencies for each low power state can be read via FFH
(Function fixed hardware) or a memory mapped interface.
On platforms supporting S0ix sleep states, there can be two types of
residencies:
- CPU PKG C10 (Read via FFH interface)
- Platform Controller Hub (PCH) SLP_S0 (Read via memory mapped interface)
The following attributes are added dynamically to the cpuidle
sysfs attribute group::
/sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us
/sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us
The "low_power_idle_cpu_residency_us" attribute shows time spent
by the CPU package in PKG C10
The "low_power_idle_system_residency_us" attribute shows SLP_S0
residency, or system time spent with the SLP_S0# signal asserted.
This is the lowest possible system power state, achieved only when CPU is in
PKG C10 and all functional blocks in PCH are in a low power state.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
LPIT의 목적과 명세
1-10Intel 플랫폼은 플랫폼이 제공하는 Low Power Idle 상태를 운영체제에 열거하기 위해 Low Power Idle Table, 즉 LPIT를 사용한다. LPIT는 단순한 전원 상태 이름 목록이 아니라, 각 저전력 유휴 상태의 residency를 어떤 방식으로 읽을 수 있는지 설명하는 ACPI 표이다.
문서가 가리키는 Intel ACPI Low Power S0 Idle 명세 PDF에는 LPIT의 세부 형식이 정의되어 있다. 이 페이지는 Linux 사용자가 실제로 관찰할 수 있는 residency counter와 sysfs 노출 방식에 초점을 맞춘다.
Firmware 표에서 Linux의 관찰 지점까지 이어지는 핵심 대상을 구분한다.
.. SPDX-License-Identifier: GPL-2.0
===========================
Low Power Idle Table (LPIT)
===========================
To enumerate platform Low Power Idle states, Intel platforms are using
“Low Power Idle Table” (LPIT). More details about this table can be
downloaded from:
https://www.uefi.org/sites/default/files/resources/Intel_ACPI_Low_Power_S0_Idle.pdf
S0ix residency와 접근 인터페이스
11-19각 저전력 상태의 residency, 즉 해당 상태에 머문 누적 시간은 FFH 인터페이스 또는 memory-mapped 인터페이스를 통해 읽을 수 있다. 원문은 FFH를 `Function fixed hardware`라고 풀어 쓰며, Linux는 플랫폼이 기술한 접근 방식을 따라 counter를 읽는다.
S0ix sleep state를 지원하는 플랫폼에서는 두 종류의 residency가 존재할 수 있다. CPU package가 `PKG C10`에 있었던 시간은 FFH 인터페이스로 읽고, Platform Controller Hub의 `SLP_S0` residency는 memory-mapped 인터페이스로 읽는다.
두 값은 같은 저전력 상태를 중복 측정하는 값이 아니다. CPU residency는 processor package의 상태를 나타내고, system residency는 PCH를 포함한 플랫폼 전체가 더 깊은 저전력 조건에 도달한 시간을 나타낸다.
Counter가 나타내는 범위와 하드웨어 접근 방식을 함께 정리한다.
Residencies for each low power state can be read via FFH
(Function fixed hardware) or a memory mapped interface.
On platforms supporting S0ix sleep states, there can be two types of
residencies:
- CPU PKG C10 (Read via FFH interface)
- Platform Controller Hub (PCH) SLP_S0 (Read via memory mapped interface)
cpuidle sysfs 속성
20-25Linux는 LPIT 정보를 사용할 수 있을 때 다음 두 속성을 cpuidle sysfs attribute group에 동적으로 추가한다. 따라서 모든 시스템에 이 파일이 항상 존재하는 것은 아니며, firmware가 해당 counter를 기술하고 kernel이 이를 지원할 때 노출된다.
두 경로의 단위는 이름 끝의 `_us`가 나타내듯 microseconds이다. 사용자 공간 도구는 CPU package와 system 전체의 저전력 도달 시간을 서로 구분해 읽어야 한다.
각 sysfs 속성과 그 값이 나타내는 residency를 대응시킨다.
The following attributes are added dynamically to the cpuidle
sysfs attribute group::
/sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us
/sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us
CPU와 system residency의 의미
26-33`low_power_idle_cpu_residency_us` 속성은 CPU package가 `PKG C10`에 머문 시간을 보여 준다. 이 값은 CPU 쪽 저전력 진입이 이루어졌는지를 나타내지만, 그것만으로 플랫폼 전체가 최저 전력 상태에 도달했다고 판단할 수는 없다.
`low_power_idle_system_residency_us` 속성은 `SLP_S0` residency, 다시 말해 `SLP_S0#` 신호가 asserted 상태였던 system 시간을 보여 준다. 신호 이름의 `#`는 active-low 표기를 보존한 것이며, asserted는 이 저전력 조건이 활성화되었음을 뜻한다.
System residency가 집계되는 상태는 가능한 가장 낮은 system power state이다. CPU가 `PKG C10`에 있고, 동시에 PCH의 모든 functional block이 저전력 상태에 들어가야만 이 조건이 성립한다.
CPU 조건과 PCH 조건이 모두 충족되어야 system counter가 나타내는 최저 전력 상태에 도달한다.
The "low_power_idle_cpu_residency_us" attribute shows time spent
by the CPU package in PKG C10
The "low_power_idle_system_residency_us" attribute shows SLP_S0
residency, or system time spent with the SLP_S0# signal asserted.
This is the lowest possible system power state, achieved only when CPU is in
PKG C10 and all functional blocks in PCH are in a low power state.
요약·해설
lpit.rst:1-33LPIT는 Intel 플랫폼의 Low Power Idle 상태와 residency counter 접근 방법을 ACPI로 기술한다. S0ix 플랫폼에서는 CPU `PKG C10` residency를 FFH로, PCH `SLP_S0` residency를 memory-mapped 인터페이스로 읽을 수 있다.
Linux는 지원되는 counter를 cpuidle sysfs에 microsecond 단위 속성으로 동적으로 노출한다. CPU 속성은 package의 `PKG C10` 체류 시간을, system 속성은 `SLP_S0#`가 asserted된 플랫폼 전체의 저전력 체류 시간을 나타낸다.
두 값을 비교할 때는 범위 차이가 핵심이다. CPU가 `PKG C10`에 들어가는 것만으로는 system residency가 증가하지 않으며, PCH의 모든 functional block도 저전력 상태여야 최저 system power state가 성립한다.
LPIT 기반 residency를 해석할 때 확인할 순서이다.