Il 26/03/2014 09:22, Gonglei (Arei) ha scritto:
Yes, previously I was using synchronize_srcu, which is not good. When I changed it to synchronize_srcu_expedited, grace period delay is much better than synchronize_srcu. Though in our tests, we can still see some impact of KVM_SET_GSI_ROUTING ioctl. Our testing scenario is like this. In VM we run a script that sets smp_affinity for each IRQ every 0.5s (this leads QEMU to do KVM_SET_GSI_ROUTING ioctl). Outside the VM we ping that VM.
Does the affinity actually change every 0.5s?
Without patches, ping time can jump from 0.3ms to 2ms-30ms. With synchronize_srcu patch, ping time is worse. With synchronize_srcu_expedited patch, ping time is overall good, though sometimes ping time jump to 1ms-3ms. With following raw patch, ping time is like call_rcu patch, that not influenced by setting IRQ affinity, keeps 0.3ms, and there is no vulnerability, frequent intermidiate KVM_SET_GSI_ROUTING settings are just skipped, and always the newest setting would take effect.
Interesting, but it only works for assigned-dev.c which is deprecated. If you used VFIO you'd see no improvement, and Christian's s390 usecase would also see no improvement.
Paolo -- 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