lkml.org 
[lkml]   [2013]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v3] [RFC] arm: use PSCI if available
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.

Will


\
 
 \ /
  Last update: 2013-03-27 15:21    [W:0.134 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site