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

Linux 6.18.37 · Administration / Performance

Qualcomm Centriq L3 Cache PMU

Centriq L3 slice별 uncore PMU, userspace 집계와 long counter를 설명합니다.

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

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

1. 요약·해설

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

운영 요약

qcom_l3_pmu.rst:1-26

Socket의 각 L3 slice를 별도 PMU로 측정하고 userspace에서 합산하며, 긴 측정은 `lc` flag로 64-bit hardware chaining을 사용합니다.

관점핵심
대상Qualcomm Datacenter Technologies Centriq SoC
구조Socket의 모든 core가 공유하는 여러 L3 slice
PMU 장치Slice마다 `l3cache_<socket>_<instance>`
집계 책임Userspace가 slice 결과를 합산
물리 counter32-bit, flat 8-bit event space
긴 counter`lc` flag로 hardware chaining한 virtual 64-bit counter
제한Sampling, `perf record`, per-task session 미지원

2. 영어 원문 전체

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

원문 전체 펼치기
1 ===========================================================================
2 Qualcomm Datacenter Technologies L3 Cache Performance Monitoring Unit (PMU)
3 ===========================================================================
4
5 This driver supports the L3 cache PMUs found in Qualcomm Datacenter Technologies
6 Centriq SoCs. The L3 cache on these SOCs is composed of multiple slices, shared
7 by all cores within a socket. Each slice is exposed as a separate uncore perf
8 PMU with device name l3cache_<socket>_<instance>. User space is responsible
9 for aggregating across slices.
10
11 The driver provides a description of its available events and configuration
12 options in sysfs, see /sys/bus/event_source/devices/l3cache*. Given that these are uncore PMUs
13 the driver also exposes a "cpumask" sysfs attribute which contains a mask
14 consisting of one CPU per socket which will be used to handle all the PMU
15 events on that socket.
16
17 The hardware implements 32bit event counters and has a flat 8bit event space
18 exposed via the "event" format attribute. In addition to the 32bit physical
19 counters the driver supports virtual 64bit hardware counters by using hardware
20 counter chaining. This feature is exposed via the "lc" (long counter) format
21 flag. E.g.::
22
23 perf stat -e l3cache_0_0/read-miss,lc/
24
25 Given that these are uncore PMUs the driver does not support sampling, therefore
26 "perf record" will not work. Per-task perf sessions are not supported.
27

3. 한국어 전문 번역

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

Socket의 L3 slice PMU

1-9

이 driver는 Qualcomm Datacenter Technologies Centriq SoC의 L3 cache PMU를 지원합니다. L3 cache는 한 socket의 모든 core가 공유하는 여러 slice로 구성됩니다.

각 slice는 `l3cache_<socket>_<instance>`라는 별도 uncore perf PMU로 노출됩니다. Slice 전체의 결과를 합치는 일은 userspace의 책임입니다.

Sysfs, 32-bit와 64-bit counter

10-23

Event와 설정 option은 `/sys/bus/event_source/devices/l3cache*`에서 확인합니다. Uncore PMU이므로 `cpumask`에는 socket마다 모든 PMU event를 처리할 CPU 하나가 들어 있습니다.

Hardware는 32-bit event counter와 `event` format attribute로 노출되는 평평한 8-bit event 공간을 구현합니다. Driver는 hardware counter chaining으로 virtual 64-bit hardware counter도 제공합니다.

긴 counter는 `lc`(long counter) format flag로 선택합니다. 다음 명령은 socket 0의 첫 L3 slice에서 `read-miss`를 64-bit counter로 측정합니다.

perf stat -e l3cache_0_0/read-miss,lc/
항목동작
Event 선택`event` format attribute의 8-bit 값
32-bit기본 physical event counter
64-bit두 counter를 hardware chaining한 virtual counter
`lc`Long counter format flag
`cpumask`Socket마다 PMU event를 처리할 CPU 하나

Uncore 측정 제한

24-26

Uncore PMU이므로 sampling을 지원하지 않아 `perf record`가 동작하지 않으며, per-task perf session도 지원하지 않습니다.