DOCA DMA Development Guide
Guides hands-on DOCA DMA memory-copy development on BlueField and ConnectX systems.
The documentation scopes the skill to DOCA DMA, requires mmap permissions, device capability probing, and peer export, and asks users to confirm source, destination, and length before submission. It also routes installation elsewhere and generally presents commands as unprivileged unless noted. Deductions apply because DMA directly touches device memory, some diagnostics use sudo, execution confirmation, full data-flow disclosure, least-privilege guidance, and actionable rollback are incomplete; license metadata is inconsistent.
SKILL.md, CAPABILITIES.md, and TASKS.md are largely consistent on lifecycle, capability checks, permission policy, error taxonomy, and failure feedback, and they require identifying DOCA_ERROR_* causes before retrying. Deductions apply because static review cannot reproduce key paths, no runnable implementation or committed key-path test suite is provided, and the boundary between single-buffer and scatter-gather descriptions is mildly unclear.
Audience, trigger phrases, positive scenarios, and refusal/routing boundaries are clearly described, including C/C++ and FFI users, Linux, BlueField/ConnectX, and the installed-DOCA prerequisite. Deductions apply because there is no Chinese-language guidance or localized example, some answers depend on NVIDIA online documentation, mainland-China reachability is not discussed, and environment-fit evidence is limited.
The material uses layered loader, capability, and task-workflow documentation and includes related skills, a command appendix, limitations, version handling, and issue/safety intake paths. Deductions apply because version, signature, and signing fields remain TBD, BENCHMARK reports a path inconsistent with the assessed path, author and maintenance responsibility are only indirectly established, license declarations conflict, and there is no clear changelog or complete parameter/FAQ section.
The skill offers directly usable workflows for DMA setup, permissions, capability queries, and error diagnosis, with path selection and cross-peer rules. Deductions apply because it explicitly ships no runnable code, its modification renderer is deferred, and users must manually edit local samples and paste results back for validation; no statically verifiable representative final output is included, so substantial environment-specific review remains.
The files provide symbols, commands, paths, error mappings, an evaluation report, and external reference pointers, giving some auditability. Deductions apply because the evaluation dataset is unavailable, the report contains only aggregate figures, no independently reproducible test cases or CI coverage for key paths are shown, and static review cannot validate the underlying DOCA API claims.
- This skill guides BlueField/ConnectX DMA memory access; users should confirm the device, source and destination mmaps, permissions, length, and peer-to-peer data flow before execution, and review any sudo command.
- Do not treat the BENCHMARK or SKILLCARD PASS, signature, or version fields as independently verified; the evaluation dataset is unavailable and several metadata fields remain TBD.
- License declarations conflict across Apache-2.0, Apache-2.0 AND CC-BY-4.0, and NOASSERTION; this should be clarified before publication.
- Core guidance depends on NVIDIA documentation and a local DOCA installation; Chinese support and mainland-China network reachability are not demonstrated.
What does this skill do, and when should you use it?
This skill supports external developers using the DOCA DMA C library to copy data between two doca_mmap regions through the BlueField DMA engine. It covers context and memcpy-task setup, capability discovery, mmap permissions, progress-engine submission and completion handling, and DOCA_ERROR_* debugging. It assumes the DOCA SDK is already installed on Linux and does not cover installation. Licensed Apache-2.0, it provides agent guidance rather than application source code, bindings, or standalone build manifests.
Checks the local DOCA installation with pkg-config doca-dma and by inspecting /opt/mellanox/doca/{lib,include,samples,applications}; guides configuration of a doca_dma context and doca_dma_task_memcpy; applies doca_dma_cap_task_memcpy_* queries for task support, maximum buffer size, and buffer-list length; configures source and destination doca_mmap permissions and, when needed, doca_mmap_export_*; guides task submission through a progress engine and completion handling; diagnoses DOCA_ERROR_* results; and routes network transfers, process messaging, and DOCA installation questions to related skills.
- C or C++ developers copying large buffers between host and DPU memory who need to configure a DMA context and memcpy task.
- Engineers checking whether their device supports `doca_dma_task_memcpy` or determining the largest buffer supported in one task.
- Developers whose first submission returns `DOCA_ERROR_NOT_PERMITTED` and who need to inspect source and destination mmap permissions.
- Developers investigating missing completion events or `DOCA_ERROR_AGAIN` from a submitted DMA task.
- Systems developers choosing among DOCA DMA, DOCA RDMA, DOCA Comch, and a plain CPU memcpy implementation.
What are this skill's strengths and limitations?
- Covers DMA lifecycle, capability discovery, scatter-gather, mmap permissions, completion events, and error classification.
- Explicitly distinguishes DMA from RDMA, Comch, and small CPU memcpy use cases.
- Supports Rust, Go, Python, and other FFI consumers while treating the DOCA C ABI as authoritative.
- The repository README documents ongoing synchronization and maintenance plus signature verification.
- Requires a pre-existing DOCA SDK installation; it does not install or configure DOCA.
- Targets Linux systems with a BlueField DPU or ConnectX NIC; other platforms are not evidenced in the source.
- Ships no pre-written DMA application code, samples subtree, bindings, or standalone build manifest.
- The supplied material provides no skill-specific test suite, performance results, or detailed device compatibility matrix.
How do you install this skill?
Install the specific skill using the README-supported command: npx skills add nvidia/skills --skill doca-dma --yes. The skill becomes available to the agent for relevant tasks. The supplied source does not document a separate manual-copy procedure.
How do you use this skill?
First install the DOCA SDK on Linux at /opt/mellanox/doca and attach a BlueField DPU or ConnectX NIC. Then ask an agent questions such as “copy a host buffer to BlueField with DOCA DMA without using the CPU” or “my doca_dma_task_memcpy submission returns DOCA_ERROR_NOT_PERMITTED.” The skill routes the question to CAPABILITIES.md or TASKS.md as appropriate.
How does this skill compare with similar options?
The skill explicitly compares DOCA DMA with DOCA RDMA, DOCA Comch, and plain CPU memcpy: use RDMA when data must cross a network, Comch for host-DPU producer/consumer messaging, and CPU memcpy for tiny one-shot copies.