net/mlx5e: kTLS, Do not fill edge for the DUMP WQEs in TX flow
authorTariq Toukan <tariqt@mellanox.com>
Thu, 9 Apr 2020 09:53:31 +0000 (12:53 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Sat, 9 May 2020 08:05:41 +0000 (01:05 -0700)
Every single DUMP WQE resides in a single WQEBB.
As the pi is calculated per each one separately, there is
no real need for a contiguous room for them, allow them to populate
different WQ fragments.
This reduces WQ waste and improves its utilization.

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

index efc271e24b03247a3be9349db29cb428128d296c..1c9d0174676df7d57f0fdd699d455845ff19edfe 100644 (file)
@@ -272,6 +272,7 @@ tx_post_resync_dump(struct mlx5e_txqsq *sq, skb_frag_t *frag, u32 tisn, bool fir
        int fsz;
        u16 pi;
 
+       BUILD_BUG_ON(MLX5E_KTLS_DUMP_WQEBBS != 1);
        pi = mlx5_wq_cyc_ctr2ix(&sq->wq, sq->pc);
        wqe = MLX5E_TLS_FETCH_DUMP_WQE(sq, pi);
 
@@ -340,7 +341,6 @@ mlx5e_ktls_tx_handle_ooo(struct mlx5e_ktls_offload_context_tx *priv_tx,
        struct mlx5e_sq_stats *stats = sq->stats;
        enum mlx5e_ktls_sync_retval ret;
        struct tx_sync_info info = {};
-       u8 num_wqebbs;
        int i = 0;
 
        ret = tx_sync_info_get(priv_tx, seq, datalen, &info);
@@ -369,9 +369,6 @@ mlx5e_ktls_tx_handle_ooo(struct mlx5e_ktls_offload_context_tx *priv_tx,
                return MLX5E_KTLS_SYNC_DONE;
        }
 
-       num_wqebbs = mlx5e_ktls_dumps_num_wqebbs(sq, info.nr_frags, info.sync_len);
-       mlx5e_txqsq_get_next_pi(sq, num_wqebbs);
-
        for (; i < info.nr_frags; i++) {
                unsigned int orig_fsz, frag_offset = 0, n = 0;
                skb_frag_t *f = &info.frags[i];