From: George Dunlap <george.dunlap@citrix.com>
To: Julien Grall <julien.grall@arm.com>,
Dario Faggioli <dario.faggioli@citrix.com>,
Stefano Stabellini <sstabellini@kernel.org>
Cc: edgar.iglesias@xilinx.com, george.dunlap@eu.citrix.com,
nd@arm.com, Punit Agrawal <punit.agrawal@arm.com>,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen/arm: introduce vwfi parameter
Date: Tue, 21 Feb 2017 16:59:00 +0000 [thread overview]
Message-ID: <c0335466-e08d-aace-8f19-d603b2ea48b4@citrix.com> (raw)
In-Reply-To: <4dcc9ffb-7d17-9564-23a3-c2ab58757e4c@arm.com>
On 21/02/17 15:14, Julien Grall wrote:
> Hi George,
>
> On 21/02/17 13:46, George Dunlap wrote:
>> I think our options look like:
>
> Thank you for the summary of the options!
>
>>
>> A. Don't trap guest WFI at all -- allow it to 'halt' in
>> moderate-power-but-ready-for-interrupt mode.
>>
>> B. Trap guest WFI and block normally.
>>
>> C. Trap guest WFI and poll instead of idling.
>>
>> D. Trap guest WFI and take that as a hint to "idle" in a non-deep sleep
>> state (perhaps, for instance, using the WFI instruction).
>>
>> A is safe because the scheduler should already have set a timer to break
>> out of it if necessary. The only potential issue here is that the guest
>> is burning its credits, meaning that other vcpus with something
>> potentially useful to do aren't being allowed to run; and then later
>> when this vcpu has something useful to do it may be prevented from
>> running because of low credits. (This may be what Dario means when he
>> says it "breaks scheduling").
>>
>> B, C, and D have the advantage that the guest will not be charged for
>> credits, and other useful work can be done if it's possible.
>>
>> B and C have the disadvantage that the effect will be significantly
>> different under Xen than on real hardware: B will mean it will go into a
>> deep sleep state (and thus not be as responsive as on real hardare); C
>> has the disadvantage that there won't be any significant power savings.
>
> I'd like to correct one misunderstanding here. Today the idle_loop on
> ARM is doing a WFI. This is not a deep-sleep state, it is fairly quite
> quick to come back. What really cost if the context switch of the state
> of the vCPU during blocking.
>
> So I think B and D are the same. Or did you expect D to not switch to
> the idle vCPU?
>
> Note, it is possible to implement more deep-sleep state on ARM either
> via PSCI or platform specific code.
Oh, right; so it sounds a bit as if WFI is ARM's version of x86 HLT. I
thought it was more special. :-)
Things get a bit tricky because one of the purposes of a hypervisor is
to deal with more advanced hardware so that the guest OS doesn't have
to. For instance, it would make sense to have simple guest OSes that
only know how to do WFI, and then have Xen have the smarts to know if
and when to go into a deeper sleep state. So you wouldn't normally want
to have WFI be a hint *not* to go into a deep sleep state, unless you
were sure that nearly all your guest operating systems would know how to
say "actually go ahead into a deep sleep state", and said that by default.
-George
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-02-21 16:59 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1487286292-29502-1-git-send-email-sstabellini@kernel.org>
[not found] ` <a271394a-6c76-027c-fb08-b3fe775224ba@arm.com>
2017-02-17 22:50 ` [PATCH] xen/arm: introduce vwfi parameter Stefano Stabellini
2017-02-18 1:47 ` Dario Faggioli
2017-02-19 21:27 ` Julien Grall
2017-02-20 10:43 ` George Dunlap
2017-02-20 11:15 ` Dario Faggioli
2017-02-19 21:34 ` Julien Grall
2017-02-20 11:35 ` Dario Faggioli
2017-02-20 18:43 ` Stefano Stabellini
2017-02-20 18:45 ` George Dunlap
2017-02-20 18:49 ` Stefano Stabellini
2017-02-20 18:47 ` Stefano Stabellini
2017-02-20 18:53 ` Julien Grall
2017-02-20 19:20 ` Dario Faggioli
2017-02-20 19:38 ` Julien Grall
2017-02-20 22:53 ` Dario Faggioli
2017-02-21 0:38 ` Stefano Stabellini
2017-02-21 8:10 ` Julien Grall
2017-02-21 9:24 ` Dario Faggioli
2017-02-21 13:04 ` Julien Grall
2017-02-21 7:59 ` Julien Grall
2017-02-21 9:09 ` Dario Faggioli
2017-02-21 12:30 ` Julien Grall
2017-02-21 13:46 ` George Dunlap
2017-02-21 15:07 ` Dario Faggioli
2017-02-21 17:49 ` Stefano Stabellini
2017-02-21 17:56 ` Julien Grall
2017-02-21 18:30 ` Stefano Stabellini
2017-02-21 19:20 ` Julien Grall
2017-02-22 4:21 ` Edgar E. Iglesias
2017-02-22 17:22 ` Stefano Stabellini
2017-02-23 9:19 ` Edgar E. Iglesias
2017-02-21 18:17 ` George Dunlap
2017-02-22 16:40 ` Dario Faggioli
2017-02-21 15:14 ` Julien Grall
2017-02-21 16:59 ` George Dunlap [this message]
2017-02-21 18:03 ` Stefano Stabellini
2017-02-21 18:24 ` Julien Grall
2017-02-21 16:51 ` Dario Faggioli
2017-02-21 17:39 ` Stefano Stabellini
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=c0335466-e08d-aace-8f19-d603b2ea48b4@citrix.com \
--to=george.dunlap@citrix.com \
--cc=dario.faggioli@citrix.com \
--cc=edgar.iglesias@xilinx.com \
--cc=george.dunlap@eu.citrix.com \
--cc=julien.grall@arm.com \
--cc=nd@arm.com \
--cc=punit.agrawal@arm.com \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/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;
as well as URLs for NNTP newsgroup(s).