요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
====================================================================
Marvell Odyssey LLC-TAD Performance Monitoring Unit (PMU UNCORE)
====================================================================
Each TAD provides eight 64-bit counters for monitoring
cache behavior.The driver always configures the same counter for
all the TADs. The user would end up effectively reserving one of
eight counters in every TAD to look across all TADs.
The occurrences of events are aggregated and presented to the user
at the end of running the workload. The driver does not provide a
way for the user to partition TADs so that different TADs are used for
different applications.
The performance events reflect various internal or interface activities.
By combining the values from multiple performance counters, cache
performance can be measured in terms such as: cache miss rate, cache
allocations, interface retry rate, internal resource occupancy, etc.
The PMU driver exposes the available events and format options under sysfs::
/sys/bus/event_source/devices/tad/events/
/sys/bus/event_source/devices/tad/format/
Examples::
$ 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>
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-23PMU 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>
전체·DTG·LTG allocation과 hit counter, request/tag/cycle counter를 기능별로 묶었습니다.
운영 요약
mrvl-odyssey-tad-pmu.rst:1-37모든 TAD의 같은 번호 counter를 하나의 측정에 예약하고 allocation, hit, tag event를 합산하여 cache performance 지표를 계산합니다.