gpudev: add GPU page_size to info
PATCH 1/2 gpudev: add GPU page_size to info
From: Elena Agostini <[email protected]>
Page alignment on the GPU can be different from
the CPU page alignment.
--- drivers/gpu/cuda/cuda.c | 4 ++++ lib/gpudev/rte_gpudev.h | 2 ++ 2 files changed, 6 insertions(+)
drivers/gpu/cuda/cuda.c +4 -0
@@ -523,6 +523,8 @@ cuda_dev_info_get(struct rte_gpu *dev, struct rte_gpu_info *info) } dev->mpshared->info.total_memory = parent_info.total_memory; + dev->mpshared->info.page_size = parent_info.page_size; +/* * GPU Device private info */
@@ -1173,6 +1175,8 @@ cuda_gpu_probe(__rte_unused struct rte_pci_driver *pci_drv, struct rte_pci_devicreturn -rte_errno; } + dev->mpshared->info.page_size = (size_t )GPU_PAGE_SIZE ; +/* * GPU Device private info */
lib/gpudev/rte_gpudev.h +2 -0
@@ -61,6 +61,8 @@ struct rte_gpu_info {size_t total_memory;/* Local NUMA memory ID. -1 if unknown. */ int16_t numa_node; +/* Get GPU memory page size. */ +size_t page_size; };/** Flags passed in notification callback. */
Signature · 1 line
2.17.1
PATCH 2/2 gpudev: use page_size in comm_list creation
From: Elena Agostini <[email protected]>
Memory allocated for CPU mapping the status flag in the communication list should be aligned to the GPU page size.
--- lib/gpudev/gpudev.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
lib/gpudev/gpudev.c +8 -1
@@ -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 ;
Signature · 1 line
2.17.1
PATCH v2 1/2 gpudev: add GPU page_size to info
In reply to [email protected]From: Elena Agostini <[email protected]>
Page alignment on the GPU can be different from
the CPU page alignment.
--- drivers/gpu/cuda/cuda.c | 4 ++++ lib/gpudev/rte_gpudev.h | 2 ++ 2 files changed, 6 insertions(+)
drivers/gpu/cuda/cuda.c +4 -0
@@ -523,6 +523,8 @@ cuda_dev_info_get(struct rte_gpu *dev, struct rte_gpu_info *info) } dev->mpshared->info.total_memory = parent_info.total_memory; + dev->mpshared->info.page_size = parent_info.page_size; +/* * GPU Device private info */
@@ -1173,6 +1175,8 @@ cuda_gpu_probe(__rte_unused struct rte_pci_driver *pci_drv, struct rte_pci_devicreturn -rte_errno; } + dev->mpshared->info.page_size = (size_t )GPU_PAGE_SIZE ; +/* * GPU Device private info */
lib/gpudev/rte_gpudev.h +2 -0
@@ -61,6 +61,8 @@ struct rte_gpu_info {size_t total_memory;/* Local NUMA memory ID. -1 if unknown. */ int16_t numa_node; +/* Get GPU memory page size. */ +size_t page_size; };/** Flags passed in notification callback. */
Signature · 1 line
2.17.1
PATCH v2 2/2 gpudev: use page_size in comm_list creation
From: Elena Agostini <[email protected]>
Memory allocated for CPU mapping the status flag in the communication list should be aligned to the GPU page size.
--- lib/gpudev/gpudev.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
lib/gpudev/gpudev.c +8 -1
@@ -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 ;
Signature · 1 line
2.17.1
Re: [PATCH v2 2/2] gpudev: use page_size in comm_list creation
09/03/2022 00:59, [email protected]:
Quoted 8 lines
From: Elena Agostini <[email protected]>
Memory allocated for CPU mapping the status flag in the communication list should be aligned to the GPU page size.
Fixes 9b8cae4d991e ("gpudev: use CPU mapping in communication list")Signed-off-by Elena Agostini <[email protected]>
Patches squashed and applied, thanks.