[dpdk-dev] [PATCH] gpudev: introduce memory API
Jerin Jacob
jerinjacobk at gmail.com
Thu Jun 3 09:47:43 CEST 2021
On Thu, Jun 3, 2021 at 2:05 AM Thomas Monjalon <thomas at monjalon.net> wrote:
>
> From: Elena Agostini <eagostini at nvidia.com>
>
> The new library gpudev is for dealing with GPU from a DPDK application
> in a vendor-agnostic way.
>
> As a first step, the features are focused on memory management.
> A function allows to allocate memory inside the GPU,
> while another one allows to use main (CPU) memory from the GPU.
>
> The infrastructure is prepared to welcome drivers in drivers/gpu/
> as the upcoming NVIDIA one, implementing the gpudev API.
> Other additions planned for next revisions:
> - C implementation file
> - guide documentation
> - unit tests
> - integration in testpmd to enable Rx/Tx to/from GPU memory.
>
> The next step should focus on GPU processing task control.
>
> Signed-off-by: Elena Agostini <eagostini at nvidia.com>
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> ---
> .gitignore | 1 +
> MAINTAINERS | 6 +
> doc/api/doxy-api-index.md | 1 +
> doc/api/doxy-api.conf.in | 1 +
> doc/guides/conf.py | 8 ++
> doc/guides/gpus/features/default.ini | 13 ++
> doc/guides/gpus/index.rst | 11 ++
> doc/guides/gpus/overview.rst | 7 +
> doc/guides/index.rst | 1 +
> doc/guides/prog_guide/gpu.rst | 5 +
> doc/guides/prog_guide/index.rst | 1 +
> drivers/gpu/meson.build | 4 +
> drivers/meson.build | 1 +
> lib/gpudev/gpu_driver.h | 44 +++++++
> lib/gpudev/meson.build | 9 ++
> lib/gpudev/rte_gpudev.h | 183 +++++++++++++++++++++++++++
> lib/gpudev/version.map | 11 ++
> lib/meson.build | 1 +
> 18 files changed, 308 insertions(+)
> create mode 100644 doc/guides/gpus/features/default.ini
> create mode 100644 doc/guides/gpus/index.rst
> create mode 100644 doc/guides/gpus/overview.rst
> create mode 100644 doc/guides/prog_guide/gpu.rst
> create mode 100644 drivers/gpu/meson.build
> create mode 100644 lib/gpudev/gpu_driver.h
> create mode 100644 lib/gpudev/meson.build
> create mode 100644 lib/gpudev/rte_gpudev.h
> create mode 100644 lib/gpudev/version.map
>
> diff --git a/.gitignore b/.gitignore
> index b19c0717e6..49494e0c6c 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -14,6 +14,7 @@ doc/guides/compressdevs/overview_feature_table.txt
> doc/guides/regexdevs/overview_feature_table.txt
> doc/guides/vdpadevs/overview_feature_table.txt
> doc/guides/bbdevs/overview_feature_table.txt
> +doc/guides/gpus/overview_feature_table.txt
>
> # ignore generated ctags/cscope files
> cscope.out.po
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 5877a16971..c4755dfe9a 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -452,6 +452,12 @@ F: app/test-regex/
> F: doc/guides/prog_guide/regexdev.rst
> F: doc/guides/regexdevs/features/default.ini
>
> +GPU API - EXPERIMENTAL
> +M: Elena Agostini <eagostini at nvidia.com>
> +F: lib/gpudev/
> +F: doc/guides/prog_guide/gpu.rst
> +F: doc/guides/gpus/features/default.ini
> +
> Eventdev API
> M: Jerin Jacob <jerinj at marvell.com>
> T: git://dpdk.org/next/dpdk-next-eventdev
> diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md
> index 1992107a03..bd10342ca2 100644
> --- a/doc/api/doxy-api-index.md
> +++ b/doc/api/doxy-api-index.md
> @@ -21,6 +21,7 @@ The public API headers are grouped by topics:
> [compressdev] (@ref rte_compressdev.h),
> [compress] (@ref rte_comp.h),
> [regexdev] (@ref rte_regexdev.h),
> + [gpudev] (@ref rte_gpudev.h),
Since this device does not have a queue etc? Shouldn't make it a
library like mempool with vendor-defined ops?
Any specific reason for making it a device? The reason why I am asking
this is, as other DPDK devices as symmetry in queue(s), configure,
start, stop operation etc.
> +
> +struct rte_gpu_dev {
> + /* Backing device. */
> + struct rte_device *device;
See above?
> + /* GPU info structure. */
More information about the dev
mailing list