요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
PCI BAR·DMA data와 device state
debugfs-driver-habanalabs:38-109Root user의 32·64-bit PCI BAR access, internal DRAM/SRAM DMA read, device state 변경, release watchdog와 최대 128MB DMA transaction size를 제어합니다.
Events, engines, I2C
debugfs-driver-habanalabs:111-174RAZWI·security events를 dmesg로 dump하고 acknowledge하며 engine status와 device CPU가 수행할 I2C transaction fields를 설정합니다. I2C interface는 secured firmware에서 제공되지 않습니다.
LED, memory scrub, MMU diagnostics
debugfs-driver-habanalabs:176-230Software LEDs와 DRAM scrub value를 제어하고 ASID·VA의 MMU translation 및 capability mask로 선택한 MMU errors를 조회합니다.
Monitor dump, server type, PCI power
debugfs-driver-habanalabs:232-267Protected config space의 monitor registers를 binary blob으로 dump하고 device server type과 PCI D0·D3Hot power state를 제공합니다.
Reset policy, state dumps, engine timeout
debugfs-driver-habanalabs:269-300Command submission timeout 때 reset을 건너뛸지, engine을 error에서 멈출지, timeout seconds를 설정하고 CS failure 직전 생성된 state dump history를 읽습니다.
Pinned user pointers와 virtual mappings
debugfs-driver-habanalabs:302-323DMA address에 pin·map된 user virtual addresses를 나열·검색하고 ASID별 active virtual mappings와 HW block user mappings를 표시합니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
What: /sys/kernel/debug/accel/<parent_device>/addr
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Sets the device address to be used for read or write through
PCI bar, or the device VA of a host mapped memory to be read or
written directly from the host. The latter option is allowed
only when the IOMMU is disabled.
The acceptable value is a string that starts with "0x"
What: /sys/kernel/debug/accel/<parent_device>/clk_gate
Date: May 2020
KernelVersion: 5.8
Contact: [email protected]
Description: This setting is now deprecated as clock gating is handled solely by the f/w
What: /sys/kernel/debug/accel/<parent_device>/command_buffers
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Displays a list with information about the currently allocated
command buffers
What: /sys/kernel/debug/accel/<parent_device>/command_submission
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Displays a list with information about the currently active
command submissions
What: /sys/kernel/debug/accel/<parent_device>/command_submission_jobs
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Displays a list with detailed information about each JOB (CB) of
each active command submission
What: /sys/kernel/debug/accel/<parent_device>/data32
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Allows the root user to read or write directly through the
device's PCI bar. Writing to this file generates a write
transaction while reading from the file generates a read
transaction. This custom interface is needed (instead of using
the generic Linux user-space PCI mapping) because the DDR bar
is very small compared to the DDR memory and only the driver can
move the bar before and after the transaction.
If the IOMMU is disabled, it also allows the root user to read
or write from the host a device VA of a host mapped memory
What: /sys/kernel/debug/accel/<parent_device>/data64
Date: Jan 2020
KernelVersion: 5.6
Contact: [email protected]
Description: Allows the root user to read or write 64 bit data directly
through the device's PCI bar. Writing to this file generates a
write transaction while reading from the file generates a read
transaction. This custom interface is needed (instead of using
the generic Linux user-space PCI mapping) because the DDR bar
is very small compared to the DDR memory and only the driver can
move the bar before and after the transaction.
If the IOMMU is disabled, it also allows the root user to read
or write from the host a device VA of a host mapped memory
What: /sys/kernel/debug/accel/<parent_device>/data_dma
Date: Apr 2021
KernelVersion: 5.13
Contact: [email protected]
Description: Allows the root user to read from the device's internal
memory (DRAM/SRAM) through a DMA engine.
This property is a binary blob that contains the result of the
DMA transfer.
This custom interface is needed (instead of using the generic
Linux user-space PCI mapping) because the amount of internal
memory is huge (>32GB) and reading it via the PCI bar will take
a very long time.
This interface doesn't support concurrency in the same device.
In GAUDI and GOYA, this action can cause undefined behavior
in case it is done while the device is executing user
workloads.
Only supported on GAUDI at this stage.
What: /sys/kernel/debug/accel/<parent_device>/device
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Enables the root user to set the device to specific state.
Valid values are "disable", "enable", "suspend", "resume".
User can read this property to see the valid values
What: /sys/kernel/debug/accel/<parent_device>/device_release_watchdog_timeout
Date: Oct 2022
KernelVersion: 6.2
Contact: [email protected]
Description: The watchdog timeout value in seconds for a device release upon
certain error cases, after which the device is reset.
What: /sys/kernel/debug/accel/<parent_device>/dma_size
Date: Apr 2021
KernelVersion: 5.13
Contact: [email protected]
Description: Specify the size of the DMA transaction when using DMA to read
from the device's internal memory. The value can not be larger
than 128MB. Writing to this value initiates the DMA transfer.
When the write is finished, the user can read the "data_dma"
blob
What: /sys/kernel/debug/accel/<parent_device>/dump_razwi_events
Date: Aug 2022
KernelVersion: 5.20
Contact: [email protected]
Description: Dumps all razwi events to dmesg if exist.
After reading the status register of an existing event
the routine will clear the status register.
Usage: cat dump_razwi_events
What: /sys/kernel/debug/accel/<parent_device>/dump_security_violations
Date: Jan 2021
KernelVersion: 5.12
Contact: [email protected]
Description: Dumps all security violations to dmesg. This will also ack
all security violations meanings those violations will not be
dumped next time user calls this API
What: /sys/kernel/debug/accel/<parent_device>/engines
Date: Jul 2019
KernelVersion: 5.3
Contact: [email protected]
Description: Displays the status registers values of the device engines and
their derived idle status
What: /sys/kernel/debug/accel/<parent_device>/i2c_addr
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Sets I2C device address for I2C transaction that is generated
by the device's CPU, Not available when device is loaded with secured
firmware
What: /sys/kernel/debug/accel/<parent_device>/i2c_bus
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Sets I2C bus address for I2C transaction that is generated by
the device's CPU, Not available when device is loaded with secured
firmware
What: /sys/kernel/debug/accel/<parent_device>/i2c_data
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Triggers an I2C transaction that is generated by the device's
CPU. Writing to this file generates a write transaction while
reading from the file generates a read transaction, Not available
when device is loaded with secured firmware
What: /sys/kernel/debug/accel/<parent_device>/i2c_len
Date: Dec 2021
KernelVersion: 5.17
Contact: [email protected]
Description: Sets I2C length in bytes for I2C transaction that is generated by
the device's CPU, Not available when device is loaded with secured
firmware
What: /sys/kernel/debug/accel/<parent_device>/i2c_reg
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Sets I2C register id for I2C transaction that is generated by
the device's CPU, Not available when device is loaded with secured
firmware
What: /sys/kernel/debug/accel/<parent_device>/led0
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Sets the state of the first S/W led on the device, Not available
when device is loaded with secured firmware
What: /sys/kernel/debug/accel/<parent_device>/led1
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Sets the state of the second S/W led on the device, Not available
when device is loaded with secured firmware
What: /sys/kernel/debug/accel/<parent_device>/led2
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Sets the state of the third S/W led on the device, Not available
when device is loaded with secured firmware
What: /sys/kernel/debug/accel/<parent_device>/memory_scrub
Date: May 2022
KernelVersion: 5.19
Contact: [email protected]
Description: Allows the root user to scrub the dram memory. The scrubbing
value can be set using the debugfs file memory_scrub_val.
What: /sys/kernel/debug/accel/<parent_device>/memory_scrub_val
Date: May 2022
KernelVersion: 5.19
Contact: [email protected]
Description: The value to which the dram will be set to when the user
scrubs the dram using 'memory_scrub' debugfs file and
the scrubbing value when using module param 'memory_scrub'
What: /sys/kernel/debug/accel/<parent_device>/mmu
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Displays the hop values and physical address for a given ASID
and virtual address. The user should write the ASID and VA into
the file and then read the file to get the result.
e.g. to display info about VA 0x1000 for ASID 1 you need to do:
echo "1 0x1000" > /sys/kernel/debug/accel/<parent_device>/mmu
What: /sys/kernel/debug/accel/<parent_device>/mmu_error
Date: Mar 2021
KernelVersion: 5.12
Contact: [email protected]
Description: Check and display page fault or access violation mmu errors for
all MMUs specified in mmu_cap_mask.
e.g. to display error info for MMU hw cap bit 9, you need to do:
echo "0x200" > /sys/kernel/debug/accel/<parent_device>/mmu_error
cat /sys/kernel/debug/accel/<parent_device>/mmu_error
What: /sys/kernel/debug/accel/<parent_device>/monitor_dump
Date: Mar 2022
KernelVersion: 5.19
Contact: [email protected]
Description: Allows the root user to dump monitors status from the device's
protected config space.
This property is a binary blob that contains the result of the
monitors registers dump.
This custom interface is needed (instead of using the generic
Linux user-space PCI mapping) because this space is protected
and cannot be accessed using PCI read.
This interface doesn't support concurrency in the same device.
Only supported on GAUDI.
What: /sys/kernel/debug/accel/<parent_device>/monitor_dump_trig
Date: Mar 2022
KernelVersion: 5.19
Contact: [email protected]
Description: Triggers dump of monitor data. The value to trigger the operation
must be 1. Triggering the monitor dump operation initiates dump of
current registers values of all monitors.
When the write is finished, the user can read the "monitor_dump"
blob
What: /sys/kernel/debug/accel/<parent_device>/server_type
Date: Feb 2024
KernelVersion: 6.11
Contact: [email protected]
Description: Exposes the device's server type, maps to enum hl_server_type.
What: /sys/kernel/debug/accel/<parent_device>/set_power_state
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Sets the PCI power state. Valid values are "1" for D0 and "2"
for D3Hot
What: /sys/kernel/debug/accel/<parent_device>/skip_reset_on_timeout
Date: Jun 2021
KernelVersion: 5.13
Contact: [email protected]
Description: Sets the skip reset on timeout option for the device. Value of
"0" means device will be reset in case some CS has timed out,
otherwise it will not be reset.
What: /sys/kernel/debug/accel/<parent_device>/state_dump
Date: Oct 2021
KernelVersion: 5.15
Contact: [email protected]
Description: Gets the state dump occurring on a CS timeout or failure.
State dump is used for debug and is created each time in case of
a problem in a CS execution, before reset.
Reading from the node returns the newest state dump available.
Writing an integer X discards X state dumps, so that the
next read would return X+1-st newest state dump.
What: /sys/kernel/debug/accel/<parent_device>/stop_on_err
Date: Mar 2020
KernelVersion: 5.6
Contact: [email protected]
Description: Sets the stop-on_error option for the device engines. Value of
"0" is for disable, otherwise enable.
Relevant only for GOYA and GAUDI.
What: /sys/kernel/debug/accel/<parent_device>/timeout_locked
Date: Sep 2021
KernelVersion: 5.16
Contact: [email protected]
Description: Sets the command submission timeout value in seconds.
What: /sys/kernel/debug/accel/<parent_device>/userptr
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Displays a list with information about the current user
pointers (user virtual addresses) that are pinned and mapped
to DMA addresses
What: /sys/kernel/debug/accel/<parent_device>/userptr_lookup
Date: Oct 2021
KernelVersion: 5.15
Contact: [email protected]
Description: Allows to search for specific user pointers (user virtual
addresses) that are pinned and mapped to DMA addresses, and see
their resolution to the specific dma address.
What: /sys/kernel/debug/accel/<parent_device>/vm
Date: Jan 2019
KernelVersion: 5.1
Contact: [email protected]
Description: Displays a list with information about all the active virtual
address mappings per ASID and all user mappings of HW blocks
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Address selector, clock gating, command queues
1-36| What | Date / KernelVersion | Contact | 설명 |
|---|---|---|---|
| /sys/kernel/debug/accel/<parent_device>/addr | 2019년 1월 / 5.1 | [email protected] | PCI BAR를 통해 읽거나 쓸 device address를 설정합니다. 또는 host가 직접 읽고 쓸 host-mapped memory의 device VA를 설정할 수 있지만 이 방식은 IOMMU가 disabled인 경우에만 허용됩니다. 허용값은 0x로 시작하는 문자열입니다. |
| /sys/kernel/debug/accel/<parent_device>/clk_gate | 2020년 5월 / 5.8 | [email protected] | Clock gating을 firmware만 처리하므로 현재 deprecated된 설정입니다. |
| /sys/kernel/debug/accel/<parent_device>/command_buffers | 2019년 1월 / 5.1 | [email protected] | 현재 할당된 command buffers의 정보를 목록으로 표시합니다. |
| /sys/kernel/debug/accel/<parent_device>/command_submission | 2019년 1월 / 5.1 | [email protected] | 현재 active command submissions의 정보를 목록으로 표시합니다. |
| /sys/kernel/debug/accel/<parent_device>/command_submission_jobs | 2019년 1월 / 5.1 | [email protected] | 각 active command submission에 포함된 모든 JOB(CB)의 상세 정보를 목록으로 표시합니다. |
PCI BAR와 DMA data access, device state
38-109| What | Date / KernelVersion | Contact | 설명 |
|---|---|---|---|
| /sys/kernel/debug/accel/<parent_device>/data32 | 2019년 1월 / 5.1 | [email protected] | Root user가 device PCI BAR를 통해 직접 32-bit data를 읽고 씁니다. 쓰기는 write transaction, 읽기는 read transaction을 만듭니다. DDR memory에 비해 DDR BAR가 매우 작아 transaction 전후 BAR를 옮길 수 있는 driver 전용 interface가 필요합니다. IOMMU가 disabled이면 host-mapped memory의 device VA도 host에서 읽고 쓸 수 있습니다. |
| /sys/kernel/debug/accel/<parent_device>/data64 | 2020년 1월 / 5.6 | [email protected] | Root user가 device PCI BAR를 통해 직접 64-bit data를 읽고 씁니다. 쓰기는 write transaction, 읽기는 read transaction을 만듭니다. 작은 DDR BAR를 driver가 transaction 전후 이동해야 하므로 generic userspace PCI mapping 대신 이 interface를 사용합니다. IOMMU가 disabled이면 host-mapped memory의 device VA도 host에서 읽고 쓸 수 있습니다. |
| /sys/kernel/debug/accel/<parent_device>/data_dma | 2021년 4월 / 5.13 | [email protected] | Root user가 DMA engine으로 device internal memory(DRAM/SRAM)를 읽습니다. DMA 결과를 담은 binary blob입니다. Internal memory가 매우 커서(32GB 초과) PCI BAR로 읽으면 오래 걸리므로 제공됩니다. 같은 device에서 concurrency를 지원하지 않습니다. GAUDI와 GOYA에서 user workload 실행 중 수행하면 undefined behavior가 발생할 수 있으며, 현재는 GAUDI만 지원합니다. |
| /sys/kernel/debug/accel/<parent_device>/device | 2019년 1월 / 5.1 | [email protected] | Root user가 device state를 설정합니다. 유효값은 "disable", "enable", "suspend", "resume"이며 읽으면 유효값 목록을 볼 수 있습니다. |
| /sys/kernel/debug/accel/<parent_device>/device_release_watchdog_timeout | 2022년 10월 / 6.2 | [email protected] | 특정 error cases에서 device release를 기다리는 watchdog timeout seconds입니다. 시간이 지나면 device를 reset합니다. |
| /sys/kernel/debug/accel/<parent_device>/dma_size | 2021년 4월 / 5.13 | [email protected] | DMA로 internal memory를 읽을 transaction size를 지정합니다. 128MB보다 클 수 없습니다. 값을 쓰면 DMA transfer가 시작되고 write가 끝난 뒤 data_dma blob을 읽을 수 있습니다. |
addr가 access 대상을 고르고 data32/64는 이동 가능한 PCI BAR를 사용한다. 큰 internal memory dump는 dma_size write로 DMA를 시작한 뒤 data_dma blob에서 읽는다.
RAZWI, security violations, engines
111-133| What | Date / KernelVersion | Contact | 설명 |
|---|---|---|---|
| /sys/kernel/debug/accel/<parent_device>/dump_razwi_events | 2022년 8월 / 5.20 | [email protected] | 존재하는 모든 RAZWI events를 dmesg에 dump합니다. 기존 event의 status register를 읽은 뒤 routine이 status register를 clear합니다. 사용법은 cat dump_razwi_events입니다. |
| /sys/kernel/debug/accel/<parent_device>/dump_security_violations | 2021년 1월 / 5.12 | [email protected] | 모든 security violations를 dmesg에 dump하면서 전부 acknowledge합니다. 따라서 다음 API 호출에서는 같은 violations가 다시 dump되지 않습니다. |
| /sys/kernel/debug/accel/<parent_device>/engines | 2019년 7월 / 5.3 | [email protected] | Device engines의 status register values와 그 값에서 계산한 idle status를 표시합니다. |
cat dump_razwi_events
Device CPU I2C transaction fields
135-174아래 모든 I2C interfaces는 device에 secured firmware가 load된 경우 사용할 수 없습니다.
| What | Date / KernelVersion | Contact | 설명 |
|---|---|---|---|
| /sys/kernel/debug/accel/<parent_device>/i2c_addr | 2019년 1월 / 5.1 | [email protected] | Device CPU가 생성할 I2C transaction의 I2C device address를 설정합니다. |
| /sys/kernel/debug/accel/<parent_device>/i2c_bus | 2019년 1월 / 5.1 | [email protected] | Device CPU가 생성할 I2C transaction의 I2C bus address를 설정합니다. |
| /sys/kernel/debug/accel/<parent_device>/i2c_data | 2019년 1월 / 5.1 | [email protected] | Device CPU가 생성하는 I2C transaction을 trigger합니다. File write는 write transaction, file read는 read transaction을 생성합니다. |
| /sys/kernel/debug/accel/<parent_device>/i2c_len | 2021년 12월 / 5.17 | [email protected] | Device CPU가 생성할 I2C transaction의 길이를 byte 단위로 설정합니다. |
| /sys/kernel/debug/accel/<parent_device>/i2c_reg | 2019년 1월 / 5.1 | [email protected] | Device CPU가 생성할 I2C transaction의 I2C register ID를 설정합니다. |
Software LEDs와 DRAM scrub
176-210| What | Date / KernelVersion | Contact | 설명 |
|---|---|---|---|
| /sys/kernel/debug/accel/<parent_device>/led0 | 2019년 1월 / 5.1 | [email protected] | Device의 첫 번째 software LED state를 설정합니다. Secured firmware에서는 사용할 수 없습니다. |
| /sys/kernel/debug/accel/<parent_device>/led1 | 2019년 1월 / 5.1 | [email protected] | Device의 두 번째 software LED state를 설정합니다. Secured firmware에서는 사용할 수 없습니다. |
| /sys/kernel/debug/accel/<parent_device>/led2 | 2019년 1월 / 5.1 | [email protected] | Device의 세 번째 software LED state를 설정합니다. Secured firmware에서는 사용할 수 없습니다. |
| /sys/kernel/debug/accel/<parent_device>/memory_scrub | 2022년 5월 / 5.19 | [email protected] | Root user가 DRAM memory를 scrub할 수 있습니다. Scrub value는 memory_scrub_val에서 설정합니다. |
| /sys/kernel/debug/accel/<parent_device>/memory_scrub_val | 2022년 5월 / 5.19 | [email protected] | memory_scrub debugfs file로 DRAM을 scrub할 때 설정할 값이며 module parameter memory_scrub에서도 사용하는 scrub value입니다. |
MMU translation과 error diagnostics
212-230| What | Date / KernelVersion | Contact | 설명 |
|---|---|---|---|
| /sys/kernel/debug/accel/<parent_device>/mmu | 2019년 1월 / 5.1 | [email protected] | 주어진 ASID와 virtual address에 대한 hop values와 physical address를 표시합니다. ASID와 VA를 쓴 뒤 file을 읽어 결과를 얻습니다. |
| /sys/kernel/debug/accel/<parent_device>/mmu_error | 2021년 3월 / 5.12 | [email protected] | mmu_cap_mask에 지정한 모든 MMU의 page fault 또는 access violation errors를 확인하고 표시합니다. |
ASID 1의 VA 0x1000 translation 정보를 요청하는 예입니다.
echo "1 0x1000" > /sys/kernel/debug/accel/<parent_device>/mmu
MMU hardware capability bit 9의 error를 조회하는 예입니다.
echo "0x200" > /sys/kernel/debug/accel/<parent_device>/mmu_error
cat /sys/kernel/debug/accel/<parent_device>/mmu_error
Translation 조회는 ASID와 VA를 입력하고, error 조회는 capability bitmask를 입력한 뒤 같은 node를 읽는다.
Protected monitor dump와 device identity·power
232-267| What | Date / KernelVersion | Contact | 설명 |
|---|---|---|---|
| /sys/kernel/debug/accel/<parent_device>/monitor_dump | 2022년 3월 / 5.19 | [email protected] | Root user가 device protected config space의 monitor status를 dump합니다. Monitor register dump 결과를 담은 binary blob입니다. Protected space라 PCI read가 불가능해 전용 interface가 필요합니다. 같은 device에서 concurrency를 지원하지 않으며 GAUDI에서만 지원합니다. |
| /sys/kernel/debug/accel/<parent_device>/monitor_dump_trig | 2022년 3월 / 5.19 | [email protected] | Monitor data dump를 trigger합니다. 1을 써야 하며 모든 monitors의 현재 register values를 dump합니다. Write가 끝난 뒤 monitor_dump blob을 읽을 수 있습니다. |
| /sys/kernel/debug/accel/<parent_device>/server_type | 2024년 2월 / 6.11 | [email protected] | Device server type을 노출하며 enum hl_server_type에 mapping됩니다. |
| /sys/kernel/debug/accel/<parent_device>/set_power_state | 2019년 1월 / 5.1 | [email protected] | PCI power state를 설정합니다. "1"은 D0, "2"는 D3Hot입니다. |
Generic PCI read로 접근할 수 없는 protected config space를 trigger한 뒤 driver가 binary blob으로 전달한다.
Reset policy, state dump history, engine timeout
269-300| What | Date / KernelVersion | Contact | 설명 |
|---|---|---|---|
| /sys/kernel/debug/accel/<parent_device>/skip_reset_on_timeout | 2021년 6월 / 5.13 | [email protected] | Device의 timeout reset 생략 option을 설정합니다. 0이면 command submission timeout 시 device를 reset하고, 그 밖의 값이면 reset하지 않습니다. |
| /sys/kernel/debug/accel/<parent_device>/state_dump | 2021년 10월 / 5.15 | [email protected] | CS timeout 또는 failure 때 발생한 state dump를 가져옵니다. CS execution 문제 시 reset 전에 매번 debug dump를 만듭니다. 읽으면 가장 최신 dump를 반환합니다. Integer X를 쓰면 X개 dump를 버려 다음 read가 (X+1)번째 최신 dump를 반환하게 합니다. |
| /sys/kernel/debug/accel/<parent_device>/stop_on_err | 2020년 3월 / 5.6 | [email protected] | Device engines의 stop-on-error option을 설정합니다. 0은 disable이고 그 밖의 값은 enable입니다. GOYA와 GAUDI에만 해당합니다. |
| /sys/kernel/debug/accel/<parent_device>/timeout_locked | 2021년 9월 / 5.16 | [email protected] | Command submission timeout을 seconds 단위로 설정합니다. |
CS timeout·failure가 발생하면 reset 전에 state dump를 쌓는다. 최신 dump를 읽거나 앞선 X개를 버려 과거 dump를 선택할 수 있고 reset 정책은 별도 option이 결정한다.
Pinned user pointers와 VM mappings
302-323| What | Date / KernelVersion | Contact | 설명 |
|---|---|---|---|
| /sys/kernel/debug/accel/<parent_device>/userptr | 2019년 1월 / 5.1 | [email protected] | 현재 pin되어 DMA addresses에 mapping된 user pointers, 즉 user virtual addresses 정보를 목록으로 표시합니다. |
| /sys/kernel/debug/accel/<parent_device>/userptr_lookup | 2021년 10월 / 5.15 | [email protected] | Pin되어 DMA addresses에 mapping된 특정 user pointers를 검색하고 해당 DMA address로 resolve되는 결과를 확인합니다. |
| /sys/kernel/debug/accel/<parent_device>/vm | 2019년 1월 / 5.1 | [email protected] | ASID별 모든 active virtual address mappings와 HW blocks의 모든 user mappings 정보를 목록으로 표시합니다. |
Address selector와 command queues
debugfs-driver-habanalabs:1-36PCI BAR 또는 IOMMU-disabled host mapped memory access에 사용할 address를 지정하고 현재 command buffers·submissions·jobs를 조회합니다. clk_gate는 deprecated입니다.