요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Device state와 configuration object
sysfs-driver-dma-idxd:90-153Device enable state, 하위 group·engine·work queue, read-buffer limit, command status, IAA capability와 event log 크기를 다룹니다.
Work queue configuration
sysfs-driver-dma-idxd:155-277Work queue의 group, size, user·kernel type, mode, priority, portal threshold, transfer·batch limit, ATS·PRS·fault policy와 operation mask를 설명합니다.
Engine과 group resource
sysfs-driver-dma-idxd:279-336Engine의 group 연결과 group별 read buffer quota 및 descriptor progress limit을 제공합니다.
Application file context 통계
sysfs-driver-dma-idxd:338-361Work queue character device를 연 application별 Completion Record fault와 PID를 제공합니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
What: /sys/bus/dsa/devices/dsa<m>/version
Date: Apr 15, 2020
KernelVersion: 5.8.0
Contact: dmaengine@vger.kernel.org
Description: The hardware version number.
What: /sys/bus/dsa/devices/dsa<m>/cdev_major
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The major number that the character device driver assigned to
this device.
What: /sys/bus/dsa/devices/dsa<m>/errors
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The error information for this device.
What: /sys/bus/dsa/devices/dsa<m>/max_batch_size
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The largest number of work descriptors in a batch.
It's not visible when the device does not support batch.
What: /sys/bus/dsa/devices/dsa<m>/max_work_queues_size
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The maximum work queue size supported by this device.
What: /sys/bus/dsa/devices/dsa<m>/max_engines
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The maximum number of engines supported by this device.
What: /sys/bus/dsa/devices/dsa<m>/max_groups
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The maximum number of groups can be created under this device.
What: /sys/bus/dsa/devices/dsa<m>/max_read_buffers
Date: Dec 10, 2021
KernelVersion: 5.17.0
Contact: dmaengine@vger.kernel.org
Description: The total number of read buffers supported by this device.
The read buffers represent resources within the DSA
implementation, and these resources are allocated by engines to
support operations. See DSA spec v1.2 9.2.4 Total Read Buffers.
It's not visible when the device does not support Read Buffer
allocation control.
What: /sys/bus/dsa/devices/dsa<m>/max_transfer_size
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The number of bytes to be read from the source address to
perform the operation. The maximum transfer size is dependent on
the workqueue the descriptor was submitted to.
What: /sys/bus/dsa/devices/dsa<m>/max_work_queues
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The maximum work queue number that this device supports.
What: /sys/bus/dsa/devices/dsa<m>/numa_node
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The numa node number for this device.
What: /sys/bus/dsa/devices/dsa<m>/op_cap
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The operation capability bit mask specify the operation types
supported by the this device.
What: /sys/bus/dsa/devices/dsa<m>/pasid_enabled
Date: Oct 27, 2020
KernelVersion: 5.11.0
Contact: dmaengine@vger.kernel.org
Description: To indicate if user PASID (process address space identifier) is
enabled or not for this device.
What: /sys/bus/dsa/devices/dsa<m>/state
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The state information of this device. It can be either enabled
or disabled.
What: /sys/bus/dsa/devices/dsa<m>/group<m>.<n>
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The assigned group under this device.
What: /sys/bus/dsa/devices/dsa<m>/engine<m>.<n>
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The assigned engine under this device.
What: /sys/bus/dsa/devices/dsa<m>/wq<m>.<n>
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The assigned work queue under this device.
What: /sys/bus/dsa/devices/dsa<m>/configurable
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: To indicate if this device is configurable or not.
What: /sys/bus/dsa/devices/dsa<m>/read_buffer_limit
Date: Dec 10, 2021
KernelVersion: 5.17.0
Contact: dmaengine@vger.kernel.org
Description: The maximum number of read buffers that may be in use at
one time by operations that access low bandwidth memory in the
device. See DSA spec v1.2 9.2.8 GENCFG on Global Read Buffer Limit.
It's not visible when the device does not support Read Buffer
allocation control.
What: /sys/bus/dsa/devices/dsa<m>/cmd_status
Date: Aug 28, 2020
KernelVersion: 5.10.0
Contact: dmaengine@vger.kernel.org
Description: The last executed device administrative command's status/error.
Also last configuration error overloaded.
Writing to it will clear the status.
What: /sys/bus/dsa/devices/dsa<m>/iaa_cap
Date: Sept 14, 2022
KernelVersion: 6.0.0
Contact: dmaengine@vger.kernel.org
Description: IAA (IAX) capability mask. Exported to user space for application
consumption. This attribute should only be visible on IAA devices
that are version 2 or later.
What: /sys/bus/dsa/devices/dsa<m>/event_log_size
Date: Sept 14, 2022
KernelVersion: 6.4.0
Contact: dmaengine@vger.kernel.org
Description: The event log size to be configured. Default is 64 entries and
occupies 4k size if the evl entry is 64 bytes. It's visible
only on platforms that support the capability.
What: /sys/bus/dsa/devices/wq<m>.<n>/block_on_fault
Date: Oct 27, 2020
KernelVersion: 5.11.0
Contact: dmaengine@vger.kernel.org
Description: To indicate block on fault is allowed or not for the work queue
to support on demand paging.
What: /sys/bus/dsa/devices/wq<m>.<n>/group_id
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The group id that this work queue belongs to.
What: /sys/bus/dsa/devices/wq<m>.<n>/size
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The work queue size for this work queue.
What: /sys/bus/dsa/devices/wq<m>.<n>/type
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The type of this work queue, it can be "kernel" type for work
queue usages in the kernel space or "user" type for work queue
usages by applications in user space.
What: /sys/bus/dsa/devices/wq<m>.<n>/cdev_minor
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The minor number assigned to this work queue by the character
device driver.
What: /sys/bus/dsa/devices/wq<m>.<n>/mode
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The work queue mode type for this work queue.
What: /sys/bus/dsa/devices/wq<m>.<n>/priority
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The priority value of this work queue, it is a value relative to
other work queue in the same group to control quality of service
for dispatching work from multiple workqueues in the same group.
What: /sys/bus/dsa/devices/wq<m>.<n>/state
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The current state of the work queue.
What: /sys/bus/dsa/devices/wq<m>.<n>/threshold
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The number of entries in this work queue that may be filled
via a limited portal.
What: /sys/bus/dsa/devices/wq<m>.<n>/max_transfer_size
Date: Aug 28, 2020
KernelVersion: 5.10.0
Contact: dmaengine@vger.kernel.org
Description: The max transfer sized for this workqueue. Cannot exceed device
max transfer size. Configurable parameter.
What: /sys/bus/dsa/devices/wq<m>.<n>/max_batch_size
Date: Aug 28, 2020
KernelVersion: 5.10.0
Contact: dmaengine@vger.kernel.org
Description: The max batch size for this workqueue. Cannot exceed device
max batch size. Configurable parameter.
It's not visible when the device does not support batch.
What: /sys/bus/dsa/devices/wq<m>.<n>/ats_disable
Date: Nov 13, 2020
KernelVersion: 5.11.0
Contact: dmaengine@vger.kernel.org
Description: Indicate whether ATS disable is turned on for the workqueue.
0 indicates ATS is on, and 1 indicates ATS is off for the workqueue.
What: /sys/bus/dsa/devices/wq<m>.<n>/prs_disable
Date: Sept 14, 2022
KernelVersion: 6.4.0
Contact: dmaengine@vger.kernel.org
Description: Controls whether PRS disable is turned on for the workqueue.
0 indicates PRS is on, and 1 indicates PRS is off for the
workqueue. This option overrides block_on_fault attribute
if set. It's visible only on platforms that support the
capability.
What: /sys/bus/dsa/devices/wq<m>.<n>/occupancy
Date: May 25, 2021
KernelVersion: 5.14.0
Contact: dmaengine@vger.kernel.org
Description: Show the current number of entries in this WQ if WQ Occupancy
Support bit WQ capabilities is 1.
What: /sys/bus/dsa/devices/wq<m>.<n>/enqcmds_retries
Date: Oct 29, 2021
KernelVersion: 5.17.0
Contact: dmaengine@vger.kernel.org
Description: Indicate the number of retires for an enqcmds submission on a sharedwq.
A max value to set attribute is capped at 64.
What: /sys/bus/dsa/devices/wq<m>.<n>/op_config
Date: Sept 14, 2022
KernelVersion: 6.0.0
Contact: dmaengine@vger.kernel.org
Description: Shows the operation capability bits displayed in bitmap format
presented by %*pb printk() output format specifier.
The attribute can be configured when the WQ is disabled in
order to configure the WQ to accept specific bits that
correlates to the operations allowed. It's visible only
on platforms that support the capability.
What: /sys/bus/dsa/devices/wq<m>.<n>/driver_name
Date: Sept 8, 2023
KernelVersion: 6.7.0
Contact: dmaengine@vger.kernel.org
Description: Name of driver to be bounded to the wq.
What: /sys/bus/dsa/devices/engine<m>.<n>/group_id
Date: Oct 25, 2019
KernelVersion: 5.6.0
Contact: dmaengine@vger.kernel.org
Description: The group that this engine belongs to.
What: /sys/bus/dsa/devices/group<m>.<n>/use_read_buffer_limit
Date: Dec 10, 2021
KernelVersion: 5.17.0
Contact: dmaengine@vger.kernel.org
Description: Enable the use of global read buffer limit for the group. See DSA
spec v1.2 9.2.18 GRPCFG Use Global Read Buffer Limit.
It's not visible when the device does not support Read Buffer
allocation control.
What: /sys/bus/dsa/devices/group<m>.<n>/read_buffers_allowed
Date: Dec 10, 2021
KernelVersion: 5.17.0
Contact: dmaengine@vger.kernel.org
Description: Indicates max number of read buffers that may be in use at one time
by all engines in the group. See DSA spec v1.2 9.2.18 GRPCFG Read
Buffers Allowed.
It's not visible when the device does not support Read Buffer
allocation control.
What: /sys/bus/dsa/devices/group<m>.<n>/read_buffers_reserved
Date: Dec 10, 2021
KernelVersion: 5.17.0
Contact: dmaengine@vger.kernel.org
Description: Indicates the number of Read Buffers reserved for the use of
engines in the group. See DSA spec v1.2 9.2.18 GRPCFG Read Buffers
Reserved.
It's not visible when the device does not support Read Buffer
allocation control.
What: /sys/bus/dsa/devices/group<m>.<n>/desc_progress_limit
Date: Sept 14, 2022
KernelVersion: 6.0.0
Contact: dmaengine@vger.kernel.org
Description: Allows control of the number of work descriptors that can be
concurrently processed by an engine in the group as a fraction
of the Maximum Work Descriptors in Progress value specified in
the ENGCAP register. The acceptable values are 0 (default),
1 (1/2 of max value), 2 (1/4 of the max value), and 3 (1/8 of
the max value). It's visible only on platforms that support
the capability.
What: /sys/bus/dsa/devices/group<m>.<n>/batch_progress_limit
Date: Sept 14, 2022
KernelVersion: 6.0.0
Contact: dmaengine@vger.kernel.org
Description: Allows control of the number of batch descriptors that can be
concurrently processed by an engine in the group as a fraction
of the Maximum Batch Descriptors in Progress value specified in
the ENGCAP register. The acceptable values are 0 (default),
1 (1/2 of max value), 2 (1/4 of the max value), and 3 (1/8 of
the max value). It's visible only on platforms that support
the capability.
What: /sys/bus/dsa/devices/wq<m>.<n>/dsa<x>\!wq<m>.<n>/file<y>/cr_faults
Date: Sept 14, 2022
KernelVersion: 6.4.0
Contact: dmaengine@vger.kernel.org
Description: Show the number of Completion Record (CR) faults this application
has caused.
What: /sys/bus/dsa/devices/wq<m>.<n>/dsa<x>\!wq<m>.<n>/file<y>/cr_fault_failures
Date: Sept 14, 2022
KernelVersion: 6.4.0
Contact: dmaengine@vger.kernel.org
Description: Show the number of Completion Record (CR) faults failures that this
application has caused. The failure counter is incremented when the
driver cannot fault in the address for the CR. Typically this is caused
by a bad address programmed in the submitted descriptor or a malicious
submitter is using bad CR address on purpose.
What: /sys/bus/dsa/devices/wq<m>.<n>/dsa<x>\!wq<m>.<n>/file<y>/pid
Date: Sept 14, 2022
KernelVersion: 6.4.0
Contact: dmaengine@vger.kernel.org
Description: Show the process id of the application that opened the file. This is
helpful information for a monitor daemon that wants to kill the
application that opened the file.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
IDXD sysfs object 계층
1-361이 문서의 모든 ABI 담당자는 dmaengine@vger.kernel.org다. 경로의 <m>은 device instance, <n>은 하위 object 번호, <x>는 character-device instance, <y>는 열린 file context를 구분한다.
Group은 engine과 work queue가 공유하는 resource domain이며, user work queue를 연 각 application에는 별도의 file context 통계가 생긴다.
Device identity와 기본 capability
1-44| 경로 | 도입 | 설명 |
|---|---|---|
| dsa<m>/version | 2020-04-15 · 5.8.0 | Hardware version number다. |
| dsa<m>/cdev_major | 2019-10-25 · 5.6.0 | Character-device driver가 이 device에 할당한 major number다. |
| dsa<m>/errors | 2019-10-25 · 5.6.0 | 이 device의 error 정보를 제공한다. |
| dsa<m>/max_batch_size | 2019-10-25 · 5.6.0 | 하나의 batch에 넣을 수 있는 work descriptor의 최대 개수다. Device가 batch를 지원하지 않으면 보이지 않는다. |
| dsa<m>/max_work_queues_size | 2019-10-25 · 5.6.0 | 이 device가 지원하는 전체 work-queue size의 최댓값이다. |
| dsa<m>/max_engines | 2019-10-25 · 5.6.0 | 이 device가 지원하는 engine의 최대 개수다. |
| dsa<m>/max_groups | 2019-10-25 · 5.6.0 | 이 device 아래에 만들 수 있는 group의 최대 개수다. |
Read buffer, transfer와 queue limit
45-89| 경로 | 도입 | 설명 |
|---|---|---|
| dsa<m>/max_read_buffers | 2021-12-10 · 5.17.0 | 이 device가 지원하는 read buffer의 총수다. Read buffer는 operation을 지원하기 위해 engine에 할당되는 DSA 구현 내부 resource다. DSA spec v1.2 9.2.4 Total Read Buffers를 참조한다. Read Buffer allocation control을 지원하지 않으면 보이지 않는다. |
| dsa<m>/max_transfer_size | 2019-10-25 · 5.6.0 | Operation 수행 시 source address에서 읽을 수 있는 최대 byte 수다. 실제 최대 transfer size는 descriptor를 제출한 work queue에도 의존한다. |
| dsa<m>/max_work_queues | 2019-10-25 · 5.6.0 | 이 device가 지원하는 work queue의 최대 개수다. |
| dsa<m>/numa_node | 2019-10-25 · 5.6.0 | 이 device가 속한 NUMA node number다. |
| dsa<m>/op_cap | 2019-10-25 · 5.6.0 | 이 device가 지원하는 operation type을 나타내는 capability bitmask다. |
| dsa<m>/pasid_enabled | 2020-10-27 · 5.11.0 | 이 device에서 user PASID(Process Address Space Identifier)가 활성화됐는지 나타낸다. |
Device state와 하위 object
90-120| 경로 | 도입 | 설명 |
|---|---|---|
| dsa<m>/state | 2019-10-25 · 5.6.0 | Device의 상태다. enabled 또는 disabled 중 하나다. |
| dsa<m>/group<m>.<n> | 2019-10-25 · 5.6.0 | 이 device 아래에 할당된 group object다. |
| dsa<m>/engine<m>.<n> | 2019-10-25 · 5.6.0 | 이 device 아래에 할당된 engine object다. |
| dsa<m>/wq<m>.<n> | 2019-10-25 · 5.6.0 | 이 device 아래에 할당된 work-queue object다. |
| dsa<m>/configurable | 2019-10-25 · 5.6.0 | 이 device를 구성할 수 있는지 나타낸다. |
Global read-buffer limit와 administrative status
121-153| 경로 | 도입 | 설명 |
|---|---|---|
| dsa<m>/read_buffer_limit | 2021-12-10 · 5.17.0 | Device에서 low-bandwidth memory에 접근하는 operation이 동시에 사용할 수 있는 read buffer의 최대 개수다. DSA spec v1.2 9.2.8 GENCFG의 Global Read Buffer Limit를 참조한다. Read Buffer allocation control을 지원하지 않으면 보이지 않는다. |
| dsa<m>/cmd_status | 2020-08-28 · 5.10.0 | 마지막으로 실행한 device administrative command의 status 또는 error다. 마지막 configuration error도 이 값에 함께 실린다. 값을 쓰면 status를 지운다. |
| dsa<m>/iaa_cap | 2022-09-14 · 6.0.0 | IAA(IAX) capability mask다. Application이 사용할 수 있도록 user space에 내보낸다. Version 2 이상인 IAA device에서만 보여야 한다. |
| dsa<m>/event_log_size | 2022-09-14 · 6.4.0 | 구성할 event log 크기다. 기본값은 64 entry이며 event-log entry가 64 byte이면 4 KiB를 차지한다. 이 capability를 지원하는 platform에서만 보인다. |
Work queue의 paging, group, size와 owner
155-194| 경로 | 도입 | 설명 |
|---|---|---|
| wq<m>.<n>/block_on_fault | 2020-10-27 · 5.11.0 | On-demand paging을 지원하기 위해 이 work queue에서 block-on-fault를 허용하는지 나타낸다. |
| wq<m>.<n>/group_id | 2019-10-25 · 5.6.0 | 이 work queue가 속한 group ID다. |
| wq<m>.<n>/size | 2019-10-25 · 5.6.0 | 이 work queue의 크기다. |
| wq<m>.<n>/type | 2019-10-25 · 5.6.0 | Work queue의 사용 주체다. kernel은 kernel space에서 쓰는 queue, user는 user-space application이 쓰는 queue를 뜻한다. |
| wq<m>.<n>/cdev_minor | 2019-10-25 · 5.6.0 | Character-device driver가 이 work queue에 할당한 minor number다. |
| wq<m>.<n>/mode | 2019-10-25 · 5.6.0 | 이 work queue의 mode type이다. |
Work queue QoS와 descriptor limit
195-229| 경로 | 도입 | 설명 |
|---|---|---|
| wq<m>.<n>/priority | 2019-10-25 · 5.6.0 | 같은 group 안의 다른 work queue에 대한 상대 priority다. 여러 work queue에서 들어온 작업을 dispatch할 때 QoS를 제어한다. |
| wq<m>.<n>/state | 2019-10-25 · 5.6.0 | 이 work queue의 현재 상태다. |
| wq<m>.<n>/threshold | 2019-10-25 · 5.6.0 | Limited portal을 통해 채울 수 있는 이 work queue의 entry 수다. |
| wq<m>.<n>/max_transfer_size | 2020-08-28 · 5.10.0 | 이 work queue에 설정한 최대 transfer size다. Device의 max_transfer_size를 넘을 수 없는 configurable parameter다. |
| wq<m>.<n>/max_batch_size | 2020-08-28 · 5.10.0 | 이 work queue에 설정한 최대 batch size다. Device의 max_batch_size를 넘을 수 없는 configurable parameter다. Device가 batch를 지원하지 않으면 보이지 않는다. |
ATS, PRS와 fault 처리
231-246| 경로 | 도입 | 설명 |
|---|---|---|
| wq<m>.<n>/ats_disable | 2020-11-13 · 5.11.0 | 이 work queue에서 ATS disable이 켜졌는지 나타낸다. 0이면 ATS on, 1이면 ATS off다. |
| wq<m>.<n>/prs_disable | 2022-09-14 · 6.4.0 | 이 work queue에서 PRS disable을 제어한다. 0이면 PRS on, 1이면 PRS off다. 설정하면 block_on_fault보다 우선한다. 이 capability를 지원하는 platform에서만 보인다. |
ats_disable과 prs_disable은 이름이 부정형이다. 값 1이 기능 활성화가 아니라 ATS 또는 PRS 비활성화를 뜻한다.
Occupancy, retry와 operation mask
248-277| 경로 | 도입 | 설명 |
|---|---|---|
| wq<m>.<n>/occupancy | 2021-05-25 · 5.14.0 | WQ capability의 WQ Occupancy Support bit가 1일 때 이 work queue의 현재 entry 수를 표시한다. |
| wq<m>.<n>/enqcmds_retries | 2021-10-29 · 5.17.0 | Shared work queue에 enqcmds로 제출할 때의 retry 횟수다. 설정할 수 있는 최댓값은 64다. 원문의 'retires'는 문맥상 'retries'로 해석했다. |
| wq<m>.<n>/op_config | 2022-09-14 · 6.0.0 | %*pb printk() 형식으로 출력되는 bitmap 형태의 operation capability bit를 보여준다. WQ가 disabled일 때 특정 operation을 허용하는 bit만 받도록 구성할 수 있다. 이 capability를 지원하는 platform에서만 보인다. |
| wq<m>.<n>/driver_name | 2023-09-08 · 6.7.0 | 이 work queue에 bind할 driver의 이름이다. |
Engine의 group 연결
279-283| 항목 | 내용 |
|---|---|
| What | /sys/bus/dsa/devices/engine<m>.<n>/group_id |
| Date | 2019년 10월 25일 |
| KernelVersion | 5.6.0 |
| Description | 이 engine이 속한 group의 ID다. |
Group별 read-buffer 제어
285-312이 절의 세 ABI는 2021년 12월 10일 kernel 5.17.0에 도입됐다. Device가 Read Buffer allocation control을 지원하지 않으면 보이지 않는다.
| 경로 | 설명 |
|---|---|
| group<m>.<n>/use_read_buffer_limit | 이 group에 global read-buffer limit를 적용할지 활성화한다. DSA spec v1.2 9.2.18 GRPCFG Use Global Read Buffer Limit를 참조한다. |
| group<m>.<n>/read_buffers_allowed | Group의 모든 engine이 동시에 사용할 수 있는 read buffer의 최대 개수다. DSA spec v1.2 9.2.18 GRPCFG Read Buffers Allowed를 참조한다. |
| group<m>.<n>/read_buffers_reserved | Group의 engine이 사용하도록 예약한 read buffer의 개수다. DSA spec v1.2 9.2.18 GRPCFG Read Buffers Reserved를 참조한다. |
Group별 in-progress descriptor 한계
314-336두 ABI는 2022년 9월 14일 kernel 6.0.0에 도입됐으며 capability를 지원하는 platform에서만 보인다.
| 경로 | 대상 | 허용값 |
|---|---|---|
| group<m>.<n>/desc_progress_limit | Group engine 하나가 동시에 처리할 수 있는 work descriptor 수를 ENGCAP의 Maximum Work Descriptors in Progress에 대한 비율로 제한한다. | 0: 기본값, 1: 최대값의 1/2, 2: 1/4, 3: 1/8 |
| group<m>.<n>/batch_progress_limit | Group engine 하나가 동시에 처리할 수 있는 batch descriptor 수를 ENGCAP의 Maximum Batch Descriptors in Progress에 대한 비율로 제한한다. | 0: 기본값, 1: 최대값의 1/2, 2: 1/4, 3: 1/8 |
Application file context의 CR fault와 PID
338-361다음 세 ABI는 2022년 9월 14일 kernel 6.4.0에 도입됐다. 경로의 dsa<x>\!wq<m>.<n>은 sysfs에서 character-device client 이름에 포함된 느낌표를 escape한 표기다.
| 경로 suffix | 설명 |
|---|---|
| dsa<x>\!wq<m>.<n>/file<y>/cr_faults | 이 application이 일으킨 Completion Record(CR) fault의 수를 표시한다. |
| dsa<x>\!wq<m>.<n>/file<y>/cr_fault_failures | 이 application이 일으킨 CR fault 가운데 처리에 실패한 수를 표시한다. Driver가 CR address를 fault-in하지 못할 때 증가한다. 보통 제출 descriptor에 잘못된 address가 들어갔거나 악의적인 submitter가 의도적으로 잘못된 CR address를 사용한 경우다. |
| dsa<x>\!wq<m>.<n>/file<y>/pid | 이 file을 연 application의 process ID를 표시한다. 해당 application을 종료하려는 monitor daemon이 사용할 수 있는 정보다. |
DSA device capability와 limit
sysfs-driver-dma-idxd:1-89Hardware version, character device 번호, batch·transfer·queue·engine·group·read-buffer 한계와 PASID 지원을 제공합니다.