Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e43a2a5 authored by Bodong Wang's avatar Bodong Wang Committed by Doug Ledford
Browse files

IB/mlx5: Report mlx5 CQE compression caps during query



The capabilities include:
- Max number of compressed and aggregated CQEs in a single session,
  while zero means unsupported.
- For Responder, there are two formats of mini CQE: mini CQE with Rx
  hash and mini CQE with checksum. They're mutual exclusive.

Signed-off-by: default avatarBodong Wang <bodong@mellanox.com>
Reviewed-by: default avatarMatan Barak <matanb@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 191ded4a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -683,6 +683,16 @@ static int mlx5_ib_query_device(struct ib_device *ibdev,
	if (field_avail(typeof(resp), reserved, uhw->outlen))
		resp.response_length += sizeof(resp.reserved);

	if (field_avail(typeof(resp), cqe_comp_caps, uhw->outlen)) {
		resp.cqe_comp_caps.max_num =
			MLX5_CAP_GEN(dev->mdev, cqe_compression) ?
			MLX5_CAP_GEN(dev->mdev, cqe_compression_max_num) : 0;
		resp.cqe_comp_caps.supported_format =
			MLX5_IB_CQE_RES_FORMAT_HASH |
			MLX5_IB_CQE_RES_FORMAT_CSUM;
		resp.response_length += sizeof(resp.cqe_comp_caps);
	}

	if (uhw->outlen) {
		err = ib_copy_to_udata(uhw, &resp, resp.response_length);

+12 −0
Original line number Diff line number Diff line
@@ -124,11 +124,23 @@ struct mlx5_ib_rss_caps {
	__u8 reserved[7];
};

enum mlx5_ib_cqe_comp_res_format {
	MLX5_IB_CQE_RES_FORMAT_HASH	= 1 << 0,
	MLX5_IB_CQE_RES_FORMAT_CSUM	= 1 << 1,
	MLX5_IB_CQE_RES_RESERVED	= 1 << 2,
};

struct mlx5_ib_cqe_comp_caps {
	__u32 max_num;
	__u32 supported_format; /* enum mlx5_ib_cqe_comp_res_format */
};

struct mlx5_ib_query_device_resp {
	__u32	comp_mask;
	__u32	response_length;
	struct	mlx5_ib_tso_caps tso_caps;
	struct	mlx5_ib_rss_caps rss_caps;
	struct	mlx5_ib_cqe_comp_caps cqe_comp_caps;
	__u32	mlx5_ib_support_multi_pkt_send_wqes;
	__u32	reserved;
};