From: Peter Zijlstra <peterz@infradead.org>
To: Glauber Costa <glommer@redhat.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
Rik van Riel <riel@redhat.com>,
Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>,
Avi Kivity <avi@redhat.com>,
Anthony Liguori <aliguori@us.ibm.com>,
Eric B Munson <emunson@mgebm.net>
Subject: Re: [PATCH 6/7] KVM-GST: adjust scheduler cpu power
Date: Mon, 20 Jun 2011 16:41:33 +0200 [thread overview]
Message-ID: <1308580893.26237.24.camel@twins> (raw)
In-Reply-To: <4DF80A40.9040201@redhat.com>
On Tue, 2011-06-14 at 22:26 -0300, Glauber Costa wrote:
> On 06/14/2011 07:42 AM, Peter Zijlstra wrote:
> > On Mon, 2011-06-13 at 19:31 -0400, Glauber Costa wrote:
> >> @@ -1981,12 +1987,29 @@ static void update_rq_clock_task(struct rq
> >> *rq, s64 delta)
> >>
> >> rq->prev_irq_time += irq_delta;
> >> delta -= irq_delta;
> >> +#endif
> >> +#ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING
> >> + if (static_branch((¶virt_steal_rq_enabled))) {
> >
> > Why is that a different variable from the touch_steal_time() one?
>
> because they track different things, touch_steal_time() and
> update_rq_clock() are
> called from different places at different situations.
>
> If we advance prev_steal_time in touch_steal_time(), and later on call
> update_rq_clock_task(), we won't discount the time already flushed from
> the rq_clock. Conversely, if we call update_rq_clock_task(), and only
> then arrive at touch_steal_time, we won't account steal time properly.
But that's about prev_steal_time vs prev_steal_time_acc, I agree those
should be different.
> update_rq_clock_task() is called whenever update_rq_clock() is called.
> touch_steal_time is called every tick. If there is a causal relation
> between them that would allow us to track it in a single location, I
> fail to realize.
Both are steal time muck, I was wondering why we'd want to do one and
not the other when we have a high res stealtime clock.
> >> +
> >> + steal = paravirt_steal_clock(cpu_of(rq));
> >> + steal -= rq->prev_steal_time_acc;
> >> +
> >> + rq->prev_steal_time_acc += steal;
> >
> > You have this addition in the wrong place, when you clip:
>
> I begin by disagreeing
> >> + if (steal> delta)
> >> + steal = delta;
> >
> > you just lost your steal delta, so the addition to prev_steal_time_acc
> > needs to be after the clip.
> Unlike irq time, steal time can be extremely huge. Just think of a
> virtual machine that got interrupted for a very long time. We'd have
> steal >> delta, leading to steal == delta for a big number of iterations.
> That would affect cpu power for an extended period of time, not
> reflecting present situation, just the past. So I like to think of delta
> as a hard cap for steal time.
>
> Obviously, I am open to debate.
I'm failing to see how this would happen, if the virtual machine wasn't
scheduled for a long long while, delta would be huge too. But suppose it
does happen, wouldn't it be likely that the virtual machine would
receive similar bad service in the near future? Making the total
accounting relevant.
next prev parent reply other threads:[~2011-06-20 14:41 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-13 23:31 [PATCH 0/7] KVM steal time implementation Glauber Costa
2011-06-13 23:31 ` [PATCH 1/7] KVM-HDR Add constant to represent KVM MSRs enabled bit Glauber Costa
2011-06-14 0:59 ` Rik van Riel
2011-06-14 1:18 ` Eric B Munson
2011-06-13 23:31 ` [PATCH 2/7] KVM-HDR: KVM Steal time implementation Glauber Costa
2011-06-14 1:19 ` Eric B Munson
2011-06-14 1:33 ` Rik van Riel
2011-06-13 23:31 ` [PATCH 3/7] KVM-HV: " Glauber Costa
2011-06-14 1:20 ` Eric B Munson
2011-06-14 7:45 ` Gleb Natapov
2011-06-15 1:01 ` Glauber Costa
2011-06-15 3:09 ` Glauber Costa
2011-06-15 9:09 ` Gleb Natapov
2011-06-16 3:31 ` Glauber Costa
2011-06-16 11:27 ` Gleb Natapov
2011-06-16 12:11 ` Glauber Costa
2011-06-16 12:21 ` Gleb Natapov
2011-06-16 12:24 ` Glauber Costa
2011-06-19 12:35 ` Avi Kivity
2011-06-19 12:59 ` Gleb Natapov
2011-06-19 13:02 ` Avi Kivity
2011-06-20 7:21 ` Gleb Natapov
2011-06-20 8:02 ` Avi Kivity
2011-06-20 12:42 ` Glauber Costa
2011-06-20 13:38 ` Gleb Natapov
2011-06-14 12:20 ` Rik van Riel
2011-06-13 23:31 ` [PATCH 4/7] KVM-GST: Add a pv_ops stub for steal time Glauber Costa
2011-06-14 1:20 ` Eric B Munson
2011-06-14 13:23 ` Rik van Riel
2011-06-13 23:31 ` [PATCH 5/7] KVM-GST: KVM Steal time accounting Glauber Costa
2011-06-14 1:21 ` Eric B Munson
2011-06-14 10:10 ` Peter Zijlstra
2011-06-15 1:08 ` Glauber Costa
2011-06-15 9:28 ` Peter Zijlstra
2011-06-13 23:31 ` [PATCH 6/7] KVM-GST: adjust scheduler cpu power Glauber Costa
2011-06-14 1:21 ` Eric B Munson
2011-06-14 2:47 ` Asias He
2011-06-14 10:42 ` Peter Zijlstra
2011-06-15 1:26 ` Glauber Costa
2011-06-20 14:41 ` Peter Zijlstra [this message]
2011-06-13 23:31 ` [PATCH 7/7] KVM-GST: KVM Steal time registration Glauber Costa
2011-06-14 1:21 ` Eric B Munson
2011-06-14 8:06 ` Gleb Natapov
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=1308580893.26237.24.camel@twins \
--to=peterz@infradead.org \
--cc=aliguori@us.ibm.com \
--cc=avi@redhat.com \
--cc=emunson@mgebm.net \
--cc=glommer@redhat.com \
--cc=jeremy.fitzhardinge@citrix.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=riel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox