/* * 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;includerdma.h>
/* dynamic connection parameters defined in [MS-SMBD] 3.1.1.1 *///smbdirect enumkeep_alive_status; 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 smbd_keep_alive_interval; /* Maximum number of pages in a single RDMA write/read on this connection */ smbd_max_receive_size intmax_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_countexternint smbd_receive_credit_max;
wait_queue_head_t wait_mr; struct work_struct mr_recovery_work;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
wait_queue_head_t wait_for_mr_cleanup;
/* Activity accounting */
atomic_t send_pending;
wait_queue_head_t * 3. * 4. Receive and reassembly queues for data
wait_queue_head_t *
/* Receive queue */ int count_receive_queue
wait_queue_head_t
boolintri_rc
wait_queue_head_tstruct completion ri_done
structworkqueue_structworkqueue struct java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* Interface for carrying upper layer I/O through send/recv */ int smbd_recv(struct smbd_connection *info, struct msghdr *msg); int smbd_send(struct *server int num_rqst, structRDMA /write on connection/
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.