From: Ian Campbell <ian.campbell@citrix.com>
To: Julien Grall <julien.grall@citrix.com>,
Dario Faggioli <dario.faggioli@citrix.com>,
osstest service owner <osstest-admin@xenproject.org>
Cc: xen-devel@lists.xensource.com,
David Vrabel <david.vrabel@citrix.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: Re: Arndale secondary CPU boot issue Was Re: [xen-unstable test] 60076: regressions - FAIL
Date: Thu, 30 Jul 2015 09:55:10 +0100 [thread overview]
Message-ID: <1438246510.11600.252.camel@citrix.com> (raw)
In-Reply-To: <55B918F7.6080302@citrix.com>
On Wed, 2015-07-29 at 19:18 +0100, Julien Grall wrote:
As an aside from the issue you are seeing:
> The old implementation of spinlock is sending an event (via the assembly
> instruction SEV) to the other physical CPUs. This will wake up the
> others CPUs waiting on the assembly instruction WFE (Wait For Event).
Uh, I didn't notice this about the new implementation, sorry I should have
done.
IMHO we should investigate (probably with some urgency) inserting a WFE and
SEV pair into the lock/unlock paths, else power consumption will suck.
I think that probably means using something new to replace the cpu_relax()
calls in the spinlocks with a WFE on ARM (we don't just want to change
relax) and to add a arch specific hook for the SEV on the release path.
If it is too late for 4.6 (which would depend on the eventual complexity of
the actual fix) then we should fix this ASAP in 4.7 and backport for 4.6.1.
> It appears to be required on the Arndale to boot secondaries CPUs.
> Although, depending on where I put the sev I don't have the same
> behavior:
> - sev in smp_init callback: the CPU is not coming up
> - sev before or after arch_cpu_up: the CPU is booting but not in
> HYP
> mode [2]
>
> I haven't yet figured out where the "sev" should be placed in order to
> get the CPU boot correctly.
Does the arndale end up using
.cpu_up = cpu_up_send_sgi,
or
.cpu_up = exynos5_cpu_up,
?
> What I don't understand is how the placement of "sev" would affect the
> secondary processor to boot in HYP mode or Kernel mode or nothing at all
>
> This platform seems very picky and I don't remember having a
> documentation about how the SMP boot works for this platform. Linux
> seems to avoid the SEV for this platform.
32-bit Linux has some in common code paths IIRC, which are not always
apparent at first glance.
Ian.
next prev parent reply other threads:[~2015-07-30 8:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-29 6:42 [xen-unstable test] 60076: regressions - FAIL osstest service owner
2015-07-29 9:05 ` Dario Faggioli
2015-07-29 14:10 ` Julien Grall
2015-07-29 14:15 ` Julien Grall
2015-07-29 18:18 ` Arndale secondary CPU boot issue Was " Julien Grall
2015-07-30 8:55 ` Ian Campbell [this message]
2015-07-30 10:54 ` Stefano Stabellini
2015-07-30 11:27 ` Ian Campbell
2015-07-30 11:27 ` David Vrabel
2015-07-30 11:36 ` Julien Grall
2015-07-30 10:38 ` Andrew Cooper
2015-07-30 7:48 ` 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=1438246510.11600.252.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=dario.faggioli@citrix.com \
--cc=david.vrabel@citrix.com \
--cc=julien.grall@citrix.com \
--cc=osstest-admin@xenproject.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xensource.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.