mbox series

[RFC,UPDATE,0/9] dmadev rfc suggested updates

Message ID 20210706202841.661302-1-bruce.richardson@intel.com (mailing list archive)
Headers
Series dmadev rfc suggested updates |

Message

Bruce Richardson July 6, 2021, 8:28 p.m. UTC
  This patchset contains a series of changes to dmadev based on work being done to
port over our drivers to test this new infrastructure. Some of these are bug
fixes to enable compilation e.g. missing exports or meson.build files, while
others are suggested changes to enhance the API. All these patches are to be
applied on top of [1] as they are mostly suggested changes to that RFC i.e.
patches to the patch!

The final patch includes some basic sanity tests for copy operations that we
have ported over from the ioat self-tests to use the dmadev APIs. The basic
dataplane part of those tests is probably ok for now, but the initialization of
queues in that test code may need some enhancement. Feedback welcome.

A tree with all these patches applied can be got at [2] if anyone wants to use
that as a basis for working on drivers, or for other discussion.

[1] http://patches.dpdk.org/project/dpdk/patch/1625231891-2963-1-git-send-email-fengchengwen@huawei.com/
[2] https://github.com/bruce-richardson/dpdk/tree/dmadev-rfcs

Bruce Richardson (9):
  dmadev: add missing exports
  dmadev: change virtual addresses to IOVA
  dmadev: add dump function
  dmadev: remove xstats functions
  dmadev: drop cookie typedef
  dmadev: allow NULL parameters to completed ops call
  dmadev: stats structure updates
  drivers: add dma driver category
  app/test: add basic dmadev unit test

 app/test/meson.build         |   2 +
 app/test/test_dmadev.c       | 320 +++++++++++++++++++++++++++++++++++
 drivers/dma/meson.build      |  11 ++
 drivers/meson.build          |   1 +
 lib/dmadev/rte_dmadev.c      |  66 ++------
 lib/dmadev/rte_dmadev.h      | 204 +++++++---------------
 lib/dmadev/rte_dmadev_core.h |  16 +-
 lib/dmadev/rte_dmadev_pmd.h  |  24 +--
 lib/dmadev/version.map       |   7 +-
 9 files changed, 425 insertions(+), 226 deletions(-)
 create mode 100644 app/test/test_dmadev.c
 create mode 100644 drivers/dma/meson.build

--
2.30.2
  

Comments

fengchengwen July 7, 2021, 3:16 a.m. UTC | #1
LGTM, thanks

And I'am prepare dmadev V2, include:
a) Fix code review comments (e.g. multiple-process support, doxygen, comments, typo)
b) Flatten device abstraction to two layer: dmadev <> vchan
c) Public API use dev_id and vchan_id to locate one vchan
d) Using the flags parameter instead of the fence API
e) Rename rte_dmadev_perform to rte_dmadev_submit so it corresponds to the stats variable.

PS: Some code (lib/dmadev) will rebase this patchset


On 2021/7/7 4:28, Bruce Richardson wrote:
> This patchset contains a series of changes to dmadev based on work being done to
> port over our drivers to test this new infrastructure. Some of these are bug
> fixes to enable compilation e.g. missing exports or meson.build files, while
> others are suggested changes to enhance the API. All these patches are to be
> applied on top of [1] as they are mostly suggested changes to that RFC i.e.
> patches to the patch!
> 
> The final patch includes some basic sanity tests for copy operations that we
> have ported over from the ioat self-tests to use the dmadev APIs. The basic
> dataplane part of those tests is probably ok for now, but the initialization of
> queues in that test code may need some enhancement. Feedback welcome.
> 
> A tree with all these patches applied can be got at [2] if anyone wants to use
> that as a basis for working on drivers, or for other discussion.
> 
> [1] http://patches.dpdk.org/project/dpdk/patch/1625231891-2963-1-git-send-email-fengchengwen@huawei.com/
> [2] https://github.com/bruce-richardson/dpdk/tree/dmadev-rfcs
> 
> Bruce Richardson (9):
>   dmadev: add missing exports
>   dmadev: change virtual addresses to IOVA
>   dmadev: add dump function
>   dmadev: remove xstats functions
>   dmadev: drop cookie typedef
>   dmadev: allow NULL parameters to completed ops call
>   dmadev: stats structure updates
>   drivers: add dma driver category
>   app/test: add basic dmadev unit test
> 
>  app/test/meson.build         |   2 +
>  app/test/test_dmadev.c       | 320 +++++++++++++++++++++++++++++++++++
>  drivers/dma/meson.build      |  11 ++
>  drivers/meson.build          |   1 +
>  lib/dmadev/rte_dmadev.c      |  66 ++------
>  lib/dmadev/rte_dmadev.h      | 204 +++++++---------------
>  lib/dmadev/rte_dmadev_core.h |  16 +-
>  lib/dmadev/rte_dmadev_pmd.h  |  24 +--
>  lib/dmadev/version.map       |   7 +-
>  9 files changed, 425 insertions(+), 226 deletions(-)
>  create mode 100644 app/test/test_dmadev.c
>  create mode 100644 drivers/dma/meson.build
> 
> --
> 2.30.2
> 
> 
> .
>
  
