요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
QM queue selection, registers, interrupts, errors
debugfs-hisi-hpre:46-105QM·queue registers와 read-clear를 제어하고 task completion invalid IRQ, async·abnormal events, queue allocation·mailbox errors와 work·stop status를 보고합니다.
QM register changes와 stop-queue timeout
debugfs-hisi-hpre:107-134QM register value 변화, busy·idle state와 stop queue failure의 wait time 및 resulting status를 제공합니다.
HPRE register changes와 request counters
debugfs-hisi-hpre:136-186HPRE register changes와 sent·received·busy·failed·invalid requests 및 processing threshold를 넘긴 timeout requests를 계수합니다.
QM·HPRE capability registers
debugfs-hisi-hpre:188-193PF와 VF에서 QM·HPRE capability bit register 값을 dump해 device specification 조회와 fault locating을 지원합니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
What: /sys/kernel/debug/hisi_hpre/<bdf>/cluster[0-3]/regs
Date: Sep 2019
Contact: linux-crypto@vger.kernel.org
Description: Dump debug registers from the HPRE cluster.
Only available for PF.
What: /sys/kernel/debug/hisi_hpre/<bdf>/cluster[0-3]/cluster_ctrl
Date: Sep 2019
Contact: linux-crypto@vger.kernel.org
Description: Write the HPRE core selection in the cluster into this file,
and then we can read the debug information of the core.
Only available for PF.
What: /sys/kernel/debug/hisi_hpre/<bdf>/rdclr_en
Date: Sep 2019
Contact: linux-crypto@vger.kernel.org
Description: HPRE cores debug registers read clear control. 1 means enable
register read clear, otherwise 0. Writing to this file has no
functional effect, only enable or disable counters clear after
reading of these registers.
Only available for PF.
What: /sys/kernel/debug/hisi_hpre/<bdf>/current_qm
Date: Sep 2019
Contact: linux-crypto@vger.kernel.org
Description: One HPRE controller has one PF and multiple VFs, each function
has a QM. Select the QM which below qm refers to.
Only available for PF.
What: /sys/kernel/debug/hisi_hpre/<bdf>/alg_qos
Date: Jun 2021
Contact: linux-crypto@vger.kernel.org
Description: The <bdf> is related the function for PF and VF.
HPRE driver supports to configure each function's QoS, the driver
supports to write <bdf> value to alg_qos in the host. Such as
"echo <bdf> value > alg_qos". The qos value is 1~1000, means
1/1000~1000/1000 of total QoS. The driver reading alg_qos to
get related QoS in the host and VM, Such as "cat alg_qos".
What: /sys/kernel/debug/hisi_hpre/<bdf>/regs
Date: Sep 2019
Contact: linux-crypto@vger.kernel.org
Description: Dump debug registers from the HPRE.
Only available for PF.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/regs
Date: Sep 2019
Contact: linux-crypto@vger.kernel.org
Description: Dump debug registers from the QM.
Available for PF and VF in host. VF in guest currently only
has one debug register.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/current_q
Date: Sep 2019
Contact: linux-crypto@vger.kernel.org
Description: One QM may contain multiple queues. Select specific queue to
show its debug registers in above regs.
Only available for PF.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/clear_enable
Date: Sep 2019
Contact: linux-crypto@vger.kernel.org
Description: QM debug registers(regs) read clear control. 1 means enable
register read clear, otherwise 0.
Writing to this file has no functional effect, only enable or
disable counters clear after reading of these registers.
Only available for PF.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/err_irq
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the number of invalid interrupts for
QM task completion.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/aeq_irq
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the number of QM async event queue interrupts.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/abnormal_irq
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the number of interrupts for QM abnormal event.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/create_qp_err
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the number of queue allocation errors.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/mb_err
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the number of failed QM mailbox commands.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/status
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the status of the QM.
Two states: work, stop.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/diff_regs
Date: Mar 2022
Contact: linux-crypto@vger.kernel.org
Description: QM debug registers(regs) read hardware register value. This
node is used to show the change of the qm register values. This
node can be help users to check the change of register values.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/qm_state
Date: Jan 2024
Contact: linux-crypto@vger.kernel.org
Description: Dump the state of the device.
0: busy, 1: idle.
Only available for PF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/dev_timeout
Date: Feb 2024
Contact: linux-crypto@vger.kernel.org
Description: Set the wait time when stop queue fails. Available for both PF
and VF, and take no other effect on HPRE.
0: not wait(default), others value: wait dev_timeout * 20 microsecond.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/dev_state
Date: Feb 2024
Contact: linux-crypto@vger.kernel.org
Description: Dump the stop queue status of the QM. The default value is 0,
if dev_timeout is set, when stop queue fails, the dev_state
will return non-zero value. Available for both PF and VF,
and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/diff_regs
Date: Mar 2022
Contact: linux-crypto@vger.kernel.org
Description: HPRE debug registers(regs) read hardware register value. This
node is used to show the change of the register values. This
node can be help users to check the change of register values.
What: /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/send_cnt
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the total number of sent requests.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/recv_cnt
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the total number of received requests.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/send_busy_cnt
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the total number of requests sent
with returning busy.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/send_fail_cnt
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the total number of completed but error requests.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/invalid_req_cnt
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the total number of invalid requests being received.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/overtime_thrhld
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Set the threshold time for counting the request which is
processed longer than the threshold.
0: disable(default), 1: 1 microsecond.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/over_thrhld_cnt
Date: Apr 2020
Contact: linux-crypto@vger.kernel.org
Description: Dump the total number of time out requests.
Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/cap_regs
Date: Oct 2024
Contact: linux-crypto@vger.kernel.org
Description: Dump the values of the qm and hpre capability bit registers and
support the query of device specifications to facilitate fault locating.
Available for both PF and VF, and take no other effect on HPRE.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
HPRE cluster, controller, function QoS
1-44이 구간의 모든 항목 담당자는 linux-crypto@vger.kernel.org입니다.
| What | Date | 설명 | 범위 |
|---|---|---|---|
| /sys/kernel/debug/hisi_hpre/<bdf>/cluster[0-3]/regs | 2019년 9월 | HPRE cluster의 debug registers를 dump합니다. | PF only |
| /sys/kernel/debug/hisi_hpre/<bdf>/cluster[0-3]/cluster_ctrl | 2019년 9월 | Cluster에서 HPRE core selection을 쓰고 선택한 core의 debug information을 읽습니다. | PF only |
| /sys/kernel/debug/hisi_hpre/<bdf>/rdclr_en | 2019년 9월 | HPRE core debug register read-clear control입니다. 1이면 register read-clear enable, 0이면 disable입니다. 기능 동작에는 영향을 주지 않고 register를 읽은 뒤 counter를 지울지만 제어합니다. | PF only |
| /sys/kernel/debug/hisi_hpre/<bdf>/current_qm | 2019년 9월 | HPRE controller 하나에는 PF 하나와 여러 VFs가 있고 각 function은 QM을 가집니다. 아래 qm nodes가 참조할 QM을 선택합니다. | PF only |
| /sys/kernel/debug/hisi_hpre/<bdf>/alg_qos | 2021년 6월 | PF 또는 VF function을 나타내는 <bdf>의 QoS를 구성합니다. 값 1..1000은 total QoS의 1/1000..1000/1000을 뜻합니다. Host와 VM에서 읽어 관련 QoS를 확인할 수 있습니다. | PF and VF function |
| /sys/kernel/debug/hisi_hpre/<bdf>/regs | 2019년 9월 | HPRE debug registers를 dump합니다. | PF only |
echo <bdf> value > alg_qos
cat alg_qos
Cluster selector는 core를, current_qm은 function별 QM을, current_q는 QM 내부 queue를 선택한 뒤 관련 regs node가 해당 대상을 dump한다.
QM registers, queue selector, read-clear
46-67| What | Date | 설명 | 범위 |
|---|---|---|---|
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/regs | 2019년 9월 | QM debug registers를 dump합니다. | Host의 PF와 VF. Guest VF는 현재 debug register 하나만 제공 |
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/current_q | 2019년 9월 | QM에 여러 queues가 있을 때 위 regs에 표시할 특정 queue를 선택합니다. | PF only |
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/clear_enable | 2019년 9월 | QM debug registers(regs)의 read-clear control입니다. 1이면 enable, 0이면 disable입니다. 기능 동작에는 영향을 주지 않고 registers를 읽은 뒤 counters를 지울지만 제어합니다. | PF only |
세 항목의 담당자는 linux-crypto@vger.kernel.org입니다.
QM IRQ·error counters와 status
69-105아래 항목은 PF와 VF 모두에서 사용할 수 있고 HPRE 동작에 다른 영향을 주지 않습니다. 담당자는 linux-crypto@vger.kernel.org입니다.
| What | Date | 설명 |
|---|---|---|
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/err_irq | 2020년 4월 | QM task completion의 invalid interrupt 수를 dump합니다. |
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/aeq_irq | 2020년 4월 | QM async event queue interrupt 수를 dump합니다. |
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/abnormal_irq | 2020년 4월 | QM abnormal event interrupt 수를 dump합니다. |
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/create_qp_err | 2020년 4월 | Queue allocation error 수를 dump합니다. |
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/mb_err | 2020년 4월 | 실패한 QM mailbox command 수를 dump합니다. |
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/status | 2020년 4월 | QM status를 dump합니다. 가능한 state는 work와 stop입니다. |
QM register changes, state, stop timeout
107-134| What | Date | 설명 | 범위 |
|---|---|---|---|
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/diff_regs | 2022년 3월 | QM debug registers의 hardware register values를 읽어 QM register 값의 변화를 표시하고 확인하도록 돕습니다. | 문서에 PF/VF 제한 미기재 |
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/qm_state | 2024년 1월 | Device state를 dump합니다. 0은 busy, 1은 idle입니다. HPRE 동작에 다른 영향을 주지 않습니다. | PF only |
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/dev_timeout | 2024년 2월 | Stop queue가 실패했을 때 기다릴 시간을 설정합니다. 0은 기다리지 않는 기본값이고, 그 밖의 값은 dev_timeout × 20 microseconds만큼 기다립니다. HPRE 동작에 다른 영향을 주지 않습니다. | PF and VF |
| /sys/kernel/debug/hisi_hpre/<bdf>/qm/dev_state | 2024년 2월 | QM stop-queue status를 dump합니다. 기본값은 0입니다. dev_timeout이 설정된 상태에서 stop queue가 실패하면 non-zero를 반환합니다. HPRE 동작에 다른 영향을 주지 않습니다. | PF and VF |
네 항목의 담당자는 linux-crypto@vger.kernel.org입니다.
dev_timeout이 0이면 기다리지 않고, non-zero이면 20 µs 단위로 대기한다. Stop queue가 끝내 실패하면 dev_state가 non-zero가 된다.
HPRE DFX registers와 request counters
136-186아래 모든 항목의 담당자는 linux-crypto@vger.kernel.org입니다.
| What | Date | 설명 | 범위 |
|---|---|---|---|
| /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/diff_regs | 2022년 3월 | HPRE debug registers의 hardware register values를 읽어 register 값의 변화를 표시하고 확인하도록 돕습니다. | 문서에 PF/VF 제한 미기재 |
| /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/send_cnt | 2020년 4월 | 보낸 request 총수를 dump합니다. | PF and VF |
| /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/recv_cnt | 2020년 4월 | 받은 request 총수를 dump합니다. | PF and VF |
| /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/send_busy_cnt | 2020년 4월 | 전송했지만 busy를 반환한 request 총수를 dump합니다. | PF and VF |
| /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/send_fail_cnt | 2020년 4월 | 완료되었지만 error인 request 총수를 dump합니다. | PF and VF |
| /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/invalid_req_cnt | 2020년 4월 | 수신한 invalid request 총수를 dump합니다. | PF and VF |
| /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/overtime_thrhld | 2020년 4월 | 처리 시간이 threshold보다 긴 request를 셀 threshold time을 설정합니다. 0은 disable인 기본값, 1은 1 microsecond입니다. | PF and VF |
| /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/over_thrhld_cnt | 2020년 4월 | Timeout request 총수를 dump합니다. | PF and VF |
PF·VF 공통 counters는 HPRE 동작에 다른 영향을 주지 않습니다.
Request lifecycle의 전송·수신과 busy·error·invalid·threshold 초과 결과를 각 counter가 나누어 기록한다.
QM·HPRE capability bit registers
188-193| 항목 | 내용 |
|---|---|
| What | /sys/kernel/debug/hisi_hpre/<bdf>/cap_regs |
| Date | 2024년 10월 |
| Contact | linux-crypto@vger.kernel.org |
| Description | QM과 HPRE capability bit register 값을 dump하고 device specification 조회를 지원해 fault locating을 쉽게 합니다. |
| 범위 | PF와 VF 모두에서 사용 가능하며 HPRE 동작에 다른 영향을 주지 않음 |
Cluster, controller, function QoS
debugfs-hisi-hpre:1-44PF에서 cluster core와 controller function의 QM을 선택해 registers를 dump하고 read-clear를 제어하며 PF·VF function별 QoS fraction을 설정합니다.