Hardware Environment: Asus A7S333 motherboard with SiS735 chipset
Problem Description: System won't power off with ACPI. No error messages, but
doesn't power off either.
Created attachment 2713 [details]
Created attachment 2714 [details]
Created attachment 2715 [details]
Created attachment 2716 [details]
lspci -vv output
Created attachment 2717 [details]
Chipset is actually SiS745, not SiS735.
I got the same problem with a Sony Z1 and someone told me to add nolapic in
lilo/grub and it worked.
I have the same motherboard at home.
I _believe_ that power worked properly under Mandrake 10.0, but under Fedora
Core 2 it's hosed. I've set acpi=off, but I'll try the noapic nolapic options
Nicolas Brouard's suggestion works fine on this Mobo.
Exact working config (ripped from /etc/grub.conf)
title Fedora Core (2.6.8-1.520)
kernel /vmlinuz-2.6.8-1.520 ro root=LABEL=/ rhgb quiet idebus=66 noacpi
noapic nolapic acpi=off
Kernel comes from http://people.redhat.com/~arjanv/2.6/
I think this bug can be closed.
Nic Doye, you turned ACPI off in your "fix". The bug I reported is specifically
that ACPI doesn't turn power off. I'm not looking for workarounds, I just
reported a bug I'd like fixed at some point. "nolapic" isn't it either.
Please accept my apologies for being a complete idiot.
I can't recall how Mandrake 10.0 "worked" on this motherboard: whether ACPI was
disabled or there's a patch in their kernel. I'd suggest a cursory glance at
their kernel source.
Reply to bugs in haste (without looking at the source/docs), repent and look
stupid forever. Please accept my apologies once more.
I think this bug was introdoced with the fix of the bug 1141, i tried to comment
out the line
/* Some SMP machines only can poweroff in boot CPU */
in /drivers/acpi/sleep/poweroff.c and now my a7s333 shuts down properly.
what about executing that line only if the system is tryly an SMP?
Marco, does your system run SMP kernel on UP box?
set_cpus_allowed() should be NOP in non-SMP kernel...
Could you please attach your .config?
Created attachment 3865 [details]
disable cpu setting in non-SMP case
Could you please check if following patch does the job?
Anssi, Nic, Marco,
Please confirm that you are running a kernel with CONFIG_SMP=y,
and that the problem goes away when CONFIG_SMP=n.
Looking at the CONFIG_SMP kernel:
[root@d600 root]# gdb /boot/vmlinux-26-latest-dev /proc/kcore
(gdb) x/20ai acpi_power_off
0xc0242304 <acpi_power_off>: push $0xc041ca64
0xc0242309 <acpi_power_off+5>: push $0xc0449470
0xc024230e <acpi_power_off+10>: call 0xc0121eb0 <printk>
0xc0242313 <acpi_power_off+15>: pop %eax
0xc0242314 <acpi_power_off+16>: pop %edx
0xc0242315 <acpi_power_off+17>: mov $0xfffff000,%eax
0xc024231a <acpi_power_off+22>: push $0x1
0xc024231c <acpi_power_off+24>: and %esp,%eax
0xc024231e <acpi_power_off+26>: pushl (%eax)
0xc0242320 <acpi_power_off+28>: call 0xc011ec90 <set_cpus_allowed>
0xc0242325 <acpi_power_off+33>: push $0x5
0xc0242327 <acpi_power_off+35>: call 0xc022f86b <acpi_enter_sleep_state_prep>
0xc024232c <acpi_power_off+40>: cli
0xc024232d <acpi_power_off+41>: push $0x5
0xc024232f <acpi_power_off+43>: call 0xc022f9fb <acpi_enter_sleep_state>
0xc0242334 <acpi_power_off+48>: add $0x10,%esp
0xc0242337 <acpi_power_off+51>: ret
Looking at the CONFIG_SMP=n kernel:
(gdb) x/20ai acpi_power_off
0xc022f8f8 <acpi_power_off>: push $0xc03f9324
0xc022f8fd <acpi_power_off+5>: push $0xc042546c
0xc022f902 <acpi_power_off+10>: call 0xc011d6e0 <printk>
0xc022f907 <acpi_power_off+15>: pop %ecx
0xc022f908 <acpi_power_off+16>: pop %eax
0xc022f909 <acpi_power_off+17>: push $0x5
0xc022f90b <acpi_power_off+19>: call 0xc021cc8b <acpi_enter_sleep_state_prep>
0xc022f910 <acpi_power_off+24>: cli
0xc022f911 <acpi_power_off+25>: push $0x5
0xc022f913 <acpi_power_off+27>: call 0xc021ce1b <acpi_enter_sleep_state>
0xc022f918 <acpi_power_off+32>: pop %eax
0xc022f919 <acpi_power_off+33>: pop %edx
0xc022f91a <acpi_power_off+34>: ret
Shows that the inline correctly removes the call to set_cpus_allowed()
in the CONFIG_SMP=n case -- so putting an #ifdef around
this call should have no effect, and commenting out this
line on a CONFIG_SMP=n kernel should also have no effect.
I unfortunately don't have the motherboard running any more. I reported this six
months ago today after all... But I'm almost certain I didn't run SMP kernels on
the system back then. I did have local APIC and IO-APIC enabled, though.
Sorry, it was my fault.
after some more experiments i found that it doesn't depend on that.
Now i'm trying to recreate the exact kernel configuration that made the acpi
thanks for the quick reqply.
Please confirm that a 2.6.9 (or newer) ACPI kernel still fails to poweroff on
the Asus A7S333. I see from comment #1 that this board has an IOAPIC --
so "nolapic" would be a bogus workaround, but for debugging, please make sure
that it has no effect on the failure.
now i have a 2.6.7, i'm downloading the 2.6.9, i will try more accurately with
it. One thing i noticed today is that it doesn't shut down properly when the
sleep states support is enabled in kernel config and shuts down properly if
sleep states support is disabled. i don't know if it will help
with 2.6.9 everithing seems work, either with the sleep states enabled or not.
I think it is... fixed?
probably a dupe of 2109
open a new one if you see problems going forward.