Linus Torvalds wrote:Boot CPU, and AFAIK suspend is the only place which does it.
On Sat, 22 Sep 2007, Thomas Gleixner wrote:My final enlightment was, when I removed the ACPI processor module,
which controls the lower idle C-states, right before resume; this
worked fine all the time even without all the workaround hacks.
I really hope that this two patches finally set an end to the "jinxed
VAIO heisenbug series", which started when we removed the periodic
tick with the clockevents/dyntick patches.
Ok, so the patches look fine, but I somehow have this slight feeling that you gave up a bit too soon on the "*why* does this happen?" question.
On a closely related note: I just now submitted a patch to fix SMP-poweroff,
by having it do disable_nonboot_cpus before doing poweroff.
Which has led me to thinking..
..are similar precautions perhaps necessary for *all* ACPI BIOS calls?
Because one never knows what the other CPUs are doing at the same time,
and what the side effects may be on the ACPI BIOS functions.
And also, I wonder if at a minimum we should be guaranteeing ACPI BIOS calls
only ever happen from CPU#0 (or the "boot" CPU)? Or do we do that already?