]> git.droids-corp.org - dpdk.git/commit
gpudev: add communication list
authorElena Agostini <eagostini@nvidia.com>
Mon, 8 Nov 2021 18:58:04 +0000 (18:58 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 8 Nov 2021 16:20:53 +0000 (17:20 +0100)
commitc7ebd65c137215d714b445b7b4c584007cc89ffb
tree7c778d6f268a10bc1bc17cdafed450d99af71453
parentf56160a25545f56781b25ae9c148f612dbf21788
gpudev: add communication list

In heterogeneous computing system, processing is not only in the CPU.
Some tasks can be delegated to devices working in parallel.
When mixing network activity with task processing there may be the need
to put in communication the CPU with the device in order to synchronize
operations.

An example could be a receive-and-process application
where CPU is responsible for receiving packets in multiple mbufs
and the GPU is responsible for processing the content of those packets.

The purpose of this list is to provide a buffer in CPU memory visible
from the GPU that can be treated as a circular buffer
to let the CPU provide fondamental info of received packets to the GPU.

A possible use-case is described below.

CPU:
- Trigger some task on the GPU
- in a loop:
    - receive a number of packets
    - provide packets info to the GPU

GPU:
- Do some pre-processing
- Wait to receive a new set of packet to be processed

Layout of a communication list would be:

     -------
    |   0    | => pkt_list
    | status |
    | #pkts  |
     -------
    |   1    | => pkt_list
    | status |
    | #pkts  |
     -------
    |   2    | => pkt_list
    | status |
    | #pkts  |
     -------
    |  ....  | => pkt_list
     -------

Signed-off-by: Elena Agostini <eagostini@nvidia.com>
app/test-gpudev/main.c
doc/guides/prog_guide/gpudev.rst
doc/guides/rel_notes/release_21_11.rst
lib/gpudev/gpudev.c
lib/gpudev/meson.build
lib/gpudev/rte_gpudev.h
lib/gpudev/version.map