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: Guy Levi <guyle@mellanox.com> Reviewed-by: Majd Dibbiny <majd@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:

committed by
Jason Gunthorpe

vanhempi
20e5a59b2e
commit
34f4c9554d
@@ -257,6 +257,7 @@ enum mlx5_ib_rq_flags {
|
||||
};
|
||||
|
||||
struct mlx5_ib_wq {
|
||||
struct mlx5_frag_buf_ctrl fbc;
|
||||
u64 *wrid;
|
||||
u32 *wr_data;
|
||||
struct wr_list *w_list;
|
||||
@@ -275,7 +276,7 @@ struct mlx5_ib_wq {
|
||||
unsigned tail;
|
||||
u16 cur_post;
|
||||
u16 last_poll;
|
||||
void *qend;
|
||||
void *cur_edge;
|
||||
};
|
||||
|
||||
enum mlx5_ib_wq_flags {
|
||||
|
Viittaa uudesa ongelmassa
Block a user