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 kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html