Message ID | 20210706202841.661302-1-bruce.richardson@intel.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 15C11A0C48; Tue, 6 Jul 2021 22:28:58 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E20CE4120E; Tue, 6 Jul 2021 22:28:57 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id AFEE34067C for <dev@dpdk.org>; Tue, 6 Jul 2021 22:28:56 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10037"; a="209232788" X-IronPort-AV: E=Sophos;i="5.83,329,1616482800"; d="scan'208";a="209232788" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2021 13:28:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,329,1616482800"; d="scan'208";a="486522023" Received: from silpixa00399126.ir.intel.com ([10.237.223.29]) by FMSMGA003.fm.intel.com with ESMTP; 06 Jul 2021 13:28:50 -0700 From: Bruce Richardson <bruce.richardson@intel.com> To: dev@dpdk.org Cc: Chengwen Feng <fengchengwen@huawei.com>, Jerin Jacob <jerinjacobk@gmail.com>, Jerin Jacob <jerinj@marvell.com>, =?utf-8?q?Morten_Br=C3=B8rup?= <mb@smartsharesystems.com>, Bruce Richardson <bruce.richardson@intel.com> Date: Tue, 6 Jul 2021 21:28:32 +0100 Message-Id: <20210706202841.661302-1-bruce.richardson@intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <1625231891-2963-1-git-send-email-fengchengwen@huawei.com> References: <1625231891-2963-1-git-send-email-fengchengwen@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [RFC UPDATE PATCH 0/9] dmadev rfc suggested updates X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
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
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 > > > . >
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
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
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 > > > > > > . > > >