[dpdk-dev] [PATCH V18 1/5] bus: introduce device hot unplug handle
Tan, Jianfeng
jianfeng.tan at intel.com
Wed Apr 4 06:31:02 CEST 2018
> -----Original Message-----
> From: Guo, Jia
> Sent: Wednesday, April 4, 2018 2:17 AM
> To: stephen at networkplumber.org; Richardson, Bruce; Yigit, Ferruh;
> Ananyev, Konstantin; gaetan.rivet at 6wind.com; Wu, Jingjing;
> thomas at monjalon.net; motih at mellanox.com; Van Haaren, Harry; Tan,
> Jianfeng
> Cc: jblunck at infradead.org; shreyansh.jain at nxp.com; dev at dpdk.org; Guo,
> Jia; Zhang, Helin
> Subject: [PATCH V18 1/5] bus: introduce device hot unplug handle
>
> As of device hot unplug, we need some preparatory measures so that we will
> not encounter memory fault after device have been plug out of the system,
> and also let we could recover the running data path but not been break.
> This allows the buses to handle device hot unplug event.
> In the following patch, will show how to handle the case for pci bus.
Squeeze this patch with the next one.
>
> Signed-off-by: Jeff Guo <jia.guo at intel.com>
> ---
> v16->v15:
> split patch, and remove the ops from RTE_VERIFY
> ---
> lib/librte_eal/common/include/rte_bus.h | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/lib/librte_eal/common/include/rte_bus.h
> b/lib/librte_eal/common/include/rte_bus.h
> index 6fb0834..ecd8b1c 100644
> --- a/lib/librte_eal/common/include/rte_bus.h
> +++ b/lib/librte_eal/common/include/rte_bus.h
> @@ -168,6 +168,19 @@ typedef int (*rte_bus_unplug_t)(struct rte_device
> *dev);
> typedef int (*rte_bus_parse_t)(const char *name, void *addr);
>
> /**
> + * Implementation specific hot unplug handler function which is responsible
> + * for handle the failure when hot unplug the device, guaranty the system
> + * would not crash in the case.
> + * @param dev
> + * Pointer of the device structure.
> + *
> + * @return
> + * 0 on success.
> + * !0 on error.
> + */
> +typedef int (*rte_bus_handle_hot_unplug_t)(struct rte_device *dev);
> +
> +/**
> * Bus scan policies
> */
> enum rte_bus_scan_mode {
> @@ -209,6 +222,8 @@ struct rte_bus {
> rte_bus_plug_t plug; /**< Probe single device for drivers */
> rte_bus_unplug_t unplug; /**< Remove single device from driver
> */
> rte_bus_parse_t parse; /**< Parse a device name */
> + rte_bus_handle_hot_unplug_t handle_hot_unplug; /**< handle when device
> + hot unplug */
May be just rte_bus_hot_unplug_t hot_unplug /**< Handle hot unplug device event */
> struct rte_bus_conf conf; /**< Bus configuration */
> rte_bus_get_iommu_class_t get_iommu_class; /**< Get iommu
> class */
> };
> --
> 2.7.4
More information about the dev
mailing list