DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Chenbo Xia <chenbo.xia@intel.com>
Cc: dev@dpdk.org, thomas@monjalon.net, david.marchand@redhat.com,
	cunming.liang@intel.com, xiuchun.lu@intel.com, miao.li@intel.com,
	jingjing.wu@intel.com
Subject: Re: [dpdk-dev] [PATCH 0/8] Introduce emudev library and iavf emudev driver
Date: Wed, 14 Jun 2023 12:47:54 -0700	[thread overview]
Message-ID: <20230614124754.5f2c496e@hermes.local> (raw)
In-Reply-To: <20201218074736.93999-1-chenbo.xia@intel.com>

On Fri, 18 Dec 2020 15:47:28 +0800
Chenbo Xia <chenbo.xia@intel.com> wrote:

> This series introduces a new device abstraction called emudev for emulated
> devices. A new library (librte_emudev) is implemented. The first emudev
> driver is also introduced, which emulates Intel Adaptive Virtual Function
> (iavf) as a software network device.
> 
> This series has a dependency on librte_vfio_user patch series:
> http://patchwork.dpdk.org/cover/85389/
> 
> Background & Motivation 
> -----------------------
> The disaggregated/multi-process QEMU is using VFIO-over-socket/vfio-user
> as the main transport mechanism to disaggregate IO services from QEMU.
> Therefore, librte_vfio_user is introduced in DPDK to accommodate
> emulated devices for high performance I/O. Although vfio-user library
> provides possibility of emulating devices in DPDK, DPDK does not have
> a device abstraction for emulated devices. A good device abstraction will
> be useful for applications or high performance data path driver. With
> this consideration, emudev library is designed and implemented. It also
> make it possbile to keep modular design on emulated devices by implementing
> data path related logic in a standalone driver (e.g., an ethdev driver)
> and keeps the unrelated logic in the emudev driver.
> 
> Design overview
> ---------------
> 
>                     +---------------------------------------+
>                     |   +---------------+    +-----------+  |
>                     |   |  iavf_emudev  |<-->| data path |  |
>                     |   |    driver     |    |   driver  |  |
>                     |   +---------------+    +-----------+  |
>                     |           |                           |
>                     | --------------------------- VDEV BUS  |
>                     |           |                           |
>                     |   +---------------+                   |
> +--------------+    |   | vdev:         |                   |
> | +----------+ |    |   | /path/to/vfio |                   |
> | | Generic  | |    |   +---------------+                   |
> | | vfio-dev | |    |           |                           |
> | +----------+ |    |           |                           |
> | +----------+ |    |      +----------+                     |
> | | vfio-user| |    |      | vfio-user|                     |
> | | client   | |<---|----->| server   |                     |
> | +----------+ |    |      +----------+                     |
> | QEMU/DPDK    |    | DPDK                                  |
> +--------------+    +---------------------------------------+
> 
> - Generic vfio-dev/vfio-user client/vfio-user server
>   Above concepts are all introduced in librte_vfio_user patch series:
>   http://patchwork.dpdk.org/cover/85389/
> 
> - vdev:/path/to/vfio.
>   It binds to vdev bus driver. The vdev device is defined by DPDK applications
>   through command line as '--vdev=emu_iavf, path=/path/to/socket' in iavf_emudev
>   case. Parameters in command line include device name (emu_iavf) which is used
>   to identify corresponding driver (in this case, iavf_emudev driver),
>   path=/path/to/socket which is used to open the transport interface to vfio-user
>   client in QEMU/DPDK.
> 
> - data path driver.
>   The data path handling is splited to another standalone driver for modular
>   design.
> 
> 
> Chenbo Xia (8):
>   lib: introduce emudev library
>   doc: add emudev library guide
>   emu: introduce emulated iavf driver
>   emu/iavf: add vfio-user device register and unregister
>   emu/iavf: add resource management and internal logic of iavf
>   emu/iavf: add emudev operations to fit in emudev framework
>   test/emudev: introduce functional test
>   doc: update release notes for iavf emudev driver
> 
>  MAINTAINERS                            |   12 +
>  app/test/meson.build                   |    5 +-
>  app/test/test_emudev.c                 |   29 +
>  doc/guides/prog_guide/emudev.rst       |  122 +++
>  doc/guides/prog_guide/index.rst        |    1 +
>  doc/guides/rel_notes/release_21_02.rst |   16 +
>  drivers/emu/iavf/iavf_emu.c            |  250 ++++++
>  drivers/emu/iavf/iavf_emu_internal.h   |   69 ++
>  drivers/emu/iavf/iavf_emu_test.c       |  174 ++++
>  drivers/emu/iavf/iavf_emudev.c         |  237 ++++++
>  drivers/emu/iavf/iavf_vfio_user.c      | 1053 ++++++++++++++++++++++++
>  drivers/emu/iavf/iavf_vfio_user.h      |   57 ++
>  drivers/emu/iavf/meson.build           |   17 +
>  drivers/emu/iavf/rte_iavf_emu.h        |  119 +++
>  drivers/emu/iavf/version.map           |    3 +
>  drivers/emu/meson.build                |    6 +
>  drivers/meson.build                    |    1 +
>  lib/librte_emudev/meson.build          |    5 +
>  lib/librte_emudev/rte_emudev.c         |  486 +++++++++++
>  lib/librte_emudev/rte_emudev.h         |  410 +++++++++
>  lib/librte_emudev/rte_emudev_vdev.h    |   53 ++
>  lib/librte_emudev/version.map          |   27 +
>  lib/meson.build                        |    2 +-
>  23 files changed, 3152 insertions(+), 2 deletions(-)
>  create mode 100644 app/test/test_emudev.c
>  create mode 100644 doc/guides/prog_guide/emudev.rst
>  create mode 100644 drivers/emu/iavf/iavf_emu.c
>  create mode 100644 drivers/emu/iavf/iavf_emu_internal.h
>  create mode 100644 drivers/emu/iavf/iavf_emu_test.c
>  create mode 100644 drivers/emu/iavf/iavf_emudev.c
>  create mode 100644 drivers/emu/iavf/iavf_vfio_user.c
>  create mode 100644 drivers/emu/iavf/iavf_vfio_user.h
>  create mode 100644 drivers/emu/iavf/meson.build
>  create mode 100644 drivers/emu/iavf/rte_iavf_emu.h
>  create mode 100644 drivers/emu/iavf/version.map
>  create mode 100644 drivers/emu/meson.build
>  create mode 100644 lib/librte_emudev/meson.build
>  create mode 100644 lib/librte_emudev/rte_emudev.c
>  create mode 100644 lib/librte_emudev/rte_emudev.h
>  create mode 100644 lib/librte_emudev/rte_emudev_vdev.h
>  create mode 100644 lib/librte_emudev/version.map
> 

This patchset seems to have a dependency on a recent version of QEMU.
Was it merged? The patchset would need to be rebased and retested on current
DPDK. If still relevant please do that and resubmit.

      parent reply	other threads:[~2023-06-14 19:47 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-18  7:47 Chenbo Xia
2020-12-18  7:47 ` [dpdk-dev] [PATCH 1/8] lib: introduce emudev library Chenbo Xia
2020-12-18  7:47 ` [dpdk-dev] [PATCH 2/8] doc: add emudev library guide Chenbo Xia
2020-12-18  7:47 ` [dpdk-dev] [PATCH 3/8] emu: introduce emulated iavf driver Chenbo Xia
2020-12-18  7:47 ` [dpdk-dev] [PATCH 4/8] emu/iavf: add vfio-user device register and unregister Chenbo Xia
2021-01-07  7:18   ` Xing, Beilei
2021-01-07  8:41     ` Xia, Chenbo
2020-12-18  7:47 ` [dpdk-dev] [PATCH 5/8] emu/iavf: add resource management and internal logic of iavf Chenbo Xia
2020-12-18  7:47 ` [dpdk-dev] [PATCH 6/8] emu/iavf: add emudev operations to fit in emudev framework Chenbo Xia
2020-12-18  7:47 ` [dpdk-dev] [PATCH 7/8] test/emudev: introduce functional test Chenbo Xia
2020-12-18  7:47 ` [dpdk-dev] [PATCH 8/8] doc: update release notes for iavf emudev driver Chenbo Xia
2020-12-18  9:53 ` [dpdk-dev] [PATCH 0/8] Introduce emudev library and " David Marchand
2020-12-19  6:11   ` Xia, Chenbo
2020-12-21  9:52     ` Maxime Coquelin
2020-12-21 12:01       ` Maxime Coquelin
2020-12-22  3:09         ` Xia, Chenbo
2020-12-22  8:48           ` Maxime Coquelin
2020-12-23  5:28             ` Xia, Chenbo
2020-12-19  6:27 ` [dpdk-dev] [PATCH v2 " Chenbo Xia
2020-12-19  6:27   ` [dpdk-dev] [PATCH v2 1/8] lib: introduce emudev library Chenbo Xia
2020-12-19  6:28   ` [dpdk-dev] [PATCH v2 2/8] doc: add emudev library guide Chenbo Xia
2020-12-19  6:28   ` [dpdk-dev] [PATCH v2 3/8] emu: introduce emulated iavf driver Chenbo Xia
2020-12-19  6:28   ` [dpdk-dev] [PATCH v2 4/8] emu/iavf: add vfio-user device register and unregister Chenbo Xia
2021-01-04  6:45     ` Wu, Jingjing
2021-01-05  1:26       ` Xia, Chenbo
2021-01-05 13:41     ` Wu, Jingjing
2021-01-06  7:41       ` Xia, Chenbo
2020-12-19  6:28   ` [dpdk-dev] [PATCH v2 5/8] emu/iavf: add resource management and internal logic of iavf Chenbo Xia
2020-12-29  6:05     ` Wu, Jingjing
2020-12-30  1:59       ` Xia, Chenbo
2020-12-19  6:28   ` [dpdk-dev] [PATCH v2 6/8] emu/iavf: add emudev operations to fit in emudev framework Chenbo Xia
2020-12-19  6:28   ` [dpdk-dev] [PATCH v2 7/8] test/emudev: introduce functional test Chenbo Xia
2020-12-19  6:28   ` [dpdk-dev] [PATCH v2 8/8] doc: update release notes for iavf emudev driver Chenbo Xia
2021-01-13 16:52   ` [dpdk-dev] [PATCH v2 0/8] Introduce emudev library and " Thomas Monjalon
2021-01-14  1:35     ` Xia, Chenbo
2021-01-14  6:25   ` [dpdk-dev] [PATCH v3 " Chenbo Xia
2021-01-14  6:25     ` [dpdk-dev] [PATCH v3 1/8] lib: introduce emudev library Chenbo Xia
2021-01-14  6:25     ` [dpdk-dev] [PATCH v3 2/8] doc: add emudev library guide Chenbo Xia
2021-01-14  6:25     ` [dpdk-dev] [PATCH v3 3/8] emu: introduce emulated iavf driver Chenbo Xia
2021-01-14  6:25     ` [dpdk-dev] [PATCH v3 4/8] emu/iavf: add vfio-user device register and unregister Chenbo Xia
2021-01-14  6:25     ` [dpdk-dev] [PATCH v3 5/8] emu/iavf: add resource management and internal logic of iavf Chenbo Xia
2021-01-14  6:25     ` [dpdk-dev] [PATCH v3 6/8] emu/iavf: add emudev operations to fit in emudev framework Chenbo Xia
2021-01-14  6:25     ` [dpdk-dev] [PATCH v3 7/8] test/emudev: introduce functional test Chenbo Xia
2021-01-14  6:25     ` [dpdk-dev] [PATCH v3 8/8] doc: update release notes for iavf emudev driver Chenbo Xia
2024-02-12 22:49     ` [dpdk-dev] [PATCH v3 0/8] Introduce emudev library and " Stephen Hemminger
2023-06-14 19:47 ` Stephen Hemminger [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230614124754.5f2c496e@hermes.local \
    --to=stephen@networkplumber.org \
    --cc=chenbo.xia@intel.com \
    --cc=cunming.liang@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@intel.com \
    --cc=miao.li@intel.com \
    --cc=thomas@monjalon.net \
    --cc=xiuchun.lu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).