.\" Automatically generated by Pandoc 2.9.2.1
.\"
.TH "IONICDV" "7" "2025-06-23" "ionic" "Ionic Programmer\[cq]s Manual"
.hy
.SH NAME
.PP
ionicdv - Direct verbs for ionic devices
.PP
This provides low level access to ionic devices to perform direct
operations, without general branching performed by libibverbs.
.SH DESCRIPTION
.PP
The libibverbs API is an abstract one.
It is agnostic to any underlying provider specific implementation.
While this abstraction has the advantage of user applications
portability, it has a performance penalty.
For some applications optimizing performance is more important than
portability.
.PP
The ionic direct verbs API is intended for such applications.
It exposes ionic specific low level operations, allowing the application
to bypass the libibverbs API.
.PP
The direct include of ionic_dv.h together with linkage to the ionic
library will allow usage of this new interface.
.SS UDMA Pipelines
.PP
Ionic devices expose multiple UDMA pipelines.
Queues can be assigned to specific pipelines by setting a UDMA mask on
the protection domain before creating queues.
Use \f[B]ionic_dv_ctx_get_udma_count\f[R](3) and
\f[B]ionic_dv_ctx_get_udma_mask\f[R](3) to query the available
pipelines, and \f[B]ionic_dv_pd_set_udma_mask\f[R](3) to restrict queue
placement.
.SS Controller Memory Bar (CMB)
.PP
Send and receive queues can optionally be placed in the controller
memory bar for lower latency doorbell operations.
Express doorbell optimizations may also be enabled.
Use \f[B]ionic_dv_pd_set_sqcmb\f[R](3) and
\f[B]ionic_dv_pd_set_rqcmb\f[R](3) to configure CMB preferences on a
protection domain before creating queues.
.SH SEE ALSO
.PP
\f[B]ionic_dv_ctx_get_udma_count\f[R](3),
\f[B]ionic_dv_ctx_get_udma_mask\f[R](3),
\f[B]ionic_dv_pd_get_udma_mask\f[R](3),
\f[B]ionic_dv_pd_set_udma_mask\f[R](3),
\f[B]ionic_dv_pd_set_sqcmb\f[R](3), \f[B]ionic_dv_pd_set_rqcmb\f[R](3),
\f[B]verbs\f[R](7)
.SH AUTHORS
.PP
Advanced Micro Devices, Inc.
