요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
==================================
ARM DynamIQ Shared Unit (DSU) PMU
==================================
ARM DynamIQ Shared Unit integrates one or more cores with an L3 memory system,
control logic and external interfaces to form a multicore cluster. The PMU
allows counting the various events related to the L3 cache, Snoop Control Unit
etc, using 32bit independent counters. It also provides a 64bit cycle counter.
The PMU can only be accessed via CPU system registers and are common to the
cores connected to the same DSU. Like most of the other uncore PMUs, DSU
PMU doesn't support process specific events and cannot be used in sampling mode.
The DSU provides a bitmap for a subset of implemented events via hardware
registers. There is no way for the driver to determine if the other events
are available or not. Hence the driver exposes only those events advertised
by the DSU, in "events" directory under::
/sys/bus/event_sources/devices/arm_dsu_<N>/
The user should refer to the TRM of the product to figure out the supported events
and use the raw event code for the unlisted events.
The driver also exposes the CPUs connected to the DSU instance in "associated_cpus".
e.g usage::
perf stat -a -e arm_dsu_0/cycles/
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
DynamIQ Shared Unit PMU
1-13`ARM DynamIQ Shared Unit (DSU) PMU`의 DSU는 하나 이상의 core를 L3 memory system, control logic, external interface와 통합해 multicore cluster를 구성합니다.
PMU는 `32bit independent counters`로 L3 cache, Snoop Control Unit 등에 관련된 여러 event를 count하고 64bit cycle counter도 제공합니다.
PMU는 `CPU system registers`로만 접근할 수 있고 같은 DSU에 연결된 core들이 공유합니다.
다른 uncore PMUs와 마찬가지로 `process specific events`와 sampling mode를 지원하지 않습니다.
Event discovery와 CPU 연결
14-25DSU는 hardware register를 통해 구현된 event subset의 bitmap을 제공합니다. Driver는 나머지 event의 가용성을 판단할 수 없으므로 DSU가 광고한 event만 다음 `events` directory에 노출합니다.
/sys/bus/event_sources/devices/arm_dsu_<N>/
지원 event는 product TRM에서 확인하며 목록에 없는 event는 raw event code를 사용합니다. Driver는 해당 DSU instance에 연결된 CPU도 `associated_cpus`에 노출합니다.
| 관점 | 동작 |
|---|---|
| Counter | 32-bit independent event counter와 64-bit cycle counter |
| Access | DSU에 연결된 core가 공유하는 CPU system register |
| Events | `events` directory에는 hardware bitmap이 광고한 subset만 노출 |
| Raw events | TRM에서 지원 여부를 확인하고 unlisted event에는 raw code 사용 |
| CPU mapping | `associated_cpus`에 DSU instance와 연결된 CPU 노출 |
System-wide 측정
26-29DSU 0의 cycle event를 system-wide로 측정하는 예시입니다.
perf stat -a -e arm_dsu_0/cycles/
운영 핵심
arm_dsu_pmu.rst:1-29Hardware가 광고한 event는 alias로 사용하고 나머지는 product TRM을 확인해 raw code로 system-wide 측정합니다.