Re: Seeking a KVM benchmark

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 6, 2014 at 11:17 PM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
>
>
> On 07/11/2014 07:27, Andy Lutomirski wrote:
>> Is there an easy benchmark that's sensitive to the time it takes to
>> round-trip from userspace to guest and back to userspace?  I think I
>> may have a big speedup.
>
> The simplest is vmexit.flat from
> git://git.kernel.org/pub/scm/virt/kvm/kvm-unit-tests.git
>
> Run it with "x86/run x86/vmexit.flat" and look at the inl_from_qemu
> benchmark.

Thanks!

That test case is slower than I expected.  I think my change is likely
to save somewhat under 100ns, which is only a couple percent.  I'll
look for more impressive improvements.

On a barely related note, in the process of poking around with this
test, I noticed:

    /* On ept, can't emulate nx, and must switch nx atomically */
    if (enable_ept && ((vmx->vcpu.arch.efer ^ host_efer) & EFER_NX)) {
        guest_efer = vmx->vcpu.arch.efer;
        if (!(guest_efer & EFER_LMA))
            guest_efer &= ~EFER_LME;
        add_atomic_switch_msr(vmx, MSR_EFER, guest_efer, host_efer);
        return false;
    }

    return true;

This heuristic seems wrong to me.  wrmsr is serializing and therefore
extremely slow, whereas I imagine that, on CPUs that support it,
atomically switching EFER ought to be reasonably fast.

Indeed, changing vmexit.c to disable NX (thereby forcing atomic EFER
switching, and having no other relevant effect that I've thought of)
speeds up inl_from_qemu by ~30% on Sandy Bridge.  Would it make sense
to always use atomic EFER switching, at least when
cpu_has_load_ia32_efer?

--Andy
--
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




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux