[dpdk-dev] [PATCH v6 0/2] add uevent monitor for hot plug
Mordechay Haimovsky
motih at mellanox.com
Thu Dec 14 10:48:23 CET 2017
Hello,
I would like to apply this patch in order to review it.
Trying to apply it on 17.11 (and latest) fails due to missing lib/librte_eal/common/eal_common_vdev.c
Trying to apply it on 17.08.1 fails on missing drivers/bus/pci/bsd/pci.c file
So, on what DPDK version should I apply it ?
Or maybe there is a bunch of other patches I have to apply in order to use this patch ?
Thanks
Moti H.
> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Jeff Guo
> Sent: Wednesday, November 1, 2017 10:17 PM
> To: stephen at networkplumber.org; bruce.richardson at intel.com;
> ferruh.yigit at intel.com; gaetan.rivet at 6wind.com; Thomas Monjalon
> <thomas at monjalon.net>
> Cc: konstantin.ananyev at intel.com; jblunck at infradead.org;
> shreyansh.jain at nxp.com; jingjing.wu at intel.com; dev at dpdk.org;
> jia.guo at intel.com; helin.zhang at intel.com
> Subject: [dpdk-dev] [PATCH v6 0/2] add uevent monitor for hot plug
>
> So far, about hot plug in dpdk, we already have hot plug add/remove api and
> fail-safe driver to offload the fail-safe work from the app user. But there are
> still lack of a general event api, since the interrupt event, which hot plug
> related with, is diversity between each device and driver, such as mlx4, pci
> driver and others.
>
> Use the hot removal event for example, pci drivers not all exposure the
> remove interrupt, so in order to make user to easy use the hot plug feature
> for pci driver, something must be done to detect the remove event at the
> kernel level and offer a new line of interrupt to the user land.
>
> Base on the uevent of kobject mechanism in kernel, we could use it to
> benefit for monitoring the hot plug status of the device which not only
> uio/vfio of pci bus devices, but also other, such as cpu/usb/pci-express bus
> devices.
>
> The idea is comming as bellow.
>
> a.The uevent message form FD monitoring which will be useful.
> remove@/devices/pci0000:80/0000:80:02.2/0000:82:00.0/0000:83:03.0/0000:8
> 4:00.2/uio/uio2
> ACTION=remove
> DEVPATH=/devices/pci0000:80/0000:80:02.2/0000:82:00.0/0000:83:03.0/0000:
> 84:00.2/uio/uio2
> SUBSYSTEM=uio
> MAJOR=243
> MINOR=2
> DEVNAME=uio2
> SEQNUM=11366
>
> b.add uevent monitoring machanism:
> add several general api to enable uevent monitoring.
>
> c.add common uevent handler and uevent failure handler uevent of device
> should be handler at bus or device layer, and the memory read and write
> failure when hot removal should be handle correctly before detach
> behaviors.
>
> d.show example how to use uevent monitor enable uevent monitoring in
> testpmd or fail-safe to show usage.
>
> patchset history:
> v6->v5:
> 1.add hot plug policy, in eal, default handle to prepare hot plug work for all
> pci device, then let app to manage to deside which device need to hot plug.
> 2.modify to manage event callback in each device.
> 3.fix some system hung issue when igb_uio release.
> 4.modify the pci part to the bus-pci base on the bus rework.
> 5.add hot plug policy in app, show example to use hotplug list to manage to
> deside which device need to hot plug.
>
> v5->v4:
> 1.Move uevent monitor epolling from eal interrupt to eal device layer.
> 2.Redefine the eal device API for common, and distinguish between linux
> and bsd 3.Add failure handler helper api in bus layer.Add function of find
> device by name.
> 4.Replace of individual fd bind with single device, use a common fd to polling
> all device.
> 5.Add to register hot insertion monitoring and process, add function to auto
> bind driver befor user add device 6.Refine some coding style and typos issue
> 7.add new callback to process hot insertion
>
> v4->v3:
> 1.move uevent monitor api from eal interrupt to eal device layer.
> 2.create uevent type and struct in eal device.
> 3.move uevent handler for each driver to eal layer.
> 4.add uevent failure handler to process signal fault issue.
> 5.add example for request and use uevent monitoring in testpmd.
>
> v3->v2:
> 1.refine some return error
> 2.refine the string searching logic to avoid memory issue
>
> v2->v1:
> 1.remove global variables of hotplug_fd, add uevent_fd in rte_intr_handle to
> let each pci device self maintain it fd, to fix dual device fd issue.
> 2.refine some typo error.
>
> Jeff Guo (2):
> eal: add uevent monitor for hot plug
> app/testpmd: use uevent to monitor hotplug
>
> app/test-pmd/testpmd.c | 172 ++++++++++
> app/test-pmd/testpmd.h | 9 +
> drivers/bus/pci/bsd/pci.c | 23 ++
> drivers/bus/pci/linux/pci.c | 34 ++
> drivers/bus/pci/linux/pci_init.h | 1 +
> drivers/bus/pci/pci_common.c | 42 +++
> drivers/bus/pci/pci_common_uio.c | 28 ++
> drivers/bus/pci/private.h | 12 +
> drivers/bus/pci/rte_bus_pci.h | 9 +
> lib/librte_eal/bsdapp/eal/eal_dev.c | 64 ++++
> .../bsdapp/eal/include/exec-env/rte_dev.h | 105 ++++++
> lib/librte_eal/common/eal_common_bus.c | 29 ++
> lib/librte_eal/common/eal_common_dev.c | 222 +++++++++++++
> lib/librte_eal/common/eal_common_vdev.c | 27 ++
> lib/librte_eal/common/include/rte_bus.h | 51 +++
> lib/librte_eal/common/include/rte_dev.h | 107 ++++++-
> lib/librte_eal/linuxapp/eal/Makefile | 3 +-
> lib/librte_eal/linuxapp/eal/eal_dev.c | 353
> +++++++++++++++++++++
> .../linuxapp/eal/include/exec-env/rte_dev.h | 105 ++++++
> lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 6 +
> lib/librte_pci/rte_pci.c | 20 ++
> lib/librte_pci/rte_pci.h | 17 +
> 22 files changed, 1437 insertions(+), 2 deletions(-) create mode 100644
> lib/librte_eal/bsdapp/eal/eal_dev.c
> create mode 100644 lib/librte_eal/bsdapp/eal/include/exec-env/rte_dev.h
> create mode 100644 lib/librte_eal/linuxapp/eal/eal_dev.c
> create mode 100644 lib/librte_eal/linuxapp/eal/include/exec-env/rte_dev.h
>
> --
> 2.7.4
More information about the dev
mailing list