← Documents Documentation/admin-guide/perf/mrvl-odyssey-tad-pmu.rst GitHub 원문 ↗

Linux 6.18.37 · Administration / Performance

Marvell Odyssey LLC-TAD PMU

모든 LLC-TAD에서 동일 counter를 예약해 cache event를 집계하는 방식을 설명합니다.

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

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

1. 요약·해설

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

운영 요약

mrvl-odyssey-tad-pmu.rst:1-37

모든 TAD의 같은 번호 counter를 하나의 측정에 예약하고 allocation, hit, tag event를 합산하여 cache performance 지표를 계산합니다.

관점핵심
UnitMarvell Odyssey LLC-TAD
CountersTAD마다 8 x 64-bit
Driver모든 TAD에서 같은 counter를 설정
Result모든 TAD event occurrence를 workload 종료 후 aggregate
PartitionApplication별 TAD 분할 미지원
MetricsMiss rate, allocation, retry rate, resource occupancy

2. 영어 원문 전체

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

원문 전체 펼치기
1 ====================================================================
2 Marvell Odyssey LLC-TAD Performance Monitoring Unit (PMU UNCORE)
3 ====================================================================
4
5 Each TAD provides eight 64-bit counters for monitoring
6 cache behavior.The driver always configures the same counter for
7 all the TADs. The user would end up effectively reserving one of
8 eight counters in every TAD to look across all TADs.
9 The occurrences of events are aggregated and presented to the user
10 at the end of running the workload. The driver does not provide a
11 way for the user to partition TADs so that different TADs are used for
12 different applications.
13
14 The performance events reflect various internal or interface activities.
15 By combining the values from multiple performance counters, cache
16 performance can be measured in terms such as: cache miss rate, cache
17 allocations, interface retry rate, internal resource occupancy, etc.
18
19 The PMU driver exposes the available events and format options under sysfs::
20
21 /sys/bus/event_source/devices/tad/events/
22 /sys/bus/event_source/devices/tad/format/
23
24 Examples::
25
26 $ perf list | grep tad
27 tad/tad_alloc_any/ [Kernel PMU event]
28 tad/tad_alloc_dtg/ [Kernel PMU event]
29 tad/tad_alloc_ltg/ [Kernel PMU event]
30 tad/tad_hit_any/ [Kernel PMU event]
31 tad/tad_hit_dtg/ [Kernel PMU event]
32 tad/tad_hit_ltg/ [Kernel PMU event]
33 tad/tad_req_msh_in_exlmn/ [Kernel PMU event]
34 tad/tad_tag_rd/ [Kernel PMU event]
35 tad/tad_tot_cycle/ [Kernel PMU event]
36
37 $ perf stat -e tad_alloc_dtg,tad_alloc_ltg,tad_alloc_any,tad_hit_dtg,tad_hit_ltg,tad_hit_any,tad_tag_rd <workload>
38

3. 한국어 전문 번역

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

모든 TAD의 동일 counter 집계

1-17

각 Marvell Odyssey LLC-TAD는 cache behavior를 감시하는 64-bit counters 8개를 제공합니다. Driver는 모든 TAD에 항상 같은 번호의 `same counter`를 설정합니다.

제약동작
예약 단위모든 TAD에서 같은 번호 counter 하나
관찰 범위모든 TAD를 가로질러 집계
표시 시점Workload 실행 종료 후
분리 불가서로 다른 application에 서로 다른 TAD 지정 불가

Event occurrence는 workload 종료 뒤 집계(`aggregated`)되며 application별로 `partition TADs`하는 방법은 제공되지 않습니다. 여러 performance counter 값을 조합하면 cache miss rate, cache allocations, interface retry rate, internal resource occupancy 같은 cache performance 지표를 계산할 수 있습니다.

TAD event와 format

18-23

PMU driver는 사용 가능한 event와 format option을 sysfs에 노출합니다.

/sys/bus/event_source/devices/tad/events/
/sys/bus/event_source/devices/tad/format/
항목경로
Events`/sys/bus/event_source/devices/tad/events/`
Format`/sys/bus/event_source/devices/tad/format/`

Allocation, hit, tag event

24-37

`perf list | grep tad`로 allocation, hit, request, tag read, total cycle event를 찾고 workload에 필요한 event를 함께 측정합니다.

$ perf list | grep tad
     tad/tad_alloc_any/                                 [Kernel PMU event]
     tad/tad_alloc_dtg/                                 [Kernel PMU event]
     tad/tad_alloc_ltg/                                 [Kernel PMU event]
     tad/tad_hit_any/                                   [Kernel PMU event]
     tad/tad_hit_dtg/                                   [Kernel PMU event]
     tad/tad_hit_ltg/                                   [Kernel PMU event]
     tad/tad_req_msh_in_exlmn/                          [Kernel PMU event]
     tad/tad_tag_rd/                                    [Kernel PMU event]
     tad/tad_tot_cycle/                                 [Kernel PMU event]

$ perf stat -e tad_alloc_dtg,tad_alloc_ltg,tad_alloc_any,tad_hit_dtg,tad_hit_ltg,tad_hit_any,tad_tag_rd <workload>
LLC-TAD event 관계
기능Event
Allocation`tad_alloc_any`, `tad_alloc_dtg`, `tad_alloc_ltg`
Hit`tad_hit_any`, `tad_hit_dtg`, `tad_hit_ltg`
Request`tad_req_msh_in_exlmn`
Tag`tad_tag_rd`
Time base`tad_tot_cycle`

전체·DTG·LTG allocation과 hit counter, request/tag/cycle counter를 기능별로 묶었습니다.