Re: Need to scale down the time to release multiple vfio devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[...]

>
> One more try, lightly tested, hopefully the best of both worlds with a
> mutex per bus/slot so that multiple buses/slots can be reset in
> parallel, but the devices affected by those resets, per bus/slot, are
> serialized.  Now my multi-function device gets a bus reset with the
> parallel unit tests.  Thanks,
>
> Alex
>
> commit dc05ffc2f5a666a68b547f326e4c6061abf9f89a
> Author: Alex Williamson <alex.williamson@xxxxxxxxxx>
> Date:   Wed Oct 31 13:22:33 2018 -0600
>
>     vfio/pci: Parallelize device open and release

Hi Alex,
thanks for your thoughts and patches on this.
I'm glad you were able to come up avoiding the regression for
functions in the same group.
I built and tested your second patch and it works fine with my initial case.

As with my RFC the threaded and concurrent process based close actions
are now fast - giving userspace a chance to make it faster.
Kill signal/Process exit still is serialized by the __fput cleanup
from the work queue - as expected.
Your patch is even slightly faster (about half a second) than my
initial suggestion.

Further for some more light tests I ran some general vfio/passthrough
tests which all still worked as they did before.

Tested-by: Christian Ehrhardt <christian.ehrhardt@xxxxxxxxxxxxx>

You also added some debug code to track the retval of vfio_pci_try_bus_reset.
Therefore I thought it might be worth to mention that in my case this
reports for every vfio detach:
   [  327.544291] vfio_pci_try_bus_reset: -22
That would be EINVAL right?
I didn't track down where that came from, please let me know if that
would be important to you.


P.S. sorry for the late reply but the end of last week had some public
holidays for us and yesterday the machine I can test this on was so
unstable that it was barely usable



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux