summaryrefslogtreecommitdiffstats
path: root/drivers/vfio/mdev
diff options
context:
space:
mode:
authorAlex Williamson <alex.williamson@redhat.com>2018-12-12 12:51:07 -0700
committerAlex Williamson <alex.williamson@redhat.com>2018-12-12 12:51:07 -0700
commite309df5b0c9e67cc929eedd3e32f4907fa49543e (patch)
tree6327cf73bbc15dfa759e73c6196f1e3a47ea416b /drivers/vfio/mdev
parent40e020c129cfc991e8ab4736d2665351ffd1468d (diff)
downloadlinux-e309df5b0c9e67cc929eedd3e32f4907fa49543e.tar.gz
linux-e309df5b0c9e67cc929eedd3e32f4907fa49543e.tar.bz2
linux-e309df5b0c9e67cc929eedd3e32f4907fa49543e.zip
vfio/pci: Parallelize device open and release
In commit 61d792562b53 ("vfio-pci: Use mutex around open, release, and remove") a mutex was added to freeze the refcnt for a device so that we can handle errors and perform bus resets on final close. However, bus resets can be rather slow and a global mutex here is undesirable. Evaluating the potential locking granularity, a per-device mutex provides the best resolution but with multiple devices on a bus all released concurrently, they'll race to acquire each other's mutex, likely resulting in no reset at all if we use trylock. We therefore lock at the granularity of the bus/slot reset as we're only attempting a single reset for this group of devices anyway. This allows much greater scaling as we're bounded in the number of devices protected by a single reflck object. Reported-by: Christian Ehrhardt <christian.ehrhardt@canonical.com> Tested-by: Christian Ehrhardt <christian.ehrhardt@canonical.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'drivers/vfio/mdev')
0 files changed, 0 insertions, 0 deletions