OSDN Git Service

net/mlx5e: Move the TLS resync check out of the function
authorMaxim Mikityanskiy <maximmi@mellanox.com>
Thu, 30 Jul 2020 14:53:46 +0000 (17:53 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Tue, 22 Sep 2020 02:41:15 +0000 (19:41 -0700)
Before this patch, mlx5e_ktls_tx_handle_resync_dump_comp checked for
resync_dump_frag_page. It happened for all WQEs without an SKB,
including padding WQEs, and required a function call. Normally, padding
WQEs happen more often than TLS resyncs. Take this check out of the
function and put it to an inline function to save a call on all padding
WQEs.

Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c

index f486154..b140e13 100644 (file)
@@ -345,9 +345,6 @@ void mlx5e_ktls_tx_handle_resync_dump_comp(struct mlx5e_txqsq *sq,
        struct mlx5e_sq_stats *stats;
        struct mlx5e_sq_dma *dma;
 
-       if (!wi->resync_dump_frag_page)
-               return;
-
        dma = mlx5e_dma_get(sq, (*dma_fifo_cc)++);
        stats = sq->stats;
 
index ff4c740..fcfb156 100644 (file)
@@ -29,11 +29,19 @@ void mlx5e_ktls_handle_get_psv_completion(struct mlx5e_icosq_wqe_info *wi,
 void mlx5e_ktls_tx_handle_resync_dump_comp(struct mlx5e_txqsq *sq,
                                           struct mlx5e_tx_wqe_info *wi,
                                           u32 *dma_fifo_cc);
+static inline void
+mlx5e_ktls_tx_try_handle_resync_dump_comp(struct mlx5e_txqsq *sq,
+                                         struct mlx5e_tx_wqe_info *wi,
+                                         u32 *dma_fifo_cc)
+{
+       if (unlikely(wi->resync_dump_frag_page))
+               mlx5e_ktls_tx_handle_resync_dump_comp(sq, wi, dma_fifo_cc);
+}
 #else
 static inline void
-mlx5e_ktls_tx_handle_resync_dump_comp(struct mlx5e_txqsq *sq,
-                                     struct mlx5e_tx_wqe_info *wi,
-                                     u32 *dma_fifo_cc)
+mlx5e_ktls_tx_try_handle_resync_dump_comp(struct mlx5e_txqsq *sq,
+                                         struct mlx5e_tx_wqe_info *wi,
+                                         u32 *dma_fifo_cc)
 {
 }
 
index e458a0a..aea3039 100644 (file)
@@ -545,7 +545,7 @@ bool mlx5e_poll_tx_cq(struct mlx5e_cq *cq, int napi_budget)
                        sqcc += wi->num_wqebbs;
 
                        if (unlikely(!skb)) {
-                               mlx5e_ktls_tx_handle_resync_dump_comp(sq, wi, &dma_fifo_cc);
+                               mlx5e_ktls_tx_try_handle_resync_dump_comp(sq, wi, &dma_fifo_cc);
                                continue;
                        }
 
@@ -610,7 +610,7 @@ void mlx5e_free_txqsq_descs(struct mlx5e_txqsq *sq)
                sqcc += wi->num_wqebbs;
 
                if (!skb) {
-                       mlx5e_ktls_tx_handle_resync_dump_comp(sq, wi, &dma_fifo_cc);
+                       mlx5e_ktls_tx_try_handle_resync_dump_comp(sq, wi, &dma_fifo_cc);
                        continue;
                }