← Documents Documentation/gpu/panfrost.rst GitHub 원문 ↗

Linux 6.18.37 · GPU·DRM

drm/Panfrost Mali Driver

Panfrost fdinfo engine·memory 통계와 profiling 제어를 설명합니다.

Source pathDocumentation/gpu/panfrost.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약·해설

panfrost.rst:1-49

Panfrost fdinfo engine·memory 통계와 profiling 제어를 설명합니다.

문서 위치
항목
SourceDocumentation/gpu/panfrost.rst
분량49 source lines
관련drm-client-usage-stats · fragment · vertex-tiler

Source와 관련 개념입니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0+
2
3 =========================
4 drm/Panfrost Mali Driver
5 =========================
6
7 .. _panfrost-usage-stats:
8
9 Panfrost DRM client usage stats implementation
10 ==============================================
11
12 The drm/Panfrost driver implements the DRM client usage stats specification as
13 documented in :ref:`drm-client-usage-stats`.
14
15 Example of the output showing the implemented key value pairs and entirety of
16 the currently possible format options:
17
18 ::
19 pos: 0
20 flags: 02400002
21 mnt_id: 27
22 ino: 531
23 drm-driver: panfrost
24 drm-client-id: 14
25 drm-engine-fragment: 1846584880 ns
26 drm-cycles-fragment: 1424359409
27 drm-maxfreq-fragment: 799999987 Hz
28 drm-curfreq-fragment: 799999987 Hz
29 drm-engine-vertex-tiler: 71932239 ns
30 drm-cycles-vertex-tiler: 52617357
31 drm-maxfreq-vertex-tiler: 799999987 Hz
32 drm-curfreq-vertex-tiler: 799999987 Hz
33 drm-total-memory: 290 MiB
34 drm-shared-memory: 0 MiB
35 drm-active-memory: 226 MiB
36 drm-resident-memory: 36496 KiB
37 drm-purgeable-memory: 128 KiB
38
39 Possible `drm-engine-` key names are: `fragment`, and `vertex-tiler`.
40 `drm-curfreq-` values convey the current operating frequency for that engine.
41
42 Users must bear in mind that engine and cycle sampling are disabled by default,
43 because of power saving concerns. `fdinfo` users and benchmark applications which
44 query the fdinfo file must make sure to toggle the job profiling status of the
45 driver by writing into the appropriate sysfs node::
46
47 echo <N> > /sys/bus/platform/drivers/panfrost/[a-f0-9]*.gpu/profiling
48
49 Where `N` is either `0` or `1`, depending on the desired enablement status.
50

3. 한국어 전문 번역

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

Panfrost DRM client usage stats

1-13

`drm/Panfrost` Mali driver는 `drm-client-usage-stats`에 문서화된 DRM client usage stats specification을 구현합니다. 원문 SPDX 라이선스는 `GPL-2.0+`이며 reference anchor는 `panfrost-usage-stats`입니다.

Panfrost usage stats 경로
Panfrost DRM clientDriver accountingDRM fdinfo key:value outputMonitoring·benchmark application

Client별 GPU·memory 사용량을 fdinfo로 노출합니다.

문서 연결
항목
Anchorpanfrost-usage-stats
Specificationdrm-client-usage-stats
Driverpanfrost

상위 usage stats 규격과 Panfrost 구현의 관계입니다.

.. SPDX-License-Identifier: GPL-2.0+

=========================
 drm/Panfrost Mali Driver
=========================

.. _panfrost-usage-stats:

Panfrost DRM client usage stats implementation
==============================================

The drm/Panfrost driver implements the DRM client usage stats specification as
documented in :ref:`drm-client-usage-stats`.

Panfrost fdinfo key와 profiling

14-49

예제 fdinfo는 file metadata인 `pos`, `flags`, `mnt_id`, `ino`와 DRM identity인 `drm-driver: panfrost`, `drm-client-id`를 보여 줍니다.

Engine key는 `fragment`와 `vertex-tiler`입니다. 각 engine에는 실행 시간 `drm-engine-*`(ns), cycle 수 `drm-cycles-*`, 최대·현재 주파수 `drm-maxfreq-*`·`drm-curfreq-*`(Hz)가 있습니다. `drm-curfreq-*`는 해당 engine의 현재 operating frequency를 나타냅니다.

Memory key는 `drm-total-memory`, `drm-shared-memory`, `drm-active-memory`, `drm-resident-memory`, `drm-purgeable-memory`이며 예제는 MiB·KiB 단위를 그대로 보여 줍니다.

전력 절감을 위해 engine·cycle sampling은 기본적으로 비활성화됩니다. fdinfo user와 benchmark는 `/sys/bus/platform/drivers/panfrost/[a-f0-9]*.gpu/profiling`에 `0` 또는 `1`을 써서 job profiling 상태를 명시적으로 껐다 켜야 합니다.

Panfrost fdinfo key
분류Key
Identitydrm-driver·drm-client-id
Engine timedrm-engine-fragment·drm-engine-vertex-tiler
Cyclesdrm-cycles-fragment·drm-cycles-vertex-tiler
Frequencydrm-maxfreq-*·drm-curfreq-*
Memorytotal·shared·active·resident·purgeable

Engine·frequency·memory accounting field입니다.

Panfrost profiling 활성화
GPU platform device의 profiling sysfs node 선택echo 1 > /sys/bus/platform/drivers/panfrost/[a-f0-9]*.gpu/profilingfdinfo에서 engine time·cycle·frequency query필요가 끝나면 echo 0으로 비활성화

Sampling을 켠 뒤 fdinfo를 읽습니다.


Example of the output showing the implemented key value pairs and entirety of
the currently possible format options:

::
      pos:    0
      flags:  02400002
      mnt_id: 27
      ino:    531
      drm-driver:     panfrost
      drm-client-id:  14
      drm-engine-fragment:    1846584880 ns
      drm-cycles-fragment:    1424359409
      drm-maxfreq-fragment:   799999987 Hz
      drm-curfreq-fragment:   799999987 Hz
      drm-engine-vertex-tiler:        71932239 ns
      drm-cycles-vertex-tiler:        52617357
      drm-maxfreq-vertex-tiler:       799999987 Hz
      drm-curfreq-vertex-tiler:       799999987 Hz
      drm-total-memory:       290 MiB
      drm-shared-memory:      0 MiB
      drm-active-memory:      226 MiB
      drm-resident-memory:    36496 KiB
      drm-purgeable-memory:   128 KiB

Possible `drm-engine-` key names are: `fragment`, and  `vertex-tiler`.
`drm-curfreq-` values convey the current operating frequency for that engine.

Users must bear in mind that engine and cycle sampling are disabled by default,
because of power saving concerns. `fdinfo` users and benchmark applications which
query the fdinfo file must make sure to toggle the job profiling status of the
driver by writing into the appropriate sysfs node::

    echo <N> > /sys/bus/platform/drivers/panfrost/[a-f0-9]*.gpu/profiling

Where `N` is either `0` or `1`, depending on the desired enablement status.