Re: [PATCH v4] kvm/irqchip: Speed up KVM_SET_GSI_ROUTING

From: Christian Borntraeger
Date: Tue Apr 29 2014 - 03:55:50 EST


On 28/04/14 18:39, Paolo Bonzini wrote:
> From: Christian Borntraeger <borntraeger@xxxxxxxxxx>
>
> When starting lots of dataplane devices the bootup takes very long on
> Christian's s390 with irqfd patches. With larger setups he is even
> able to trigger some timeouts in some components. Turns out that the
> KVM_SET_GSI_ROUTING ioctl takes very long (strace claims up to 0.1 sec)
> when having multiple CPUs. This is caused by the synchronize_rcu and
> the HZ=100 of s390. By changing the code to use a private srcu we can
> speed things up. This patch reduces the boot time till mounting root
> from 8 to 2 seconds on my s390 guest with 100 disks.
>
> Uses of hlist_for_each_entry_rcu, hlist_add_head_rcu, hlist_del_init_rcu
> are fine because they do not have lockdep checks (hlist_for_each_entry_rcu
> uses rcu_dereference_raw rather than rcu_dereference, and write-sides
> do not do rcu lockdep at all).
>
> Note that we're hardly relying on the "sleepable" part of srcu. We just
> want SRCU's faster detection of grace periods.
>
> Testing was done by Andrew Theurer using NETPERF. The difference between
> results "before" and "after" the patch has mean -0.2% and standard deviation
> 0.6%. Using a paired t-test on the data points says that there is a 2.5%
> probability that the patch is the cause of the performance difference
> (rather than a random fluctuation).
>
> Cc: Marcelo Tosatti <mtosatti@xxxxxxxxxx>
> Cc: Michael S. Tsirkin <mst@xxxxxxxxxx>
> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>
> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>

Thanks for moving that patch forward to the latest kernel version
(plus your fixes)

I can confirm that it still fixes the performance issue on s390.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/