요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
================================================
StarFive StarLink Performance Monitor Unit (PMU)
================================================
StarFive StarLink Performance Monitor Unit (PMU) exists within the
StarLink Coherent Network on Chip (CNoC) that connects multiple CPU
clusters with an L3 memory system.
The uncore PMU supports overflow interrupt, up to 16 programmable 64bit
event counters, and an independent 64bit cycle counter.
The PMU can only be accessed via Memory Mapped I/O and are common to the
cores connected to the same PMU.
Driver exposes supported PMU events in sysfs "events" directory under::
/sys/bus/event_source/devices/starfive_starlink_pmu/events/
Driver exposes cpu used to handle PMU events in sysfs "cpumask" directory
under::
/sys/bus/event_source/devices/starfive_starlink_pmu/cpumask/
Driver describes the format of config (event ID) in sysfs "format" directory
under::
/sys/bus/event_source/devices/starfive_starlink_pmu/format/
Example of perf usage::
$ perf list
starfive_starlink_pmu/cycles/ [Kernel PMU event]
starfive_starlink_pmu/read_hit/ [Kernel PMU event]
starfive_starlink_pmu/read_miss/ [Kernel PMU event]
starfive_starlink_pmu/read_request/ [Kernel PMU event]
starfive_starlink_pmu/release_request/ [Kernel PMU event]
starfive_starlink_pmu/write_hit/ [Kernel PMU event]
starfive_starlink_pmu/write_miss/ [Kernel PMU event]
starfive_starlink_pmu/write_request/ [Kernel PMU event]
starfive_starlink_pmu/writeback/ [Kernel PMU event]
$ perf stat -a -e /starfive_starlink_pmu/cycles/ sleep 1
Sampling is not supported. As a result, "perf record" is not supported.
Attaching to a task is not supported, only system-wide counting is supported.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
StarLink CNoC uncore PMU
1-12StarFive StarLink PMU는 여러 CPU cluster와 L3 memory system을 연결하는 StarLink Coherent Network on Chip(CNoC) 안에 있습니다.
이 uncore PMU는 overflow interrupt, 최대 16개의 programmable 64-bit event counter, 독립된 64-bit cycle counter를 지원합니다. Memory Mapped I/O로만 접근할 수 있으며 같은 PMU에 연결된 core들이 공유합니다.
Event, CPU와 config discovery
13-27지원 PMU event는 sysfs `events` directory에 노출됩니다.
/sys/bus/event_source/devices/starfive_starlink_pmu/events/
PMU event 처리에 사용하는 CPU는 `cpumask`에서 확인합니다.
/sys/bus/event_source/devices/starfive_starlink_pmu/cpumask/
Event ID인 config의 형식은 `format` directory에 설명됩니다.
/sys/bus/event_source/devices/starfive_starlink_pmu/format/
| Sysfs 항목 | 경로 또는 용도 |
|---|---|
| Events | `/sys/bus/event_source/devices/starfive_starlink_pmu/events/` |
| CPU affinity | `/sys/bus/event_source/devices/starfive_starlink_pmu/cpumask/` |
| Config format | `/sys/bus/event_source/devices/starfive_starlink_pmu/format/` |
| Perf 범위 | `perf stat -a`를 사용하는 system-wide 측정 |
Perf event와 system-wide 측정
28-46`perf list`에서 cycle, read/write hit와 miss, request, release, writeback event alias를 확인할 수 있습니다. 마지막 명령은 cycle event를 system-wide로 1초 동안 측정합니다.
$ perf list
starfive_starlink_pmu/cycles/ [Kernel PMU event]
starfive_starlink_pmu/read_hit/ [Kernel PMU event]
starfive_starlink_pmu/read_miss/ [Kernel PMU event]
starfive_starlink_pmu/read_request/ [Kernel PMU event]
starfive_starlink_pmu/release_request/ [Kernel PMU event]
starfive_starlink_pmu/write_hit/ [Kernel PMU event]
starfive_starlink_pmu/write_miss/ [Kernel PMU event]
starfive_starlink_pmu/write_request/ [Kernel PMU event]
starfive_starlink_pmu/writeback/ [Kernel PMU event]
$ perf stat -a -e /starfive_starlink_pmu/cycles/ sleep 1
원문의 정렬된 perf list를 event 기능별 구조화 표로 다시 나타냈습니다.
Sampling과 `perf record`, task attach는 지원하지 않습니다. System-wide counting만 지원합니다.
운영 요약
starfive_starlink_pmu.rst:1-46공유 MMIO uncore PMU의 event alias와 담당 CPU를 sysfs에서 확인하고, 최대 16개 event counter와 독립 cycle counter를 system-wide로 측정합니다.