[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1553296835-37522-1-git-send-email-parav@mellanox.com>
Date: Fri, 22 Mar 2019 18:20:27 -0500
From: Parav Pandit <parav@...lanox.com>
To: kvm@...r.kernel.org, linux-kernel@...r.kernel.org,
kwankhede@...dia.com, alex.williamson@...hat.com
Cc: parav@...lanox.com
Subject: [PATCH 0/8] vfio/mdev: Improve vfio/mdev core module
As we would like to use mdev subsystem for wider use case as
discussed in [1], [2] apart from an offline discussion.
This use case is also discussed with wider forum in [4] in track
'Lightweight NIC HW functions for container offload use cases'.
This series is prep-work and improves vfio/mdev module in following ways.
Patch-1 and 2 Fixes releasing parent dev reference during error unwinding
of mdev create and mdev parent registration.
Patch-3 Simplifies mdev device for unused kref.
Patch-4 Drops redundant extern prefix of exported symbols.
Patch-5 Returns right error code from vendor driver.
Patch-6 Fixes to use right sysfs remove sequence.
Patch-7 Fixes removing all child devices if one of them fails.
Patch 8 Brings improvements to mdev in following ways.
1. Fix race conditions among mdev parent's create(), remove() and
mdev parent unregistration routines that leads to call traces.
2. Setup vendor mdev device before placing the device on mdev bus.
This ensures that vfio_mdev or any other module that accesses mdev,
is rightly in any of the callbacks of mdev_register_driver().
This follows Linux driver model now.
Similarly follow exact reverse remove sequence, i.e. to take away the
device first from the bus before removing underlying hardware mdev.
This series is tested using
(a) mtty with VM using vfio_mdev driver for positive tests.
(b) mtty with vfio_mdev with error race condition cases of create,
remove and mtty driver.
(c) mlx5 core driver using RFC patches [3] and internal patches.
Internal patches are large and cannot be combined with this
prep-work patches. It will posted once prep-work completes.
[1] https://www.spinics.net/lists/netdev/msg556978.html
[2] https://lkml.org/lkml/2019/3/7/696
[3] https://lkml.org/lkml/2019/3/8/819
[4] https://netdevconf.org/0x13/session.html?workshop-hardware-offload
Parav Pandit (8):
vfio/mdev: Fix to not do put_device on device_register failure
vfio/mdev: Avoid release parent reference during error path
vfio/mdev: Removed unused kref
vfio/mdev: Drop redundant extern for exported symbols
vfio/mdev: Avoid masking error code to EBUSY
vfio/mdev: Follow correct remove sequence
vfio/mdev: Fix aborting mdev child device removal if one fails
vfio/mdev: Improve the create/remove sequence
drivers/vfio/mdev/mdev_core.c | 164 +++++++++++++++++++--------------------
drivers/vfio/mdev/mdev_private.h | 8 +-
drivers/vfio/mdev/mdev_sysfs.c | 8 +-
include/linux/mdev.h | 21 +++--
4 files changed, 98 insertions(+), 103 deletions(-)
--
1.8.3.1
Powered by blists - more mailing lists