forked from Minki/linux
06deb86a74
Command submissions sent to the device are composed of command buffers which are targeted to different device engines, like DMA and compute entities. When a command submission gets stuck, knowing in which engine the stuck is, is crucial for debugging. This patch adds a debugfs node that exports this information, by displaying the engines' various registers that assemble their idle/busy status. The information retrieval is based on the is_device_idle ASIC function. The printout in this function, of the first detected busy engine, is removed because it becomes redundant in the presence of the more elaborated info of the new debugfs node. Signed-off-by: Tomer Tayar <ttayar@habana.ai> Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
139 lines
5.7 KiB
Plaintext
139 lines
5.7 KiB
Plaintext
What: /sys/kernel/debug/habanalabs/hl<n>/addr
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
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/habanalabs/hl<n>/command_buffers
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Displays a list with information about the currently allocated
|
|
command buffers
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/command_submission
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Displays a list with information about the currently active
|
|
command submissions
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/command_submission_jobs
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Displays a list with detailed information about each JOB (CB) of
|
|
each active command submission
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/data32
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
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/habanalabs/hl<n>/device
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
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/habanalabs/hl<n>/engines
|
|
Date: Jul 2019
|
|
KernelVersion: 5.3
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Displays the status registers values of the device engines and
|
|
their derived idle status
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_addr
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Sets I2C device address for I2C transaction that is generated
|
|
by the device's CPU
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_bus
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Sets I2C bus address for I2C transaction that is generated by
|
|
the device's CPU
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_data
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
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 transcation
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_reg
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Sets I2C register id for I2C transaction that is generated by
|
|
the device's CPU
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/led0
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Sets the state of the first S/W led on the device
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/led1
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Sets the state of the second S/W led on the device
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/led2
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Sets the state of the third S/W led on the device
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/mmu
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
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/habanalabs/hl0/mmu
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/set_power_state
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Sets the PCI power state. Valid values are "1" for D0 and "2"
|
|
for D3Hot
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/userptr
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Displays a list with information about the currently user
|
|
pointers (user virtual addresses) that are pinned and mapped
|
|
to DMA addresses
|
|
|
|
What: /sys/kernel/debug/habanalabs/hl<n>/vm
|
|
Date: Jan 2019
|
|
KernelVersion: 5.1
|
|
Contact: oded.gabbay@gmail.com
|
|
Description: Displays a list with information about all the active virtual
|
|
address mappings per ASID
|