Lines Matching +full:post +full:- +full:processing

4 /*-
5 * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
29 * - Redistributions of source code must retain the above copyright
31 * - Redistributions in binary form must reproduce the above copyright
35 * - Neither the name of Intel Corporation nor the names of its
73 * RVT_S_SIGNAL_REQ_WR - set if QP send WRs contain completion signaled
74 * RVT_S_BUSY - send tasklet is processing the QP
75 * RVT_S_TIMER - the RC retry timer is active
76 * RVT_S_ACK_PENDING - an ACK is waiting to be sent after RDMA read/atomics
77 * RVT_S_WAIT_FENCE - waiting for all prior RDMA read or atomic SWQEs
78 * before processing the next SWQE
79 * RVT_S_WAIT_RDMAR - waiting for a RDMA read or atomic SWQE to complete
80 * before processing the next SWQE
81 * RVT_S_WAIT_RNR - waiting for RNR timeout
82 * RVT_S_WAIT_SSN_CREDIT - waiting for RC credits to process next SWQE
83 * RVT_S_WAIT_DMA - waiting for send DMA queue to drain before generating
85 * RVT_S_WAIT_PIO - waiting for a send buffer to be available
86 * RVT_S_WAIT_PIO_DRAIN - waiting for a qp to drain pio packets
87 * RVT_S_WAIT_TX - waiting for a struct verbs_txreq to be available
88 * RVT_S_WAIT_DMA_DESC - waiting for DMA descriptors to be available
89 * RVT_S_WAIT_KMEM - waiting for kernel memory to be available
90 * RVT_S_WAIT_PSN - waiting for a packet to exit the send DMA queue
91 * RVT_S_WAIT_ACK - waiting for an ACK packet before sending more requests
92 * RVT_S_SEND_ONE - send one packet, request ACK, then wait for ACK
93 * RVT_S_ECN - a BECN was queued to the send engine
157 * in qp->s_max_sge.
177 * and stored in qp->r_rq.max_sge (or srq->rq.max_sge).
245 * rvt_operation_params - op table entry
246 * @length - the length to copy into the swqe entry
247 * @qpt_support - a bit mask indicating QP type support
248 * @flags - RVT_OPERATION flags (see above)
250 * This supports table driven post send so that
303 u8 s_max_sge; /* size of s_wq->sg_list */
331 /* post send line */
356 u32 s_acked; /* last un-ACK'ed entry */
364 u8 s_nak_state; /* non-zero if NAK is pending */
365 u8 r_nak_state; /* non-zero if NAK is pending */
394 #define RVT_BITS_PER_PAGE_MASK (RVT_BITS_PER_PAGE - 1)
398 * QPN-map pages start out as NULL, they get allocated upon
451 return (struct rvt_swqe *)((char *)qp->s_wq + in rvt_get_swqe_ptr()
453 qp->s_max_sge * in rvt_get_swqe_ptr()
464 ((char *)rq->wq->wq + in rvt_get_rwqe_ptr()
466 rq->max_sge * sizeof(struct ib_sge)) * n); in rvt_get_rwqe_ptr()
470 * rvt_get_qp - get a QP reference
471 * @qp - the QP to hold
475 atomic_inc(&qp->refcount); in rvt_get_qp()
479 * rvt_put_qp - release a QP reference
480 * @qp - the QP to release
484 if (qp && atomic_dec_and_test(&qp->refcount)) in rvt_put_qp()
485 wake_up(&qp->wait); in rvt_put_qp()
489 * rvt_qp_wqe_reserve - reserve operation
490 * @qp - the rvt qp
491 * @wqe - the send wqe
493 * This routine used in post send to record
500 wqe->wr.send_flags |= RVT_SEND_RESERVE_USED; in rvt_qp_wqe_reserve()
501 atomic_inc(&qp->s_reserved_used); in rvt_qp_wqe_reserve()
505 * rvt_qp_wqe_unreserve - clean reserved operation
506 * @qp - the rvt qp
507 * @wqe - the send wqe
512 * s_last to insure that post send sees a stable
523 if (unlikely(wqe->wr.send_flags & RVT_SEND_RESERVE_USED)) { in rvt_qp_wqe_unreserve()
524 wqe->wr.send_flags &= ~RVT_SEND_RESERVE_USED; in rvt_qp_wqe_unreserve()
525 atomic_dec(&qp->s_reserved_used); in rvt_qp_wqe_unreserve()
526 /* insure no compiler re-order up to s_last change */ in rvt_qp_wqe_unreserve()