From: Elena Agostini <eagost...@nvidia.com> Memory allocated for CPU mapping the status flag in the communication list should be aligned to the GPU page size.
Signed-off-by: Elena Agostini <eagost...@nvidia.com> --- lib/gpudev/gpudev.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/gpudev/gpudev.c b/lib/gpudev/gpudev.c index fb1bee344c..56033f4a5f 100644 --- a/lib/gpudev/gpudev.c +++ b/lib/gpudev/gpudev.c @@ -820,6 +820,7 @@ rte_gpu_comm_create_list(uint16_t dev_id, uint32_t idx_l; int ret; struct rte_gpu *dev; + struct rte_gpu_info info; if (num_comm_items == 0) { rte_errno = EINVAL; @@ -833,6 +834,12 @@ rte_gpu_comm_create_list(uint16_t dev_id, return NULL; } + ret = rte_gpu_info_get(dev_id, &info); + if (ret < 0) { + rte_errno = ENODEV; + return NULL; + } + comm_list = rte_zmalloc(NULL, sizeof(struct rte_gpu_comm_list) * num_comm_items, 0); if (comm_list == NULL) { @@ -855,7 +862,7 @@ rte_gpu_comm_create_list(uint16_t dev_id, */ comm_list[0].status_d = rte_gpu_mem_alloc(dev_id, sizeof(enum rte_gpu_comm_list_status) * num_comm_items, - rte_mem_page_size()); + info.page_size); if (ret < 0) { rte_errno = ENOMEM; return NULL; -- 2.17.1