include/rdma/rdma_vt.h
Source file repositories/reference/linux-study-clean/include/rdma/rdma_vt.h
File Facts
- System
- Linux kernel
- Corpus path
include/rdma/rdma_vt.h- Extension
.h- Size
- 14135 bytes
- Lines
- 523
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/spinlock.hlinux/list.hlinux/hash.hrdma/ib_verbs.hrdma/ib_mad.hrdma/rdmavt_mr.h
Detected Declarations
struct trap_liststruct rvt_qpstruct rvt_qpn_tablestruct rvt_ibportstruct rvt_driver_paramsstruct rvt_ucontextstruct rvt_pdstruct rvt_ahstruct rvt_mmap_infostruct rvt_wssstruct rvt_dev_infostruct rvt_swqestruct rvt_driver_providedstruct rvt_dev_infofunction rvt_get_npkeysfunction rvt_max_atomicfunction rvt_size_atomicfunction rvt_get_pkey
Annotated Snippet
struct trap_list {
u32 list_len;
struct list_head list;
};
struct rvt_qp;
struct rvt_qpn_table;
struct rvt_ibport {
struct rvt_qp __rcu *qp[2];
struct ib_mad_agent *send_agent; /* agent for SMI (traps) */
struct rb_root mcast_tree;
spinlock_t lock; /* protect changes in this struct */
/* non-zero when timer is set */
unsigned long mkey_lease_timeout;
unsigned long trap_timeout;
__be64 gid_prefix; /* in network order */
__be64 mkey;
u64 tid;
u32 port_cap_flags;
u16 port_cap3_flags;
u32 pma_sample_start;
u32 pma_sample_interval;
__be16 pma_counter_select[5];
u16 pma_tag;
u16 mkey_lease_period;
u32 sm_lid;
u8 sm_sl;
u8 mkeyprot;
u8 subnet_timeout;
u8 vl_high_limit;
/*
* Driver is expected to keep these up to date. These
* counters are informational only and not required to be
* completely accurate.
*/
u64 n_rc_resends;
u64 n_seq_naks;
u64 n_rdma_seq;
u64 n_rnr_naks;
u64 n_other_naks;
u64 n_loop_pkts;
u64 n_pkt_drops;
u64 n_vl15_dropped;
u64 n_rc_timeouts;
u64 n_dmawait;
u64 n_unaligned;
u64 n_rc_dupreq;
u64 n_rc_seqnak;
u64 n_rc_crwaits;
u16 pkey_violations;
u16 qkey_violations;
u16 mkey_violations;
/* Hot-path per CPU counters to avoid cacheline trading to update */
u64 z_rc_acks;
u64 z_rc_qacks;
u64 z_rc_delayed_comp;
u64 __percpu *rc_acks;
u64 __percpu *rc_qacks;
u64 __percpu *rc_delayed_comp;
void *priv; /* driver private data */
/*
* The pkey table is allocated and maintained by the driver. Drivers
* need to have access to this before registering with rdmav. However
* rdmavt will need access to it so drivers need to provide this during
* the attach port API call.
*/
u16 *pkey_table;
struct rvt_ah *sm_ah;
/*
* Keep a list of traps that have not been repressed. They will be
* resent based on trap_timer.
*/
struct trap_list trap_lists[RVT_MAX_TRAP_LISTS];
struct timer_list trap_timer;
};
#define RVT_CQN_MAX 16 /* maximum length of cq name */
#define RVT_SGE_COPY_MEMCPY 0
#define RVT_SGE_COPY_CACHELESS 1
#define RVT_SGE_COPY_ADAPTIVE 2
/*
Annotation
- Immediate include surface: `linux/spinlock.h`, `linux/list.h`, `linux/hash.h`, `rdma/ib_verbs.h`, `rdma/ib_mad.h`, `rdma/rdmavt_mr.h`.
- Detected declarations: `struct trap_list`, `struct rvt_qp`, `struct rvt_qpn_table`, `struct rvt_ibport`, `struct rvt_driver_params`, `struct rvt_ucontext`, `struct rvt_pd`, `struct rvt_ah`, `struct rvt_mmap_info`, `struct rvt_wss`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.