Commit 34f4c955 authored by Guy Levi's avatar Guy Levi Committed by Jason Gunthorpe

IB/mlx5: Use fragmented QP's buffer for in-kernel users

The current implementation of create QP requires contiguous memory, such a
requirement is problematic once the memory is fragmented or the system is
low in memory, it causes failures in dma_zalloc_coherent().

This patch takes advantage of the new mlx5_core API which allocates a
fragmented buffer. This makes the QP creation much more resilient to
memory fragmentation. Data-path code was adapted to the fact that WQEs can
cross buffers.

We also use the opportunity to fix some cosmetic legacy coding convention
errors which were in the feature scope.
Signed-off-by: default avatarGuy Levi <guyle@mellanox.com>
Reviewed-by: default avatarMajd Dibbiny <majd@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent 20e5a59b
...@@ -257,6 +257,7 @@ enum mlx5_ib_rq_flags { ...@@ -257,6 +257,7 @@ enum mlx5_ib_rq_flags {
}; };
struct mlx5_ib_wq { struct mlx5_ib_wq {
struct mlx5_frag_buf_ctrl fbc;
u64 *wrid; u64 *wrid;
u32 *wr_data; u32 *wr_data;
struct wr_list *w_list; struct wr_list *w_list;
...@@ -275,7 +276,7 @@ struct mlx5_ib_wq { ...@@ -275,7 +276,7 @@ struct mlx5_ib_wq {
unsigned tail; unsigned tail;
u16 cur_post; u16 cur_post;
u16 last_poll; u16 last_poll;
void *qend; void *cur_edge;
}; };
enum mlx5_ib_wq_flags { enum mlx5_ib_wq_flags {
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment