Files
scst/srpt/AGENTS.md
T
Gleb Chesnokov 38823eb5e2 docs: Add repository guidance for agents
SCST spans a kernel core, transport drivers, user-space programs and
configuration tools. Each area has different ABI, build, validation and
safety constraints, but the repository has no persistent guidance for
automated contributors.

Add a root AGENTS.md with cross-component contracts and nested files for
components with independent boundaries. Record authoritative sources,
generated files, compatibility policy and destructive workflows so
changes start from the correct context and avoid live storage state.
2026-08-21 10:05:36 +03:00

2.4 KiB

SRPT

Ownership and sources of truth

This directory owns the ib_srpt SCST target over SRP on InfiniBand and, through RDMA/CM, RoCE or iWARP. src/ib_srpt.c and src/ib_srpt.h own the transport, channel/session, RDMA, command, and teardown implementation. src/Kbuild, src/Kconfig, Makefile, and conftest/ own its in-tree, out-of-tree, distribution-RDMA, and OFED compatibility.

session-management.txt is a useful lifecycle design reference and README describes configuration. Verify exact states, callbacks, and supported APIs in current code and conftests. README_in-tree and README.ofed are historical integration procedures. Testing.txt is a privileged maintainer checklist with historical steps, not an automated test suite, and Measurement-Results.txt is a hardware-specific historical snapshot; none of these establishes current kernel, OFED, test, or performance policy.

Change boundaries

  • The driver depends on SCST target/session APIs and RDMA core/CM/IB APIs. Preserve SCST and RDMA object references across login/relogin, QP completion, data transfer, abort/task management, disconnect, session unregister, port removal, and module exit.
  • Completion, CM callbacks, async events, work, and SCST callbacks can race. Re-derive current channel state, mutex/spinlock context, completion-once, QP drain, and asynchronous free ordering from code for every lifecycle change.
  • Keep RDMA/OFED conftests as capability probes. Do not replace them with unverified kernel- or vendor-version assumptions.
  • Changes to SCST callbacks or sysfs [key] attributes require the repository- wide driver and scstadmin audits described in the root instructions.

Generated files, validation, and safety

conftest/*/result-*.txt, conftest build logs, objects, modules, Module.symvers, and dependency metadata are generated. The focused compile entry point is top-level make srpt or this component's Makefile; the build runs compatibility conftests. There is no safe local unit-test target.

The procedures in Testing.txt include module/service churn, sysfs writes, remote initiator logins, resets, fault injection, filesystems, stress I/O, and device-overwriting benchmarks. Run none of them without explicit disposable target/initiator, HCA ports, fabric, devices, and recovery authorization. Do not install OFED, change RDMA state, or load/unload SRP modules implicitly.