vfio/type1: Add conditional rescheduling
authorAlex Williamson <alex.williamson@redhat.com>
Fri, 6 Feb 2015 21:19:12 +0000 (14:19 -0700)
committerAlex Williamson <alex.williamson@redhat.com>
Fri, 6 Feb 2015 21:19:12 +0000 (14:19 -0700)
commitc5e6688752c25434d71920bc969f9fab60353c5e
tree176ad1355f26bc2542e320471ab1691400c0974c
parentbabbf1760970f141eb4021288ce0fb7196bc1a23
vfio/type1: Add conditional rescheduling

IOMMU operations can be expensive and it's not very difficult for a
user to give us a lot of work to do for a map or unmap operation.
Killing a large VM will vfio assigned devices can result in soft
lockups and IOMMU tracing shows that we can easily spend 80% of our
time with need-resched set.  A sprinkling of conf_resched() calls
after map and unmap calls has a very tiny affect on performance
while resulting in traces with <1% of calls overflowing into needs-
resched.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/vfio/vfio_iommu_type1.c