From: Paolo Bonzini <pbonzini@redhat.com>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: kvm@vger.kernel.org, Luiz Capitulino <lcapitulino@redhat.com>,
Rik van Riel <riel@redhat.com>, Radim Krcmar <rkrcmar@redhat.com>
Subject: Re: [patch 2/2] KVM: x86: add option to advance tscdeadline hrtimer expiration
Date: Wed, 10 Dec 2014 18:53:48 +0100 [thread overview]
Message-ID: <548888AC.8010305@redhat.com> (raw)
In-Reply-To: <20141210173411.GA21295@amt.cnet>
On 10/12/2014 18:34, Marcelo Tosatti wrote:
>> > Let's start with a kvm-unit-tests patch to measure this value.
> I can, but kvm-unit-test register state will not be similar to
> actual guest state (think host/guest state loading).
7us is about 20000 clock cycles. A lightweight vmexit is an order of
magnitude less expensive, and half of the vmexit overhead is the VMRUN
instruction itself. All in all, the host/guest state loading should not
matter (or should matter little).
> What is the advantage of using a kvm-unit-test test rather
> than cyclictest in the guest ?
That it starts in <3 seconds, and that you can vary the timer frequency
in order to measure jitter in addition to latency.
>> We can then decide whether to hardcode a small default value (e.g.
>> 1000-3000) and make it a module parameter? Or perhaps start with a
>> higher value (twice what you find in practice?) and adjust it towards a
>> target every time wait_lapic_expire is called. But in order to judge
>> the correct approach, I need to see the numbers.
>
> Problem with automatic adjustment is: what is the correct target?
We cannot say without seeing the numbers, particularly the jitter. This
is why I want to see numbers for varying frequencies (from 100us to 10ms
per tick, say).
> You want faster instances of apic_timer_fn->vm-entry to spin a bit,
> and allow slow instances of apic_timer_fn->vm-entry to have
> an effective advancement.
If it is small enogh, you can make the timer a little "early" (increase
advance) by a small amount on every delivered interrupt. This prepares
for a slow instance.
And you can make the timer less "early" (decrease advance) by some
percentage of what you had to wait on every wait_lapic_expire, if you
had to wait more than a given threshold. This avoids that you wait too
much on consecutive fast instances.
Paolo
next prev parent reply other threads:[~2014-12-10 17:53 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-10 16:53 [patch 0/2] KVM: add option to advance tscdeadline hrtimer expiration Marcelo.Tosatti
2014-12-10 16:53 ` [patch 1/2] KVM: x86: add method to test PIR bitmap vector Marcelo.Tosatti
2014-12-10 16:53 ` [patch 2/2] KVM: x86: add option to advance tscdeadline hrtimer expiration Marcelo.Tosatti
2014-12-10 17:08 ` Paolo Bonzini
2014-12-10 17:34 ` Marcelo Tosatti
2014-12-10 17:53 ` Paolo Bonzini [this message]
-- strict thread matches above, loose matches on Subject: below --
2014-12-10 17:06 [patch 0/2] KVM: add option to advance tscdeadline hrtimer expiration (v2) Marcelo Tosatti
2014-12-10 17:06 ` [patch 2/2] KVM: x86: add option to advance tscdeadline hrtimer expiration Marcelo Tosatti
2014-12-10 17:11 ` Rik van Riel
2014-12-10 20:57 [patch 0/2] KVM: add option to advance tscdeadline hrtimer expiration (v3) Marcelo Tosatti
2014-12-10 20:57 ` [patch 2/2] KVM: x86: add option to advance tscdeadline hrtimer expiration Marcelo Tosatti
2014-12-10 23:37 ` Paolo Bonzini
2014-12-11 3:07 ` Marcelo Tosatti
2014-12-11 18:58 ` Paolo Bonzini
2014-12-11 20:48 ` Andy Lutomirski
2014-12-11 20:58 ` Marcelo Tosatti
2014-12-11 21:07 ` Andy Lutomirski
2014-12-11 21:37 ` Rik van Riel
2014-12-11 21:10 ` Paolo Bonzini
2014-12-11 21:16 ` Andy Lutomirski
2014-12-11 21:27 ` Marcelo Tosatti
2014-12-11 21:29 ` Marcelo Tosatti
2014-12-12 18:35 ` Radim Krcmar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=548888AC.8010305@redhat.com \
--to=pbonzini@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=lcapitulino@redhat.com \
--cc=mtosatti@redhat.com \
--cc=riel@redhat.com \
--cc=rkrcmar@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.