Re: Linux 2.4.25-rc4

Willy Tarreau
2004-02-22T08:48:15Z

Hi Pavel,

On Fri, Feb 20, 2004 at 11:48:36PM +0100, Pavel Machek wrote:
> >
> > Your fix looks ok. I dont think calling acpi_system_save_state(S5) can
> > cause any breakage. Len?
>
> I bet it will create "machine will reboot instead of poweroff" on some
> strange machine.... Perhaps it fixes more machines than it breaks, but
> it will probably break some.

This is interesting. Do you have an idea about what could break exactly ?
In my case, I have noticed two things :
- if I disable local APIC, the standard code works
- if I enable local APIC, I need the patch above.

So perhaps it would be enough to disable local APIC instead of calling this
function ?

BTW, I have retested on the Supermicro server which didn't want to stop
previously. It's a P4 HT. Interestingly, with the new code, it displays :
Power Down
Trying to free free IRQ 23

IRQ 23 is assigned to eth0 (e1000). If I rmmod e1000 before, then it stops
correctly. And if I boot it with 'nosmp', it stops correcly both with new
and older code.

So I suspect that sending PM events is not exactly SMP safe, and that this
system cannot power off in SMP for an unknown reason. Perhaps as with APM,
some parts of the code need to be executed by CPU0 only ? Or perhaps when
I booted with 'nosmp', APIC was disabled ? (I didn't notice particularly).

I can do tests on my notebook, but I'm mainly lacking ideas now. I will
try to disable APIC only, just in case. And if it doesn't work on the
P4 HT, I can try to stop every CPU>0. If we don't find an universal solution,
it might indicate that we need another boot option to adapt to different
hardware :-(

Regards,
Willy