Re: Seeking a KVM benchmark

Andy Lutomirski
2014-11-12T16:07:37Z

On Wed, Nov 12, 2014 at 7:51 AM, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
>
> On 12/11/2014 16:32, Gleb Natapov wrote:
>> > > > userspace exit, urn 17560 17726 17628 17572 17417
>> > > > lightweight exit, urn 3316 3342 3342 3319 3328
>> > > > userspace exit, LOAD_EFER, guest!=host 12200 11772 12130 12164 12327
>> > > > lightweight exit, LOAD_EFER, guest!=host 3214 3220 3238 3218 3337
>> > > > userspace exit, LOAD_EFER, guest=host 11983 11780 11920 11919 12040
>> > > > lightweight exit, LOAD_EFER, guest=host 3178 3193 3193 3187 3220
>> > >
>> > > Is this with Andy's patch that skips LOAD_EFER when guest=host, or the one
>> > > that always switch LOAD_EFER?
>> >
>> > Skip LOAD_EFER when guest=host.
>>
>> So guest=host is a little bit better than guest!=host so looks like
>> skipping LOAD_EFER helps, but why "lightweight exit, urn" worse than
>> guest=host though, it should be exactly the same as long as NX bit is
>> the same in urn test, no?
>
> I don't know---it is very much reproducible though. It is not my
> machine so I cannot run perf on it, but I can try to find a similar one
> in the next few days.

Assuming you're running both of my patches (LOAD_EFER regardless of
nx, but skip LOAD_EFER of guest == host), then some of the speedup may
be just less code running. I haven't figured out exactly when
vmx_save_host_state runs, but my patches avoid a call to
kvm_set_shared_msr, which is worth a few cycles.

--Andy

>
> Paolo

--
Andy Lutomirski
AMA Capital Management, LLC