[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3] [RFC] arm: use PSCI if available
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. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |