i386/97468: [acpi] ACPI on ASUS A7V hangs on shutdown -p (power
off)
Martin Birgmeier
martin at email.aon.at
Sun Nov 5 16:50:29 UTC 2006
The following reply was made to PR i386/97468; it has been noted by GNATS.
From: Martin Birgmeier <martin at email.aon.at>
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: i386/97468: [acpi] ACPI on ASUS A7V hangs on shutdown -p (power off)
Date: Sun, 5 Nov 2006 17:49:28 +0100 (CET)
O.k., this makes me unhappy enough to post a follow-up after much
fiddling with ACPI debugging flags, and not finding a clue...
Notes:
- The proposal by Cy Schubert does not work, as I've never set an alarm
in the bios. I checked it multiple times, though, just to make sure.
- Setting debug.acpi.max_threads=1 at the loader prompt does not help.
- I fiddled with lots of debug.acpi.layer and debug.acpi.level settings,
output for interesting combinations follows below. The method used
was to boot with empty flags, and then set/reset them for one second
via sysctl. I had to do this because some ACPI stuff is continuously
running, totally clobbering my screen.
Please respond by following up to this defect entry
(http://www.freebsd.org/cgi/query-pr.cgi?pr=97468), the email address
given is invalid.
Regards,
Martin
ACPI_HARDWARE/ACPI_LV_VERBOSITY3:
-- same as --
ACPI_ALL_COMPONENTS ACPI_ALL_DRVERS/ACPI_LV_VERBOSITY3:
=======================================================
This is the continuously running stuff. Debugging output was turned on/off
via sysctl. I located the loop and manually copied one sequence.
hwregs-0359 [000c] [41] AcpiGetRegister : ----Entry
hwregs-0590 [000c] [42] HwRegisterRead : ----Entry
hwregs-0885 [000c] [42] HwLowLevelRead : Read: 411 width 16 from 0 e400 (SystemIO)
hwregs-0680 [000c] [42] HwRegisterRead : ----Exit- AE_OK
hwregs-0399 [000c] [41] AcpiGetRegister : Read value 1 regiser 1
hwregs-0402 [000c] [41] AcpiGetRegister : ----Exit- AE_OK
hwregs-0432 [000c] [41] AcpiSetRegister : ----Entry 00000001
hwregs-0590 [000c] [42] HwRegisterRead : ----Entry
hwregs-0885 [000c] [42] HwLowLevelRead : Read: 411 width 16 from 0 e400 (SystemIO)
hwregs-0680 [000c] [42] HwRegisterRead : ----Exit- AE_OK
hwregs-0708 [000c] [42] HwRegisterWrite : ----Entry
hwregs-0966 [000c] [42] HwLowLevelWrite : Wrote: 10 width 16 to 0 e400 (SystemIO)
hwregs-0805 [000c] [42] HwRegisterWrite : ----Exit- AE_OK
hwregs-0559 [000c] [41] AcpiSetRegister : Set bits: 10 actual 0 register 1
hwregs-0560 [000c] [41] AcpiSetRegister : ----Exit- AE_OK
I'd be happy if someone could tell me why this stuff is continuously
running, and where it comes from. Interestingly, it's all just reads
and writes, with no higher level acpi functions in between.
ACPI_BUTTON ACPI_HARDWARE ACPI_POWER/ACPI_LV_FUNCTIONS:
=======================================================
Here I just enabled the above setting (without the sleep 1 and disabling),
then pressed the power button, waited until the screen stabilized, and
copied the last 24 lines. The first few lines match the previous case,
repeating forever until the "done", except for the missing ACPI_LV_IO
(LowLevel) functions.
hwregs-0590 [42] HwRegisterRead : ----Entry
hwregs-0680 [42] HwRegisterRead : ----Exit- AE_OK
hwregs-0402 [41] AcpiGetRegister : ----Exit- AE_OK
hwregs-0432 [41] AcpiSetRegister : ----Entry 00000001
hwregs-0590 [42] HwRegisterRead : ----Entry
hwregs-0680 [42] HwRegisterRead : ----Exit- AE_OK
hwregs-0708 [42] HwRegisterWrite : ----Entry
hwregs-0805 [42] HwRegisterWrite : ----Exit- AE_OK
hwregs-0650 [41] AcpiSetRegister : ----Exit- AE_OK
done
All buffers synced.
Uptime: 1m46s
POWERRES-0510 [43] acpi_pwr_wake_enable : ----Entry
POWERRES-0748 [44] acpi_pwr_find_consumer: ----Entry
POWERRES-0756 [44] acpi_pwr_find_consumer: ----Exit- 0
POWERRES-0246 [44] acpi_pwr_register_cons: ----Entry
POWERRES-0748 [45] acpi_pwr_find_consumer: ----Entry
POWERRES-0756 [45] acpi_pwr_find_consumer: ----Exit- 0
POWERRES-0266 [44] acpi_pwr_register_cons: ----Exit- AE_OK
POWERRES-0748 [44] acpi_pwr_find_consumer: ----Entry
POWERRES-0756 [44] acpi_pwr_find_consumer: ----Exit- 0xc56bd8e0
hwsleep-0243 [42] AcpiEnterSleepStatePre: ----Entry
hwregs-0222 [43] AcpiGetSleepTypeData : ----Entry
hwregs-0300 [43] AcpiGetSleepTypeData : ----Exit- AE_OK
ACPI_BUTTON ACPI_HARDWARE ACPI_POWER ACPI_NAMESPACE ACPI_PARSER/
ACPI_LV_FUNCTIONS:
================================================================
Again, I just enabled, and then pressed the power button. Now, as
described in the intro above, something continues to rush by
continuously, and I can barely make out a lot of namespace and
parser functions (and I believe no others - but cannot be sure).
So it seems that for whatever reason, the system enters some loop
after the AcpiEnterSleepStatePrep.
More information about the freebsd-i386
mailing list