Bruce Richardson July 7, 2021, 8:11 a.m. UTC | #2
On Wed, Jul 07, 2021 at 11:16:44AM +0800, fengchengwen wrote:
> LGTM, thanks
> 
> And I'am prepare dmadev V2, include:
> a) Fix code review comments (e.g. multiple-process support, doxygen, comments, typo)
> b) Flatten device abstraction to two layer: dmadev <> vchan
> c) Public API use dev_id and vchan_id to locate one vchan
> d) Using the flags parameter instead of the fence API

Bit uncertain about this one still

> e) Rename rte_dmadev_perform to rte_dmadev_submit so it corresponds to the stats variable.
> 
> PS: Some code (lib/dmadev) will rebase this patchset
> 
This was not meant to be a separate patchset, but rather to try and keep us
all in sync on what was being looked at and tested. Please just pull in the
changes from this set (as many as you are happy with) into your V2 RFC to
simplify things. It's better to just have the one master RFC into which
changes are pulled.

Thanks,
/Bruce
  
Bruce Richardson July 7, 2021, 8:14 a.m. UTC | #3
On Wed, Jul 07, 2021 at 11:16:44AM +0800, fengchengwen wrote:
> LGTM, thanks
> 
> And I'am prepare dmadev V2, include: a) Fix code review comments (e.g.
> multiple-process support, doxygen, comments, typo) b) Flatten device
> abstraction to two layer: dmadev <> vchan c) Public API use dev_id and
> vchan_id to locate one vchan d) Using the flags parameter instead of the
> fence API e) Rename rte_dmadev_perform to rte_dmadev_submit so it
> corresponds to the stats variable.
> 
> PS: Some code (lib/dmadev) will rebase this patchset
> 
> 
As well as posting the RFC v2 here, could you also perhaps post it to a
github repo, so that Jerin, myself and others can send pull-requests with
suggested changes?  For key areas of discussion, working through github
with patches sent via pull request you can take in directly will probably
be faster for getting us to a v3. The mail threads on list are already
getting very long and hard to follow.

Regards,
/Bruce
  
Jerin Jacob July 7, 2021, 10:42 a.m. UTC | #4
On Wed, Jul 7, 2021 at 8:46 AM fengchengwen <fengchengwen@huawei.com> wrote:
>
> LGTM, thanks
>
> And I'am prepare dmadev V2, include:
> a) Fix code review comments (e.g. multiple-process support, doxygen, comments, typo)
> b) Flatten device abstraction to two layer: dmadev <> vchan

I think we should not have "virtual" in API specification. it can be
virtual or real based on real HW/SW/Driver implementation.
I think, just chan enough.

> c) Public API use dev_id and vchan_id to locate one vchan
> d) Using the flags parameter instead of the fence API
> e) Rename rte_dmadev_perform to rte_dmadev_submit so it corresponds to the stats variable.
>
> PS: Some code (lib/dmadev) will rebase this patchset
>
>
> On 2021/7/7 4:28, Bruce Richardson wrote:
> > This patchset contains a series of changes to dmadev based on work being done to
> > port over our drivers to test this new infrastructure. Some of these are bug
> > fixes to enable compilation e.g. missing exports or meson.build files, while
> > others are suggested changes to enhance the API. All these patches are to be
> > applied on top of [1] as they are mostly suggested changes to that RFC i.e.
> > patches to the patch!
> >
> > The final patch includes some basic sanity tests for copy operations that we
> > have ported over from the ioat self-tests to use the dmadev APIs. The basic
> > dataplane part of those tests is probably ok for now, but the initialization of
> > queues in that test code may need some enhancement. Feedback welcome.
> >
> > A tree with all these patches applied can be got at [2] if anyone wants to use
> > that as a basis for working on drivers, or for other discussion.
> >
> > [1] http://patches.dpdk.org/project/dpdk/patch/1625231891-2963-1-git-send-email-fengchengwen@huawei.com/
> > [2] https://github.com/bruce-richardson/dpdk/tree/dmadev-rfcs
> >
> > Bruce Richardson (9):
> >   dmadev: add missing exports
> >   dmadev: change virtual addresses to IOVA
> >   dmadev: add dump function
> >   dmadev: remove xstats functions
> >   dmadev: drop cookie typedef
> >   dmadev: allow NULL parameters to completed ops call
> >   dmadev: stats structure updates
> >   drivers: add dma driver category
> >   app/test: add basic dmadev unit test
> >
> >  app/test/meson.build         |   2 +
> >  app/test/test_dmadev.c       | 320 +++++++++++++++++++++++++++++++++++
> >  drivers/dma/meson.build      |  11 ++
> >  drivers/meson.build          |   1 +
> >  lib/dmadev/rte_dmadev.c      |  66 ++------
> >  lib/dmadev/rte_dmadev.h      | 204 +++++++---------------
> >  lib/dmadev/rte_dmadev_core.h |  16 +-
> >  lib/dmadev/rte_dmadev_pmd.h  |  24 +--
> >  lib/dmadev/version.map       |   7 +-
> >  9 files changed, 425 insertions(+), 226 deletions(-)
> >  create mode 100644 app/test/test_dmadev.c
> >  create mode 100644 drivers/dma/meson.build
> >
> > --
> > 2.30.2
> >
> >
> > .
> >
>