Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux
* 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux: net/mlx5: kTLS, Improve TLS params layout structures net/mlx5: Avoid eswitch header inclusion in fs core layer net/mlx5: Avoid RDMA file inclusion in core driver net/mlx5: Add support in query QP, CQ and MKEY segments net/mlx5: Export resource dump interface Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:
commit
e396eccf0f
|
@ -23,6 +23,9 @@ static const char *const mlx5_rsc_sgmt_name[] = {
|
||||||
MLX5_SGMT_STR_ASSING(SX_SLICE_ALL),
|
MLX5_SGMT_STR_ASSING(SX_SLICE_ALL),
|
||||||
MLX5_SGMT_STR_ASSING(RDB),
|
MLX5_SGMT_STR_ASSING(RDB),
|
||||||
MLX5_SGMT_STR_ASSING(RX_SLICE_ALL),
|
MLX5_SGMT_STR_ASSING(RX_SLICE_ALL),
|
||||||
|
MLX5_SGMT_STR_ASSING(PRM_QUERY_QP),
|
||||||
|
MLX5_SGMT_STR_ASSING(PRM_QUERY_CQ),
|
||||||
|
MLX5_SGMT_STR_ASSING(PRM_QUERY_MKEY),
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mlx5_rsc_dump {
|
struct mlx5_rsc_dump {
|
||||||
|
@ -130,11 +133,13 @@ struct mlx5_rsc_dump_cmd *mlx5_rsc_dump_cmd_create(struct mlx5_core_dev *dev,
|
||||||
cmd->mem_size = key->size;
|
cmd->mem_size = key->size;
|
||||||
return cmd;
|
return cmd;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(mlx5_rsc_dump_cmd_create);
|
||||||
|
|
||||||
void mlx5_rsc_dump_cmd_destroy(struct mlx5_rsc_dump_cmd *cmd)
|
void mlx5_rsc_dump_cmd_destroy(struct mlx5_rsc_dump_cmd *cmd)
|
||||||
{
|
{
|
||||||
kfree(cmd);
|
kfree(cmd);
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(mlx5_rsc_dump_cmd_destroy);
|
||||||
|
|
||||||
int mlx5_rsc_dump_next(struct mlx5_core_dev *dev, struct mlx5_rsc_dump_cmd *cmd,
|
int mlx5_rsc_dump_next(struct mlx5_core_dev *dev, struct mlx5_rsc_dump_cmd *cmd,
|
||||||
struct page *page, int *size)
|
struct page *page, int *size)
|
||||||
|
@ -155,6 +160,7 @@ int mlx5_rsc_dump_next(struct mlx5_core_dev *dev, struct mlx5_rsc_dump_cmd *cmd,
|
||||||
|
|
||||||
return more_dump;
|
return more_dump;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(mlx5_rsc_dump_next);
|
||||||
|
|
||||||
#define MLX5_RSC_DUMP_MENU_SEGMENT 0xffff
|
#define MLX5_RSC_DUMP_MENU_SEGMENT 0xffff
|
||||||
static int mlx5_rsc_dump_menu(struct mlx5_core_dev *dev)
|
static int mlx5_rsc_dump_menu(struct mlx5_core_dev *dev)
|
||||||
|
|
|
@ -4,41 +4,10 @@
|
||||||
#ifndef __MLX5_RSC_DUMP_H
|
#ifndef __MLX5_RSC_DUMP_H
|
||||||
#define __MLX5_RSC_DUMP_H
|
#define __MLX5_RSC_DUMP_H
|
||||||
|
|
||||||
|
#include <linux/mlx5/rsc_dump.h>
|
||||||
#include <linux/mlx5/driver.h>
|
#include <linux/mlx5/driver.h>
|
||||||
#include "mlx5_core.h"
|
#include "mlx5_core.h"
|
||||||
|
|
||||||
enum mlx5_sgmt_type {
|
|
||||||
MLX5_SGMT_TYPE_HW_CQPC,
|
|
||||||
MLX5_SGMT_TYPE_HW_SQPC,
|
|
||||||
MLX5_SGMT_TYPE_HW_RQPC,
|
|
||||||
MLX5_SGMT_TYPE_FULL_SRQC,
|
|
||||||
MLX5_SGMT_TYPE_FULL_CQC,
|
|
||||||
MLX5_SGMT_TYPE_FULL_EQC,
|
|
||||||
MLX5_SGMT_TYPE_FULL_QPC,
|
|
||||||
MLX5_SGMT_TYPE_SND_BUFF,
|
|
||||||
MLX5_SGMT_TYPE_RCV_BUFF,
|
|
||||||
MLX5_SGMT_TYPE_SRQ_BUFF,
|
|
||||||
MLX5_SGMT_TYPE_CQ_BUFF,
|
|
||||||
MLX5_SGMT_TYPE_EQ_BUFF,
|
|
||||||
MLX5_SGMT_TYPE_SX_SLICE,
|
|
||||||
MLX5_SGMT_TYPE_SX_SLICE_ALL,
|
|
||||||
MLX5_SGMT_TYPE_RDB,
|
|
||||||
MLX5_SGMT_TYPE_RX_SLICE_ALL,
|
|
||||||
MLX5_SGMT_TYPE_MENU,
|
|
||||||
MLX5_SGMT_TYPE_TERMINATE,
|
|
||||||
|
|
||||||
MLX5_SGMT_TYPE_NUM, /* Keep last */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct mlx5_rsc_key {
|
|
||||||
enum mlx5_sgmt_type rsc;
|
|
||||||
int index1;
|
|
||||||
int index2;
|
|
||||||
int num_of_obj1;
|
|
||||||
int num_of_obj2;
|
|
||||||
int size;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define MLX5_RSC_DUMP_ALL 0xFFFF
|
#define MLX5_RSC_DUMP_ALL 0xFFFF
|
||||||
struct mlx5_rsc_dump_cmd;
|
struct mlx5_rsc_dump_cmd;
|
||||||
struct mlx5_rsc_dump;
|
struct mlx5_rsc_dump;
|
||||||
|
|
|
@ -182,7 +182,7 @@ mlx5e_notify_hw(struct mlx5_wq_cyc *wq, u16 pc, void __iomem *uar_map,
|
||||||
|
|
||||||
static inline bool mlx5e_transport_inline_tx_wqe(struct mlx5_wqe_ctrl_seg *cseg)
|
static inline bool mlx5e_transport_inline_tx_wqe(struct mlx5_wqe_ctrl_seg *cseg)
|
||||||
{
|
{
|
||||||
return cseg && !!cseg->tisn;
|
return cseg && !!cseg->tis_tir_num;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u8
|
static inline u8
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#define MLX5E_KTLS_PROGRESS_WQE_SZ \
|
#define MLX5E_KTLS_PROGRESS_WQE_SZ \
|
||||||
(offsetof(struct mlx5e_tx_wqe, tls_progress_params_ctx) + \
|
(offsetof(struct mlx5e_tx_wqe, tls_progress_params_ctx) + \
|
||||||
MLX5_ST_SZ_BYTES(tls_progress_params))
|
sizeof(struct mlx5_wqe_tls_progress_params_seg))
|
||||||
#define MLX5E_KTLS_PROGRESS_WQEBBS \
|
#define MLX5E_KTLS_PROGRESS_WQEBBS \
|
||||||
(DIV_ROUND_UP(MLX5E_KTLS_PROGRESS_WQE_SZ, MLX5_SEND_WQE_BB))
|
(DIV_ROUND_UP(MLX5E_KTLS_PROGRESS_WQE_SZ, MLX5_SEND_WQE_BB))
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ build_static_params(struct mlx5e_umr_wqe *wqe, u16 pc, u32 sqn,
|
||||||
cseg->qpn_ds = cpu_to_be32((sqn << MLX5_WQE_CTRL_QPN_SHIFT) |
|
cseg->qpn_ds = cpu_to_be32((sqn << MLX5_WQE_CTRL_QPN_SHIFT) |
|
||||||
STATIC_PARAMS_DS_CNT);
|
STATIC_PARAMS_DS_CNT);
|
||||||
cseg->fm_ce_se = fence ? MLX5_FENCE_MODE_INITIATOR_SMALL : 0;
|
cseg->fm_ce_se = fence ? MLX5_FENCE_MODE_INITIATOR_SMALL : 0;
|
||||||
cseg->tisn = cpu_to_be32(priv_tx->tisn << 8);
|
cseg->tis_tir_num = cpu_to_be32(priv_tx->tisn << 8);
|
||||||
|
|
||||||
ucseg->flags = MLX5_UMR_INLINE;
|
ucseg->flags = MLX5_UMR_INLINE;
|
||||||
ucseg->bsf_octowords = cpu_to_be16(MLX5_ST_SZ_BYTES(tls_static_params) / 16);
|
ucseg->bsf_octowords = cpu_to_be16(MLX5_ST_SZ_BYTES(tls_static_params) / 16);
|
||||||
|
@ -75,10 +75,14 @@ build_static_params(struct mlx5e_umr_wqe *wqe, u16 pc, u32 sqn,
|
||||||
static void
|
static void
|
||||||
fill_progress_params_ctx(void *ctx, struct mlx5e_ktls_offload_context_tx *priv_tx)
|
fill_progress_params_ctx(void *ctx, struct mlx5e_ktls_offload_context_tx *priv_tx)
|
||||||
{
|
{
|
||||||
MLX5_SET(tls_progress_params, ctx, tisn, priv_tx->tisn);
|
struct mlx5_wqe_tls_progress_params_seg *params;
|
||||||
MLX5_SET(tls_progress_params, ctx, record_tracker_state,
|
|
||||||
|
params = ctx;
|
||||||
|
|
||||||
|
params->tis_tir_num = cpu_to_be32(priv_tx->tisn);
|
||||||
|
MLX5_SET(tls_progress_params, params->ctx, record_tracker_state,
|
||||||
MLX5E_TLS_PROGRESS_PARAMS_RECORD_TRACKER_STATE_START);
|
MLX5E_TLS_PROGRESS_PARAMS_RECORD_TRACKER_STATE_START);
|
||||||
MLX5_SET(tls_progress_params, ctx, auth_state,
|
MLX5_SET(tls_progress_params, params->ctx, auth_state,
|
||||||
MLX5E_TLS_PROGRESS_PARAMS_AUTH_STATE_NO_OFFLOAD);
|
MLX5E_TLS_PROGRESS_PARAMS_AUTH_STATE_NO_OFFLOAD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -284,7 +288,7 @@ tx_post_resync_dump(struct mlx5e_txqsq *sq, skb_frag_t *frag, u32 tisn, bool fir
|
||||||
|
|
||||||
cseg->opmod_idx_opcode = cpu_to_be32((sq->pc << 8) | MLX5_OPCODE_DUMP);
|
cseg->opmod_idx_opcode = cpu_to_be32((sq->pc << 8) | MLX5_OPCODE_DUMP);
|
||||||
cseg->qpn_ds = cpu_to_be32((sq->sqn << 8) | ds_cnt);
|
cseg->qpn_ds = cpu_to_be32((sq->sqn << 8) | ds_cnt);
|
||||||
cseg->tisn = cpu_to_be32(tisn << 8);
|
cseg->tis_tir_num = cpu_to_be32(tisn << 8);
|
||||||
cseg->fm_ce_se = first ? MLX5_FENCE_MODE_INITIATOR_SMALL : 0;
|
cseg->fm_ce_se = first ? MLX5_FENCE_MODE_INITIATOR_SMALL : 0;
|
||||||
|
|
||||||
fsz = skb_frag_size(frag);
|
fsz = skb_frag_size(frag);
|
||||||
|
|
|
@ -305,7 +305,7 @@ err_out:
|
||||||
void mlx5e_tls_handle_tx_wqe(struct mlx5e_txqsq *sq, struct mlx5_wqe_ctrl_seg *cseg,
|
void mlx5e_tls_handle_tx_wqe(struct mlx5e_txqsq *sq, struct mlx5_wqe_ctrl_seg *cseg,
|
||||||
struct mlx5e_accel_tx_tls_state *state)
|
struct mlx5e_accel_tx_tls_state *state)
|
||||||
{
|
{
|
||||||
cseg->tisn = cpu_to_be32(state->tls_tisn << 8);
|
cseg->tis_tir_num = cpu_to_be32(state->tls_tisn << 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tls_update_resync_sn(struct net_device *netdev,
|
static int tls_update_resync_sn(struct net_device *netdev,
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
#ifndef MLX5_CORE_CQ_H
|
#ifndef MLX5_CORE_CQ_H
|
||||||
#define MLX5_CORE_CQ_H
|
#define MLX5_CORE_CQ_H
|
||||||
|
|
||||||
#include <rdma/ib_verbs.h>
|
|
||||||
#include <linux/mlx5/driver.h>
|
#include <linux/mlx5/driver.h>
|
||||||
#include <linux/refcount.h>
|
#include <linux/refcount.h>
|
||||||
|
|
||||||
|
|
|
@ -458,6 +458,15 @@ enum {
|
||||||
MLX5_OPC_MOD_TLS_TIR_PROGRESS_PARAMS = 0x2,
|
MLX5_OPC_MOD_TLS_TIR_PROGRESS_PARAMS = 0x2,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct mlx5_wqe_tls_static_params_seg {
|
||||||
|
u8 ctx[MLX5_ST_SZ_BYTES(tls_static_params)];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mlx5_wqe_tls_progress_params_seg {
|
||||||
|
__be32 tis_tir_num;
|
||||||
|
u8 ctx[MLX5_ST_SZ_BYTES(tls_progress_params)];
|
||||||
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
MLX5_SET_PORT_RESET_QKEY = 0,
|
MLX5_SET_PORT_RESET_QKEY = 0,
|
||||||
MLX5_SET_PORT_GUID0 = 16,
|
MLX5_SET_PORT_GUID0 = 16,
|
||||||
|
|
|
@ -10640,16 +10640,13 @@ struct mlx5_ifc_tls_static_params_bits {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mlx5_ifc_tls_progress_params_bits {
|
struct mlx5_ifc_tls_progress_params_bits {
|
||||||
u8 reserved_at_0[0x8];
|
|
||||||
u8 tisn[0x18];
|
|
||||||
|
|
||||||
u8 next_record_tcp_sn[0x20];
|
u8 next_record_tcp_sn[0x20];
|
||||||
|
|
||||||
u8 hw_resync_tcp_sn[0x20];
|
u8 hw_resync_tcp_sn[0x20];
|
||||||
|
|
||||||
u8 record_tracker_state[0x2];
|
u8 record_tracker_state[0x2];
|
||||||
u8 auth_state[0x2];
|
u8 auth_state[0x2];
|
||||||
u8 reserved_at_64[0x4];
|
u8 reserved_at_44[0x4];
|
||||||
u8 hw_offset_record_number[0x18];
|
u8 hw_offset_record_number[0x18];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -209,7 +209,7 @@ struct mlx5_wqe_ctrl_seg {
|
||||||
__be32 general_id;
|
__be32 general_id;
|
||||||
__be32 imm;
|
__be32 imm;
|
||||||
__be32 umr_mkey;
|
__be32 umr_mkey;
|
||||||
__be32 tisn;
|
__be32 tis_tir_num;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
|
||||||
|
/* Copyright (c) 2020 Mellanox Technologies inc. */
|
||||||
|
|
||||||
|
#include <linux/mlx5/driver.h>
|
||||||
|
|
||||||
|
#ifndef __MLX5_RSC_DUMP
|
||||||
|
#define __MLX5_RSC_DUMP
|
||||||
|
|
||||||
|
enum mlx5_sgmt_type {
|
||||||
|
MLX5_SGMT_TYPE_HW_CQPC,
|
||||||
|
MLX5_SGMT_TYPE_HW_SQPC,
|
||||||
|
MLX5_SGMT_TYPE_HW_RQPC,
|
||||||
|
MLX5_SGMT_TYPE_FULL_SRQC,
|
||||||
|
MLX5_SGMT_TYPE_FULL_CQC,
|
||||||
|
MLX5_SGMT_TYPE_FULL_EQC,
|
||||||
|
MLX5_SGMT_TYPE_FULL_QPC,
|
||||||
|
MLX5_SGMT_TYPE_SND_BUFF,
|
||||||
|
MLX5_SGMT_TYPE_RCV_BUFF,
|
||||||
|
MLX5_SGMT_TYPE_SRQ_BUFF,
|
||||||
|
MLX5_SGMT_TYPE_CQ_BUFF,
|
||||||
|
MLX5_SGMT_TYPE_EQ_BUFF,
|
||||||
|
MLX5_SGMT_TYPE_SX_SLICE,
|
||||||
|
MLX5_SGMT_TYPE_SX_SLICE_ALL,
|
||||||
|
MLX5_SGMT_TYPE_RDB,
|
||||||
|
MLX5_SGMT_TYPE_RX_SLICE_ALL,
|
||||||
|
MLX5_SGMT_TYPE_PRM_QUERY_QP,
|
||||||
|
MLX5_SGMT_TYPE_PRM_QUERY_CQ,
|
||||||
|
MLX5_SGMT_TYPE_PRM_QUERY_MKEY,
|
||||||
|
MLX5_SGMT_TYPE_MENU,
|
||||||
|
MLX5_SGMT_TYPE_TERMINATE,
|
||||||
|
|
||||||
|
MLX5_SGMT_TYPE_NUM, /* Keep last */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mlx5_rsc_key {
|
||||||
|
enum mlx5_sgmt_type rsc;
|
||||||
|
int index1;
|
||||||
|
int index2;
|
||||||
|
int num_of_obj1;
|
||||||
|
int num_of_obj2;
|
||||||
|
int size;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mlx5_rsc_dump_cmd;
|
||||||
|
|
||||||
|
struct mlx5_rsc_dump_cmd *mlx5_rsc_dump_cmd_create(struct mlx5_core_dev *dev,
|
||||||
|
struct mlx5_rsc_key *key);
|
||||||
|
void mlx5_rsc_dump_cmd_destroy(struct mlx5_rsc_dump_cmd *cmd);
|
||||||
|
int mlx5_rsc_dump_next(struct mlx5_core_dev *dev, struct mlx5_rsc_dump_cmd *cmd,
|
||||||
|
struct page *page, int *size);
|
||||||
|
#endif /* __MLX5_RSC_DUMP */
|
Loading…
Reference in New Issue