common/qat: remove tail write coalescing
authorFiona Trahe <fiona.trahe@intel.com>
Wed, 15 Jan 2020 14:32:08 +0000 (15:32 +0100)
committerAkhil Goyal <akhil.goyal@nxp.com>
Wed, 15 Jan 2020 14:20:27 +0000 (15:20 +0100)
The feature Coalescing Tail Writes on Enqueue is removed
as it is not thread-safe and a dual-thread feature will be added shortly.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
drivers/common/qat/qat_qp.c
drivers/common/qat/qat_qp.h

index 03f11f8..01ddce0 100644 (file)
@@ -538,7 +538,6 @@ static inline void
 txq_write_tail(struct qat_qp *qp, struct qat_queue *q) {
        WRITE_CSR_RING_TAIL(qp->mmap_bar_addr, q->hw_bundle_number,
                        q->hw_queue_number, q->tail);
-       q->nb_pending_requests = 0;
        q->csr_tail = q->tail;
 }
 
@@ -622,25 +621,20 @@ qat_enqueue_op_burst(void *qp, void **ops, uint16_t nb_ops)
 kick_tail:
        queue->tail = tail;
        tmp_qp->stats.enqueued_count += nb_ops_sent;
-       queue->nb_pending_requests += nb_ops_sent;
-       if (tmp_qp->inflights16 < QAT_CSR_TAIL_FORCE_WRITE_THRESH ||
-                   queue->nb_pending_requests > QAT_CSR_TAIL_WRITE_THRESH) {
-               txq_write_tail(tmp_qp, queue);
-       }
+       txq_write_tail(tmp_qp, queue);
        return nb_ops_sent;
 }
 
 uint16_t
 qat_dequeue_op_burst(void *qp, void **ops, uint16_t nb_ops)
 {
-       struct qat_queue *rx_queue, *tx_queue;
+       struct qat_queue *rx_queue;
        struct qat_qp *tmp_qp = (struct qat_qp *)qp;
        uint32_t head;
        uint32_t resp_counter = 0;
        uint8_t *resp_msg;
 
        rx_queue = &(tmp_qp->rx_q);
-       tx_queue = &(tmp_qp->tx_q);
        head = rx_queue->head;
        resp_msg = (uint8_t *)rx_queue->base_addr + rx_queue->head;
 
@@ -677,11 +671,7 @@ qat_dequeue_op_burst(void *qp, void **ops, uint16_t nb_ops)
                                                QAT_CSR_HEAD_WRITE_THRESH)
                        rxq_free_desc(tmp_qp, rx_queue);
        }
-       /* also check if tail needs to be advanced */
-       if (tmp_qp->inflights16 <= QAT_CSR_TAIL_FORCE_WRITE_THRESH &&
-               tx_queue->tail != tx_queue->csr_tail) {
-               txq_write_tail(tmp_qp, tx_queue);
-       }
+
        return resp_counter;
 }
 
index 980c2ba..9212ca4 100644 (file)
@@ -11,10 +11,6 @@ struct qat_pci_device;
 
 #define QAT_CSR_HEAD_WRITE_THRESH 32U
 /* number of requests to accumulate before writing head CSR */
-#define QAT_CSR_TAIL_WRITE_THRESH 32U
-/* number of requests to accumulate before writing tail CSR */
-#define QAT_CSR_TAIL_FORCE_WRITE_THRESH 256U
-/* number of inflights below which no tail write coalescing should occur */
 
 typedef int (*build_request_t)(void *op,
                uint8_t *req, void *op_cookie,
@@ -64,8 +60,6 @@ struct qat_queue {
        uint32_t        csr_tail;               /* last written tail value */
        uint16_t        nb_processed_responses;
        /* number of responses processed since last CSR head write */
-       uint16_t        nb_pending_requests;
-       /* number of requests pending since last CSR tail write */
 };
 
 struct qat_qp {