Avi Kivity wrote:
Anthony Liguori wrote:
Hi,
This is an update to the paravirt_ops KVM backend series. I've made
a number of changes and attempted to incorporate all the feedback
from the last review. Some highlights:
1) Clean up the paravirt time source patch to use a more Xen-like model
2) Change the hypercall queueing to pass a PA on the flush hypercall
3) Add MMU support for release_{pt,pd} and TLB flush
4) Use KVM specific errno values
5) Switch from per_cpu to more appropriate functions
As for performance, I've got a few interesting results. kbuild with
a guest using 2G of memory goes from 19 minutes to 12 minutes with
the full series applied. Using 512mb, the build time goes from 10.75
minutes to 9 minutes. For 512mb, native is around 7 minutes so
that's pretty close to what Avi had seen. The more dramatic
improvement with large memory guests is probably because of the
increased shadow page table activity due to high mem.
Ah, that explains why we were getting such different results. My
tests were on x86-64.
virtbench shows major improvements but I'm not 100% confident yet in
the results as they are not very stable. I don't yet have a
benchmark that shows the benefit of the CR caching so if I don't find
one, I'll drop that from the queue.
The only barrier to merging is that we're introducing yet another
stable ABI. Since we can turn off things that turn out not so good
later, and expect the guest to survive, I'm not to worried, so I'm
inclined to merge this.
Some unsigned longs are in kvm_para.h so x86_64 won't work ATM as a
host. I'll fix that and do proper testing on a 64 bit host for the next
posting (along with save/restore support).
Regards,
Anthony Liguori
_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/virtualization