From: Stephen Hemminger <stephen@networkplumber.org>
To: Gaetan Rivet <gaetan.rivet@6wind.com>
Cc: dev@dpdk.org, Jan Blunck <jblunck@infradead.org>
Subject: Re: [PATCH v2 00/11] bus: attach / detach API
Date: Wed, 31 May 2017 08:34:26 -0700 [thread overview]
Message-ID: <20170531083426.684e0e93@xeon-e3> (raw)
In-Reply-To: <cover.1496235017.git.gaetan.rivet@6wind.com>
On Wed, 31 May 2017 15:17:45 +0200
Gaetan Rivet <gaetan.rivet@6wind.com> wrote:
> Following the work from Jan:
>
> This patchset introduces the attach / detach API to rte_bus.
> The rte_device structure is used as the generic device representation.
>
> This API is implemented for the virtual bus.
> The functions rte_eal_dev_attach and rte_eal_dev_detach are updated to
> use this new interface.
>
> --
>
> 0. API rework
> -------------
>
> I would like to propose an evolution on the API developed by Jan.
>
> The attach / detach rte_bus API is necessary to support the attach/detach
> rte_dev API. Those are two different levels for one similar functionality.
>
> Attach / detach does not allow true hotplugging, because the attach
> function expects the devices operated upon to already exist within the
> buses / sub-layers. This means that this API expects devices meta-datas
> (bus-internal device representation and associated device information
> read from the system) to be present upon attach. This part of the work
> is done during scanning.
>
> While it is best to avoid changing the public rte_dev API as it already
> exists, nothing prevents this new rte_bus API from superseeding it.
> It has been said during the previous release cycle that device hotplug
> was a feature that interested users. True hotplug is not allowed by the
> current attach / detach API. Worse, this API hinders the effort to bring
> this new functionality by squatting its semantic field.
>
> Thus, I propose to rename rte_bus attach / detach; plug / unplug. As it
> is a superset of the attach / detach functionality, it can be used to
> implement rte_dev attach / detach. Now is the right time to pivot to
> this new feature.
>
> This should help maintainers understanding the aim of this API and the
> differences with the APIs higher-up, clarify the field and allow a new
> functionality to be proposed.
>
> The vdev bus is inherently supporting the new API, however it has been
> made explicit. My implementation in the PCI bus in further patchset also
> follows the rte_bus hotplug API instead of only attach / detach.
>
> One remaining problem with the vdev bus is the rte_dev attach
> implementation, which needs the rte_devargs rework to be properly fixed.
>
> 1. Additional evolutions in the patchset
> ----------------------------------------
>
> The RTE_VERIFY on the find_device is too stringent I think and forces
> all buses to implement a public device iterator. While it could be
> argued that it would push for quicker support for the functionality, I
> think it's possible that some buses are not interested at all in it and
> should simply be ignored.
>
> The bus devices iterator has been fixed.
>
> The internal rte_device handle was not properly setup within the
> net_ring PMD.
>
> Gaetan Rivet (2):
> vdev: implement hotplug functionality
> net/ring: fix dev handle in eth_dev
>
> Jan Blunck (9):
> bus: add bus iterator to find a particular bus
> bus: add device iterator
> bus: add helper to find bus for a particular device
> bus: add bus helper iterator to find a particular device
> bus: introduce hotplug functionality
> vdev: implement find_device bus operation
> vdev: implement unplug bus operation
> eal: make virtual driver probe and remove take rte_vdev_device
> ethdev: Use embedded rte_device to detach driver
>
> drivers/net/ring/rte_eth_ring.c | 7 ++
> lib/librte_eal/bsdapp/eal/rte_eal_version.map | 4 +
> lib/librte_eal/common/eal_common_bus.c | 65 +++++++++++++++
> lib/librte_eal/common/eal_common_dev.c | 100 ++++++++++++++++++------
> lib/librte_eal/common/eal_common_vdev.c | 27 +++++++
> lib/librte_eal/common/include/rte_bus.h | 87 +++++++++++++++++++++
> lib/librte_eal/common/include/rte_dev.h | 26 ++++++
> lib/librte_eal/linuxapp/eal/rte_eal_version.map | 3 +
> lib/librte_ether/rte_ethdev.c | 3 +-
> 9 files changed, 299 insertions(+), 23 deletions(-)
>
LGTM
Maybe we should evolve it by having both rte_bus and rte_dev API for one release and mark
the rte_dev API for attach/detach as deprecated?
next prev parent reply other threads:[~2017-05-31 15:34 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-24 15:04 [PATCH 0/9] bus: attach / detach API Gaetan Rivet
2017-05-24 15:04 ` [PATCH 1/9] bus: add bus iterator to find a particular bus Gaetan Rivet
2017-05-24 15:04 ` [PATCH 2/9] bus: add device iterator Gaetan Rivet
2017-05-24 15:04 ` [PATCH 3/9] bus: add helper to find bus for a particular device Gaetan Rivet
2017-05-24 15:04 ` [PATCH 4/9] bus: add bus helper iterator to find " Gaetan Rivet
2017-05-24 15:04 ` [PATCH 5/9] bus: introduce attach/detach functionality Gaetan Rivet
2017-05-24 15:04 ` [PATCH 6/9] vdev: implement find_device bus operation Gaetan Rivet
2017-05-24 15:04 ` [PATCH 7/9] vdev: implement detach " Gaetan Rivet
2017-05-24 15:05 ` [PATCH 8/9] eal: make virtual driver probe and remove take rte_vdev_device Gaetan Rivet
2017-05-24 15:05 ` [PATCH 9/9] ethdev: Use embedded rte_device to detach driver Gaetan Rivet
2017-05-31 13:17 ` [PATCH v2 00/11] bus: attach / detach API Gaetan Rivet
2017-05-31 13:17 ` [PATCH v2 01/11] bus: add bus iterator to find a particular bus Gaetan Rivet
2017-06-07 7:06 ` Shreyansh Jain
2017-06-07 13:27 ` Gaëtan Rivet
2017-06-07 16:55 ` Jan Blunck
2017-06-08 4:34 ` Shreyansh Jain
2017-06-08 8:05 ` Gaëtan Rivet
2017-05-31 13:17 ` [PATCH v2 02/11] bus: add device iterator Gaetan Rivet
2017-05-31 13:17 ` [PATCH v2 03/11] bus: add helper to find bus for a particular device Gaetan Rivet
2017-05-31 13:17 ` [PATCH v2 04/11] bus: add bus helper iterator to find " Gaetan Rivet
2017-06-07 16:41 ` Jan Blunck
2017-06-07 20:12 ` Gaëtan Rivet
2017-05-31 13:17 ` [PATCH v2 05/11] bus: introduce hotplug functionality Gaetan Rivet
2017-05-31 13:17 ` [PATCH v2 06/11] vdev: implement find_device bus operation Gaetan Rivet
2017-05-31 13:17 ` [PATCH v2 07/11] vdev: implement hotplug functionality Gaetan Rivet
2017-05-31 13:17 ` [PATCH v2 08/11] vdev: implement unplug bus operation Gaetan Rivet
2017-05-31 13:17 ` [PATCH v2 09/11] eal: make virtual driver probe and remove take rte_vdev_device Gaetan Rivet
2017-05-31 13:17 ` [PATCH v2 10/11] ethdev: Use embedded rte_device to detach driver Gaetan Rivet
2017-05-31 13:17 ` [PATCH v2 11/11] net/ring: fix dev handle in eth_dev Gaetan Rivet
2017-05-31 15:34 ` Stephen Hemminger [this message]
2017-06-26 0:27 ` [PATCH v2 00/11] bus: attach / detach API Gaëtan Rivet
2017-06-07 23:53 ` [PATCH v3 00/10] " Gaetan Rivet
2017-06-07 23:53 ` [PATCH v3 01/10] bus: add bus iterator to find a particular bus Gaetan Rivet
2017-06-10 8:58 ` Jan Blunck
2017-06-11 19:59 ` Gaëtan Rivet
2017-06-07 23:53 ` [PATCH v3 02/10] bus: add device iterator Gaetan Rivet
2017-06-07 23:53 ` [PATCH v3 03/10] bus: add helper to find bus for a particular device Gaetan Rivet
2017-06-07 23:53 ` [PATCH v3 04/10] bus: add bus helper iterator to find " Gaetan Rivet
2017-06-07 23:53 ` [PATCH v3 05/10] bus: introduce hotplug functionality Gaetan Rivet
2017-06-07 23:53 ` [PATCH v3 06/10] vdev: implement find_device bus operation Gaetan Rivet
2017-06-07 23:53 ` [PATCH v3 07/10] vdev: implement hotplug functionality Gaetan Rivet
2017-06-07 23:53 ` [PATCH v3 08/10] eal: make virtual driver probe and remove take rte_vdev_device Gaetan Rivet
2017-06-07 23:53 ` [PATCH v3 09/10] ethdev: use embedded rte_device to detach driver Gaetan Rivet
2017-06-07 23:53 ` [PATCH v3 10/10] net/ring: fix dev handle in eth_dev Gaetan Rivet
2017-06-20 23:29 ` [PATCH v4 0/9] bus: attach / detach API Gaetan Rivet
2017-06-20 23:29 ` [PATCH v4 1/9] bus: add bus iterator to find a particular bus Gaetan Rivet
2017-06-21 12:12 ` Thomas Monjalon
2017-06-20 23:29 ` [PATCH v4 2/9] bus: add device iterator Gaetan Rivet
2017-06-21 11:55 ` Thomas Monjalon
2017-06-21 12:15 ` Gaëtan Rivet
2017-06-20 23:29 ` [PATCH v4 3/9] bus: add helper to find bus for a particular device Gaetan Rivet
2017-06-21 12:11 ` Thomas Monjalon
2017-06-20 23:29 ` [PATCH v4 4/9] bus: add bus helper iterator to find " Gaetan Rivet
2017-06-21 12:21 ` Thomas Monjalon
2017-06-20 23:29 ` [PATCH v4 5/9] bus: introduce hotplug functionality Gaetan Rivet
2017-06-20 23:29 ` [PATCH v4 6/9] vdev: implement find_device bus operation Gaetan Rivet
2017-06-20 23:29 ` [PATCH v4 7/9] vdev: implement hotplug functionality Gaetan Rivet
2017-06-20 23:29 ` [PATCH v4 8/9] eal: make virtual driver probe and remove take rte_vdev_device Gaetan Rivet
2017-06-20 23:29 ` [PATCH v4 9/9] ethdev: use embedded rte_device to detach driver Gaetan Rivet
2017-06-21 14:33 ` Thomas Monjalon
2017-06-21 14:35 ` Thomas Monjalon
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=20170531083426.684e0e93@xeon-e3 \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=gaetan.rivet@6wind.com \
--cc=jblunck@infradead.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.