From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
To: Will Deacon <will.deacon@arm.com>
Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"arnd@arndb.de" <arnd@arndb.de>,
Marc Zyngier <Marc.Zyngier@arm.com>,
"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
"nico@linaro.org" <nico@linaro.org>
Subject: Re: [PATCH v3] [RFC] arm: use PSCI if available
Date: Wed, 27 Mar 2013 16:23:15 +0000 [thread overview]
Message-ID: <alpine.DEB.2.02.1303271610430.4430@kaball.uk.xensource.com> (raw)
In-Reply-To: <20130327133811.GE18429@mudshark.cambridge.arm.com>
On Wed, 27 Mar 2013, Will Deacon wrote:
> Hi Stefano,
>
> On Wed, Mar 27, 2013 at 12:50:39PM +0000, Stefano Stabellini wrote:
> > Check for the presence of PSCI before setting smp_ops, use PSCI if it is
> > available.
> >
> > This is useful because at least when running on Xen it's possible to have a
> > PSCI node for example on a Versatile Express or an Exynos5 machine. In these
> > cases the PSCI SMP calls should be the ones to be called.
> >
> > Remove virt_smp_ops and platsmp.c from mach-virt because they aren't needed
> > anymore.
>
> [...]
>
> > +struct psci_operations psci_ops = {
> > + .cpu_suspend = psci_cpu_suspend,
> > + .cpu_off = psci_cpu_off,
> > + .cpu_on = psci_cpu_on,
> > + .migrate = psci_migrate,
> > +};
> > +
> > +#ifdef CONFIG_SMP
> > +static void __init psci_smp_init_cpus(void)
> > +{
> > +}
> > +
> > +static void __init psci_smp_prepare_cpus(unsigned int max_cpus)
> > +{
> > +}
> > +
> > +static int __cpuinit psci_boot_secondary(unsigned int cpu,
> > + struct task_struct *idle)
> > +{
> > + return psci_cpu_on(cpu_logical_map(cpu), __pa(secondary_startup));
> > +}
> > +
> > +static void __cpuinit psci_secondary_init(unsigned int cpu)
> > +{
> > + gic_secondary_init(0);
> > +}
> > +
> > +struct smp_operations __initdata psci_smp_ops = {
> > + .smp_init_cpus = psci_smp_init_cpus,
> > + .smp_prepare_cpus = psci_smp_prepare_cpus,
> > + .smp_secondary_init = psci_secondary_init,
> > + .smp_boot_secondary = psci_boot_secondary,
> > +};
> > +#endif
>
> As I said before, I don't agree with bolting these two interfaces together
> like this and, as it stands, I'm afraid I have to NAK this patch.
>
> A potential alternative is to have a set of virt_smp_ops, which have
> wrappers around the psci functions, but that requires agreement from Xen and
> KVM to implement the same PSCI interface, which feels unfair to me.
>
> I see what you're trying to do, but I can't go along with it. Sorry.
OK, let's see if I can make this acceptable to you.
Would you agree on a patch that moves virt_smp_ops out of mach-virt and
renames them to psci_smp_ops (maybe to arch/arm/kernel/psci_smp_ops.c)?
Would you agree on initializing psci from setup_arch, right after the
call to arm_dt_init_cpu_maps()?
Finally the most controversial point: would you agree on using
psci_smp_ops by default if they are available?
If not, would you at least agree on letting Xen overwrite the default
machine smp_ops?
We need one or the other for dom0 support.
next prev parent reply other threads:[~2013-03-27 16:23 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-27 12:50 Stefano Stabellini
2013-03-27 13:35 ` Marc Zyngier
2013-03-27 16:20 ` Rob Herring
2013-03-27 13:38 ` Will Deacon
2013-03-27 16:23 ` Stefano Stabellini [this message]
2013-03-27 16:35 ` Rob Herring
2013-03-27 17:10 ` Stefano Stabellini
2013-03-27 17:24 ` Nicolas Pitre
2013-03-27 18:22 ` Stefano Stabellini
2013-03-27 17:45 ` Rob Herring
2013-03-27 18:03 ` Arnd Bergmann
2013-03-27 18:14 ` Stefano Stabellini
2013-03-27 17:23 ` Will Deacon
2013-03-28 12:48 ` Stefano Stabellini
2013-03-28 14:51 ` Nicolas Pitre
2013-03-28 15:04 ` Rob Herring
2013-03-28 15:36 ` Stefano Stabellini
2013-03-28 15:39 ` Nicolas Pitre
2013-03-28 16:00 ` Will Deacon
2013-03-28 16:06 ` Nicolas Pitre
2013-03-28 16:20 ` Stefano Stabellini
2013-03-28 18:38 ` Rob Herring
2013-03-29 13:22 ` Stefano Stabellini
2013-03-29 13:54 ` Rob Herring
2013-03-29 14:47 ` Stefano Stabellini
2013-03-27 16:33 ` Rob Herring
2013-03-27 17:05 ` Will Deacon
2013-03-27 17:50 ` Arnd Bergmann
2013-03-27 18:12 ` Will Deacon
2013-03-27 19:10 ` Rob Herring
2013-03-27 19:14 ` Arnd Bergmann
2013-03-27 14:55 ` Rob Herring
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=alpine.DEB.2.02.1303271610430.4430@kaball.uk.xensource.com \
--to=stefano.stabellini@eu.citrix.com \
--cc=Marc.Zyngier@arm.com \
--cc=arnd@arndb.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=nico@linaro.org \
--cc=will.deacon@arm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®