← Documents Documentation/admin-guide/perf/starfive_starlink_pmu.rst GitHub 원문 ↗

Linux 6.18.37 · Administration / Performance

StarFive StarLink PMU

StarLink CNoC의 64-bit counter, overflow interrupt와 system-wide event를 설명합니다.

Source pathDocumentation/admin-guide/perf/starfive_starlink_pmu.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

운영 요약

starfive_starlink_pmu.rst:1-46

공유 MMIO uncore PMU의 event alias와 담당 CPU를 sysfs에서 확인하고, 최대 16개 event counter와 독립 cycle counter를 system-wide로 측정합니다.

관점핵심
위치CPU cluster와 L3 memory system을 잇는 StarLink CNoC
종류System-wide uncore PMU
Event counter최대 16개 programmable 64-bit counter
Cycle counter독립된 64-bit counter
OverflowInterrupt 지원
접근Memory Mapped I/O 전용, 연결된 core가 공유
제한Sampling/task attach 미지원, system-wide counting만 지원

2. 영어 원문 전체

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

원문 전체 펼치기
1 ================================================
2 StarFive StarLink Performance Monitor Unit (PMU)
3 ================================================
4
5 StarFive StarLink Performance Monitor Unit (PMU) exists within the
6 StarLink Coherent Network on Chip (CNoC) that connects multiple CPU
7 clusters with an L3 memory system.
8
9 The uncore PMU supports overflow interrupt, up to 16 programmable 64bit
10 event counters, and an independent 64bit cycle counter.
11 The PMU can only be accessed via Memory Mapped I/O and are common to the
12 cores connected to the same PMU.
13
14 Driver exposes supported PMU events in sysfs "events" directory under::
15
16 /sys/bus/event_source/devices/starfive_starlink_pmu/events/
17
18 Driver exposes cpu used to handle PMU events in sysfs "cpumask" directory
19 under::
20
21 /sys/bus/event_source/devices/starfive_starlink_pmu/cpumask/
22
23 Driver describes the format of config (event ID) in sysfs "format" directory
24 under::
25
26 /sys/bus/event_source/devices/starfive_starlink_pmu/format/
27
28 Example of perf usage::
29
30 $ perf list
31
32 starfive_starlink_pmu/cycles/ [Kernel PMU event]
33 starfive_starlink_pmu/read_hit/ [Kernel PMU event]
34 starfive_starlink_pmu/read_miss/ [Kernel PMU event]
35 starfive_starlink_pmu/read_request/ [Kernel PMU event]
36 starfive_starlink_pmu/release_request/ [Kernel PMU event]
37 starfive_starlink_pmu/write_hit/ [Kernel PMU event]
38 starfive_starlink_pmu/write_miss/ [Kernel PMU event]
39 starfive_starlink_pmu/write_request/ [Kernel PMU event]
40 starfive_starlink_pmu/writeback/ [Kernel PMU event]
41
42
43 $ perf stat -a -e /starfive_starlink_pmu/cycles/ sleep 1
44
45 Sampling is not supported. As a result, "perf record" is not supported.
46 Attaching to a task is not supported, only system-wide counting is supported.
47

3. 한국어 전문 번역

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

StarLink CNoC uncore PMU

1-12

StarFive 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
StarLink perf event 분류
분류Event alias
Cycle`cycles`
Read`read_hit`, `read_miss`, `read_request`
Write`write_hit`, `write_miss`, `write_request`
Coherency`release_request`, `writeback`

원문의 정렬된 perf list를 event 기능별 구조화 표로 다시 나타냈습니다.

Sampling과 `perf record`, task attach는 지원하지 않습니다. System-wide counting만 지원합니다.