diff options
author | Maxim Mikityanskiy <maximmi@nvidia.com> | 2022-09-29 10:21:46 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-09-30 17:55:46 +0300 |
commit | 6470d2e7e8ed8e9dd560d8dc3e09d1100a17ee26 (patch) | |
tree | c0b3d8d6766c3b45d43e356cba0534faa97b509f /include/linux/mlx5 | |
parent | c4418f34955440fbdebd0b00771bdd76e2cd3f63 (diff) | |
download | linux-6470d2e7e8ed8e9dd560d8dc3e09d1100a17ee26.tar.xz |
net/mlx5e: xsk: Use KSM for unaligned XSK
UMR MTTs used in striding RQ have certain alignment requirements. While
it's guaranteed to work when UMR pages are aligned to the UMR page size,
in practice it works then UMR pages are aligned to 8 bytes. However,
it's still not enough flexibility for the unaligned mode of XSK. This
patch leverages KSM to map UMR pages without alignment requirements,
when unaligned XSK is active. The downside is that KSM entries are twice
as big as MTTs, which limits the maximum WQE size, so regular RQs and
aligned XSK continue using MTTs.
Signed-off-by: Maxim Mikityanskiy <maximmi@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux/mlx5')
-rw-r--r-- | include/linux/mlx5/qp.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/mlx5/qp.h b/include/linux/mlx5/qp.h index afac93f9552c..4657d5c54abe 100644 --- a/include/linux/mlx5/qp.h +++ b/include/linux/mlx5/qp.h @@ -478,6 +478,12 @@ struct mlx5_klm { __be64 va; }; +struct mlx5_ksm { + __be32 reserved; + __be32 key; + __be64 va; +}; + struct mlx5_stride_block_entry { __be16 stride; __be16 bcount; |