/* * The context for the SMBDirect transport * Everything related to the transport is here. It has several logical parts * 1. RDMA related structures * 2. SMBDirect connection parameters * 3. Memory registrations * 4. Receive and reassembly queues for data receive path * 5. mempools for allocating packets
*/ struct smbd_connection { struct smbdirect_socket socket;
int ri_rc; struct completion ri_done;
wait_queue_head_t status_wait;
spinlock_t lock_new_credits_offered; int new_credits_offered;
/* dynamic connection parameters defined in [MS-SMBD] 3.1.1.1 */ enum keep_alive_status keep_alive_requested; int protocol;
atomic_t send_credits;
atomic_t receive_credits;
u16 receive_credit_target;
/* Memory registrations */ /* Maximum number of RDMA read/write outstanding on this connection */ bool legacy_iwarp;
u8 initiator_depth;
u8 responder_resources; /* Maximum number of pages in a single RDMA write/read on this connection */ int max_frmr_depth; /* * If payload is less than or equal to the threshold, * use RDMA send/recv to send upper layer I/O. * If payload is more than the threshold, * use RDMA read/write through memory registration for I/O.
*/ int rdma_readwrite_threshold; enum ib_mr_type mr_type; struct list_head mr_list;
spinlock_t mr_list_lock; /* The number of available MRs ready for memory registration */
atomic_t mr_ready_count;
atomic_t mr_used_count;
wait_queue_head_t wait_mr; struct work_struct mr_recovery_work; /* Used by transport to wait until all MRs are returned */
wait_queue_head_t wait_for_mr_cleanup;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.