From: "Gaëtan Rivet" <gaetan.rivet@6wind.com>
To: Jan Blunck <jblunck@infradead.org>
Cc: dev@dpdk.org, shreyansh.jain@nxp.com
Subject: Re: [PATCH v8 09/14] bus: introduce device plug/unplug functionality
Date: Fri, 30 Jun 2017 20:38:26 +0200 [thread overview]
Message-ID: <20170630183826.GP13355@bidouze.vm.6wind.com> (raw)
In-Reply-To: <20170630181943.23929-10-jblunck@infradead.org>
On Fri, Jun 30, 2017 at 08:19:38PM +0200, Jan Blunck wrote:
> This allows the buses to plug and probe specific devices. This is meant to
> be a building block for hotplug support.
>
> Signed-off-by: Jan Blunck <jblunck@infradead.org>
> ---
> lib/librte_eal/common/eal_common_bus.c | 2 ++
> lib/librte_eal/common/include/rte_bus.h | 32 ++++++++++++++++++++++++++++++++
> 2 files changed, 34 insertions(+)
>
> diff --git a/lib/librte_eal/common/eal_common_bus.c b/lib/librte_eal/common/eal_common_bus.c
> index bf2b138..87b0c6e 100644
> --- a/lib/librte_eal/common/eal_common_bus.c
> +++ b/lib/librte_eal/common/eal_common_bus.c
> @@ -51,6 +51,8 @@ rte_bus_register(struct rte_bus *bus)
> RTE_VERIFY(bus->scan);
> RTE_VERIFY(bus->probe);
> RTE_VERIFY(bus->find_device);
> + /* Buses supporting driver plug also require unplug. */
> + RTE_VERIFY(!bus->plug || bus->unplug);
>
> TAILQ_INSERT_TAIL(&rte_bus_list, bus, next);
> RTE_LOG(DEBUG, EAL, "Registered [%s] bus.\n", bus->name);
> diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h
> index 509292d..34ea9d5 100644
> --- a/lib/librte_eal/common/include/rte_bus.h
> +++ b/lib/librte_eal/common/include/rte_bus.h
> @@ -108,6 +108,36 @@ typedef struct rte_device *
> const void *data);
>
> /**
> + * Implementation specific probe function which is responsible for linking
> + * devices on that bus with applicable drivers.
> + *
> + * @param dev
> + * Device pointer that was returned by a previous call to find_device.
> + *
> + * @param devargs
> + * Device declaration.
> + *
> + * @return
> + * The pointer to a valid rte_device usable by the bus on success.
> + * NULL on error. rte_errno is then set.
> + */
> +typedef int (*rte_bus_plug_t)(struct rte_device *dev,
This typedef does not match its doc.
If it is the doc that is right, the PCI and vdev implementation should
be fixed as well.
> + const char *devargs);
> +
> +/**
> + * Implementation specific remove function which is responsible for unlinking
> + * devices on that bus from assigned driver.
> + *
> + * @param dev
> + * Device pointer that was returned by a previous call to find_device.
> + *
> + * @return
> + * 0 on success.
> + * !0 on error. rte_errno is then set.
> + */
> +typedef int (*rte_bus_unplug_t)(struct rte_device *dev);
> +
> +/**
> * A structure describing a generic bus.
> */
> struct rte_bus {
> @@ -116,6 +146,8 @@ struct rte_bus {
> rte_bus_scan_t scan; /**< Scan for devices attached to bus */
> rte_bus_probe_t probe; /**< Probe devices on bus */
> rte_bus_find_device_t find_device; /**< Find a device on the bus */
> + rte_bus_plug_t plug; /**< Probe single device for drivers */
> + rte_bus_unplug_t unplug; /**< Remove single device from driver */
> };
>
> /**
> --
> 2.9.4
>
--
Gaëtan Rivet
6WIND
next prev parent reply other threads:[~2017-06-30 18:38 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-26 0:21 [PATCH v5 00/12] bus: attach / detach API Gaetan Rivet
2017-06-26 0:21 ` [PATCH v5 01/12] bus: add bus iterator to find a bus Gaetan Rivet
2017-06-26 15:30 ` Bruce Richardson
2017-06-26 20:53 ` Gaëtan Rivet
2017-06-26 0:22 ` [PATCH v5 02/12] bus: add device iterator method Gaetan Rivet
2017-06-26 16:20 ` Bruce Richardson
2017-06-26 21:13 ` Gaëtan Rivet
2017-06-26 0:22 ` [PATCH v5 03/12] bus: add helper to find which bus holds a device Gaetan Rivet
2017-06-26 16:31 ` Bruce Richardson
2017-06-26 22:16 ` Gaëtan Rivet
2017-06-26 0:22 ` [PATCH v5 04/12] bus: add bus iterator to find " Gaetan Rivet
2017-06-27 10:14 ` Bruce Richardson
2017-06-27 13:54 ` Bruce Richardson
2017-06-27 15:05 ` Gaëtan Rivet
2017-06-27 15:08 ` Bruce Richardson
2017-06-26 0:22 ` [PATCH v5 05/12] bus: introduce hotplug functionality Gaetan Rivet
2017-06-27 12:23 ` Bruce Richardson
2017-06-26 0:22 ` [PATCH v5 06/12] vdev: implement find_device bus operation Gaetan Rivet
2017-06-27 12:25 ` Bruce Richardson
2017-06-26 0:22 ` [PATCH v5 07/12] vdev: implement hotplug functionality Gaetan Rivet
2017-06-27 12:41 ` Bruce Richardson
2017-06-26 0:22 ` [PATCH v5 08/12] vdev: expose bus name Gaetan Rivet
2017-06-27 12:45 ` Bruce Richardson
2017-06-26 0:22 ` [PATCH v5 09/12] vdev: use standard bus registration function Gaetan Rivet
2017-06-27 12:59 ` Bruce Richardson
2017-06-26 0:22 ` [PATCH v5 10/12] pci: implement find_device bus operation Gaetan Rivet
2017-06-27 13:36 ` Bruce Richardson
2017-06-26 0:22 ` [PATCH v5 11/12] pci: implement hotplug " Gaetan Rivet
2017-06-27 13:49 ` Bruce Richardson
2017-06-26 0:22 ` [PATCH v5 12/12] eal: make virtual driver probe and remove take rte_vdev_device Gaetan Rivet
2017-06-27 13:58 ` Bruce Richardson
2017-06-27 14:47 ` Gaëtan Rivet
2017-06-27 15:06 ` Bruce Richardson
2017-06-27 14:00 ` Bruce Richardson
2017-06-27 14:08 ` [PATCH v5 00/12] bus: attach / detach API Bruce Richardson
2017-06-27 14:48 ` Gaëtan Rivet
2017-06-27 16:11 ` [PATCH v6 00/11] " Gaetan Rivet
2017-06-27 16:11 ` [PATCH v6 01/11] bus: add bus iterator to find a bus Gaetan Rivet
2017-06-27 16:11 ` [PATCH v6 02/11] bus: add device iterator method Gaetan Rivet
2017-06-27 16:11 ` [PATCH v6 03/11] bus: add helper to find which bus holds a device Gaetan Rivet
2017-06-27 16:11 ` [PATCH v6 04/11] bus: add bus iterator to find " Gaetan Rivet
2017-06-27 16:11 ` [PATCH v6 05/11] bus: introduce hotplug functionality Gaetan Rivet
2017-06-27 19:03 ` Jan Blunck
2017-06-28 11:44 ` Thomas Monjalon
2017-06-28 11:58 ` Jan Blunck
2017-06-28 12:11 ` Thomas Monjalon
2017-06-28 13:09 ` Jan Blunck
2017-06-28 13:30 ` Thomas Monjalon
2017-06-28 15:11 ` Jan Blunck
2017-06-28 15:33 ` Bruce Richardson
2017-06-29 12:59 ` Gaëtan Rivet
2017-06-29 19:20 ` Jan Blunck
2017-06-30 11:32 ` Gaëtan Rivet
2017-06-27 16:11 ` [PATCH v6 06/11] vdev: implement find_device bus operation Gaetan Rivet
2017-06-27 16:11 ` [PATCH v6 07/11] vdev: implement hotplug " Gaetan Rivet
2017-06-27 16:11 ` [PATCH v6 08/11] vdev: use standard bus registration function Gaetan Rivet
2017-07-03 22:15 ` Thomas Monjalon
2017-06-27 16:11 ` [PATCH v6 09/11] pci: implement find_device bus operation Gaetan Rivet
2017-06-27 23:35 ` Stephen Hemminger
2017-06-28 9:17 ` Gaëtan Rivet
2017-06-28 9:52 ` Richardson, Bruce
2017-06-27 16:11 ` [PATCH v6 10/11] pci: implement hotplug " Gaetan Rivet
2017-06-27 16:11 ` [PATCH v6 11/11] dev: use new hotplug API in attach / detach Gaetan Rivet
2017-06-29 18:21 ` [PATCH 00/15] bus attach/detach API and hotplug rework Jan Blunck
2017-06-29 18:21 ` [PATCH v7 01/15] bus: add bus iterator to find a bus Jan Blunck
2017-06-29 18:21 ` [PATCH v7 02/15] bus: add find_device bus operation Jan Blunck
2017-06-29 18:21 ` [PATCH v7 03/15] vdev: implement " Jan Blunck
2017-06-29 18:21 ` [PATCH v7 04/15] pci: " Jan Blunck
2017-06-29 18:21 ` [PATCH v7 05/15] bus/fslmc: " Jan Blunck
2017-06-29 18:21 ` [PATCH v7 06/15] bus: add helper to find which bus holds a device Jan Blunck
2017-06-30 9:16 ` Thomas Monjalon
2017-06-30 16:46 ` Jan Blunck
2017-06-30 18:29 ` Thomas Monjalon
2017-06-30 21:24 ` Bruce Richardson
2017-06-30 21:25 ` Bruce Richardson
2017-06-29 18:21 ` [PATCH v7 07/15] bus: add bus iterator to find " Jan Blunck
2017-06-30 9:17 ` Thomas Monjalon
2017-06-29 18:21 ` [PATCH v7 08/15] bus: require buses to implement find_device operation Jan Blunck
2017-06-29 18:22 ` [PATCH v7 09/15] bus: add rte_bus_find_by_name Jan Blunck
2017-06-29 18:22 ` [PATCH v7 10/15] bus: introduce device plug/unplug functionality Jan Blunck
2017-06-29 18:22 ` [PATCH v7 11/15] vdev: implement unplug bus operation Jan Blunck
2017-06-29 18:22 ` [PATCH v7 12/15] pci: implement hotplug " Jan Blunck
2017-06-29 18:22 ` [PATCH v7 13/15] eal: add hotplug add/remove functions Jan Blunck
2017-06-30 9:06 ` Thomas Monjalon
2017-06-30 9:11 ` Gaëtan Rivet
2017-06-30 9:20 ` Bruce Richardson
2017-06-30 15:44 ` Jan Blunck
2017-06-30 16:03 ` Thomas Monjalon
2017-06-30 16:13 ` Gaëtan Rivet
2017-06-30 16:25 ` Bruce Richardson
2017-06-30 16:29 ` Thomas Monjalon
2017-06-30 12:54 ` Thomas Monjalon
2017-06-30 15:12 ` Jan Blunck
2017-06-29 18:22 ` [PATCH v7 14/15] dev: use new hotplug API in attach / detach Jan Blunck
2017-06-29 21:05 ` Thomas Monjalon
2017-06-29 18:22 ` [PATCH v7 15/15] ethdev: Use embedded rte_device to detach driver Jan Blunck
2017-06-29 20:58 ` Thomas Monjalon
2017-06-30 9:59 ` [PATCH 00/15] bus attach/detach API and hotplug rework Thomas Monjalon
2017-06-30 18:19 ` [PATCH v8 00/14] " Jan Blunck
2017-06-30 18:19 ` [PATCH v8 01/14] bus: add bus iterator to find a bus Jan Blunck
2017-06-30 18:19 ` [PATCH v8 02/14] bus: add find_device bus operation Jan Blunck
2017-06-30 18:19 ` [PATCH v8 03/14] vdev: implement " Jan Blunck
2017-06-30 18:19 ` [PATCH v8 04/14] pci: " Jan Blunck
2017-06-30 18:19 ` [PATCH v8 05/14] bus/fslmc: " Jan Blunck
2017-06-30 18:19 ` [PATCH v8 06/14] bus: add helper to find which bus holds a device Jan Blunck
2017-06-30 18:19 ` [PATCH v8 07/14] bus: require buses to implement find_device operation Jan Blunck
2017-06-30 18:19 ` [PATCH v8 08/14] bus: add rte_bus_find_by_name Jan Blunck
2017-06-30 18:19 ` [PATCH v8 09/14] bus: introduce device plug/unplug functionality Jan Blunck
2017-06-30 18:38 ` Gaëtan Rivet [this message]
2017-06-30 18:52 ` Jan Blunck
2017-06-30 18:19 ` [PATCH v8 10/14] vdev: implement unplug bus operation Jan Blunck
2017-06-30 18:19 ` [PATCH v8 11/14] pci: implement hotplug " Jan Blunck
2017-06-30 18:19 ` [PATCH v8 12/14] eal: add hotplug add/remove functions Jan Blunck
2017-06-30 18:19 ` [PATCH v8 13/14] ethdev: Use embedded rte_device to detach driver Jan Blunck
2017-07-03 23:17 ` Thomas Monjalon
2017-06-30 18:19 ` [PATCH v8 14/14] dev: use new hotplug API in attach Jan Blunck
2017-07-03 22:59 ` [PATCH v8 00/14] bus attach/detach API and hotplug rework 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=20170630183826.GP13355@bidouze.vm.6wind.com \
--to=gaetan.rivet@6wind.com \
--cc=dev@dpdk.org \
--cc=jblunck@infradead.org \
--cc=shreyansh.jain@nxp.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 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.