Re: regression in 2.6.23-rc8 - power off failed

From: Rafael J. Wysocki
Date: Mon Oct 01 2007 - 16:16:20 EST


On Monday, 1 October 2007 19:55, Alexey Starikovskiy wrote:
> Rafael J. Wysocki wrote:
> > On Saturday, 29 September 2007 22:47, Bill Davidsen wrote:
> >> Alexey Starikovskiy wrote:
> >>
> >>> -static void
> >>> -acpi_power_off (void)
> >>> -{
> >>> - printk("%s called\n",__FUNCTION__);
> >>> - /* Some SMP machines only can poweroff in boot CPU */
> >>> - set_cpus_allowed(current, cpumask_of_cpu(0));
> >>> ACPI in kernel 2.6.12 did disable non-boot cpus too in powe_off.
> >>> Later only comment was left for some reason...
> >>>
> >> Am I midreading that code, or does it really assume that the boot cpu is
> >> always zero? Or just that zero will be able to do the power off?
> >>
> >> In any case I have had an SMP machine which did not have a CPU zero, and
> >> it was discussed here, I believe. Wonder what happens if you set
> >> affinity to a CPU you don't have...
> >
> > Good question, but it also caused other problems to appear, IIRC.
> >
> > IMHO, it's better to call disable_nonboot_cpus() in an appropriate place
> > anyway.
> >
> > Greetings,
> > Rafael
> Ok, here is commit which removed the code in question from acpi_power_off:
>
> commit 6660316cb7a1a2c59a73a52870490c0f782f45c1
> Author: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
> Date: Tue Jul 26 12:16:00 2005 -0600
>
> [PATCH] acpi_power_off: Don't switch to the boot cpu
>
> machine_power_off on i386 and x86_64 now switch to the
> boot cpu out of paranoia and because the MP Specification indicates it
> is a good idea on reboot, so for those architectures it is a noop.
> I can't see anything in the acpi spec that requires you to be on
> the boot cpu to power off the system, so this should not be an issue
> for ia64. In addition ia64 has the altix a massive multi-node
> system where switching to the boot cpu sounds insane as we may
> hot removed the boot cpu.
>
> Signed-off-by: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
> Signed-off-by: Linus Torvalds <torvalds@xxxxxxxx>

I see. :-)

Anyway, I think we should atually go UP before executing sysdev_shutdown().

How we are going to do that is another matter.

Greetings,
Rafael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/