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, beilei.xing@intel.com
Subject: Re: [dpdk-dev] [PATCH v3 0/8] Introduce emudev library and iavf emudev driver
Date: Mon, 12 Feb 2024 14:49:16 -0800 [thread overview]
Message-ID: <20240212144916.398008ef@hermes.local> (raw)
In-Reply-To: <20210114062512.45462-1-chenbo.xia@intel.com>
On Thu, 14 Jan 2021 14:25:04 +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/86498/
>
> 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/86498/
>
> - 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.
>
> Why not rawdev for emulated device
> ----------------------------------
> Instead of introducing new class emudev, emulated device could be presented as rawdev.
> However, existing rawdev APIs cannot meet the requirements of emulated device. There are
> three API categories for emudev. They are emudev device lifecycle management, backend
> facing APIs, and emudev device provider facing APIs respectively. Existing rawdev APIs
> could only cover lifecycle management APIs and some of backend facing APIs. Other APIs,
> even if added to rawdev API are not required by other rawdev applications.
>
This looks interesting but there has been on further work on it for three years.
I recommend that the patch be dropped for now and resubmitted if/when the vfio_user patches
get accepted.
next prev parent reply other threads:[~2024-02-12 22:49 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-18 7:47 [dpdk-dev] [PATCH " 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 ` Stephen Hemminger [this message]
2023-06-14 19:47 ` [dpdk-dev] [PATCH 0/8] Introduce emudev library and " Stephen Hemminger
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=20240212144916.398008ef@hermes.local \
--to=stephen@networkplumber.org \
--cc=beilei.xing@intel.com \
--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).