From: Dario Faggioli <dario.faggioli@citrix.com>
To: Julien Grall <julien.grall@arm.com>, Jan Beulich <JBeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
Wei Liu <wei.liu2@citrix.com>,
George Dunlap <george.dunlap@eu.citrix.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>, Tim Deegan <tim@xen.org>,
xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: xen/arm: Domain not fully destroyed when using credit2
Date: Wed, 25 Jan 2017 12:10:10 +0100 [thread overview]
Message-ID: <1485342610.32103.96.camel@citrix.com> (raw)
In-Reply-To: <d61fd72a-2e7b-5732-3b8b-bb326b0d9251@arm.com>
[-- Attachment #1.1: Type: text/plain, Size: 2492 bytes --]
On Tue, 2017-01-24 at 15:06 +0000, Julien Grall wrote:
> On 24/01/17 14:16, Dario Faggioli wrote:
> > There, we have tracing (BTW, did that made it to ARM eventually?)
> > and
> > there's TRC_PM_IDLE_ENTRY/EXIT which do pretty much the same of
> > your
> > printk-s.
>
> There is patch on the ML for xentrace support (see [1]) but nothing
> has
> been upstreamed yet. Waiting for a new version from the contributor.
>
Yep, that was I was remembering, and referring to. Thanks for the
update.
> > And if I look at it, I do see even totally idle (from the scheduler
> > point of view) pCPUs, I indeed see them going back and forth from
> > and
> > to C3.
>
> My knowledge on x86 is limited. When does a CPU decides to leave the
> idle mode?
>
I'm not an expert of that part either. Jan and Andrew for sure know
best how monitor/mwait works (both in general, and our own
implementation).
What I know (and can quickly infer from glancing at the code), is that
timers are certainly involved.
In fact, we wake up when the most imminent timer would expire (see
mwait_idle_with_hints()), and a timer set by the scheduler fully
qualifies as being the one (if it's the most imminent).
My point was that, still from scheduling perspective, neither Credit1
nor Credit2 sets a wakeup timer for idle pCPUs.
Well, in Credit1, the master_ticker timer is never stopped (while,
e.g., the per-pCPU tick is stopped before entering deep sleep,
via sched_tick_suspend(), see commit 964fae8ac), but that's only 1
pCPU.
> In the case of ARM, the wfi instruction will put the CPU in idle
> mode
> until an interrupt is received.
>
Just looking up references for MWAIT, I've found this:
(http://x86.renejeschke.de/html/file_module_x86_id_215.html)
"A store to the address range armed by the MONITOR instruction, an
interrupt, an NMI or SMI, a debug exception, a machine check exception,
the BINIT# signal, the INIT# signal, or the RESET# signal will exit the
implementation-dependent-optimized state. Note that an interrupt will
cause the processor to exit only if the state was entered with
interrupts enabled."
So, yeah, interrupt, as expectable, wakes x86 up.
Regards,
Dario
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
[-- Attachment #2: Type: text/plain, Size: 127 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-01-25 11:10 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-23 19:42 xen/arm: Domain not fully destroyed when using credit2 Julien Grall
2017-01-24 0:16 ` Stefano Stabellini
2017-01-24 12:52 ` Julien Grall
2017-01-24 8:20 ` Jan Beulich
2017-01-24 10:50 ` Julien Grall
2017-01-24 11:02 ` Jan Beulich
2017-01-24 12:30 ` Julien Grall
2017-01-24 12:53 ` Dario Faggioli
2017-01-24 13:04 ` Julien Grall
2017-01-24 13:05 ` Julien Grall
2017-01-24 13:19 ` Dario Faggioli
2017-01-24 13:24 ` Julien Grall
2017-01-24 13:40 ` Dario Faggioli
2017-01-24 13:49 ` Julien Grall
2017-01-24 14:16 ` Dario Faggioli
2017-01-24 15:06 ` Julien Grall
2017-01-25 11:10 ` Dario Faggioli [this message]
2017-01-25 12:38 ` Julien Grall
2017-01-25 12:40 ` Andrew Cooper
2017-01-25 14:23 ` Julien Grall
2017-01-25 16:00 ` Dario Faggioli
2017-01-31 16:30 ` Julien Grall
2017-01-31 22:10 ` Stefano Stabellini
2017-02-01 18:21 ` Wei Liu
2017-02-02 11:22 ` Jan Beulich
2017-02-02 11:53 ` Wei Liu
2017-02-02 12:18 ` Julien Grall
2017-02-02 12:51 ` Dario Faggioli
2017-02-02 13:26 ` Julien Grall
2017-02-02 13:32 ` Dario Faggioli
2017-03-28 18:30 ` Julien Grall
2017-03-30 7:38 ` Dario Faggioli
2017-02-02 12:01 ` Dario Faggioli
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=1485342610.32103.96.camel@citrix.com \
--to=dario.faggioli@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=george.dunlap@eu.citrix.com \
--cc=julien.grall@arm.com \
--cc=sstabellini@kernel.org \
--cc=tim@xen.org \
--cc=wei.liu2@citrix.com \
--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).