Bug 105351

Summary: AcpiEnable failed
Product: ACPI Reporter: Meelis Roos (mroos)
Component: ACPICA-CoreAssignee: Lv Zheng (lv.zheng)
Status: CLOSED CODE_FIX    
Severity: normal CC: aaron.lu, lv.zheng
Priority: P1    
Hardware: i386   
OS: Linux   
Kernel Version: 4.3.0-rc3 Subsystem:
Regression: Yes Bisected commit-id:
Attachments: Full dmesg
kernel config
acpidump tarball
[PATCH] ACPICA: Tables: Fix FADT dependency regression
dmesg from good kernel

Description Meelis Roos 2015-10-02 04:34:25 UTC
Created attachment 189271 [details]
Full dmesg

In 4.3 merge, an ACPI patch was merged that breaks ACPI enabling on one of my PC-s. It's a Pentium III, i815 chipset, Packard Bell branded BIOS.

I bisected it to the following commit:

8ec3f459073e67e5c6d78507dec693064b3040a2 is the first bad commit
commit 8ec3f459073e67e5c6d78507dec693064b3040a2
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Tue Aug 25 10:29:01 2015 +0800

    ACPICA: Tables: Fix global table list issues by removing fixed table indexes
    
    ACPICA commit c0b38b4c3982c2336ee92a2a14716107248bd941
    
    The fixed table indexes leave holes in the global table list:
     1. One hole can be seen when there is only 1 FACS provided by the BIOS.
     2. Tow holes can be seen when it is a reduced hardware platform.
    The holes do not break OSPMs but have broken ACPI debugger "tables"
    command.
    
    Also the "fixed table indexes" mechanism may make the descriptors of the
    standard tables installed earlier than DSDT to be overwritten by the
    descriptors of the fixed tables. For example, FACP disappears from the
    global table list after DSDT is installed.
    
    This patch fixes all above issues by removing the "fixed table indexes"
    mechanism which is too complicated to be maintained in a regression safe
    manner. After removal, the table loader will determine the indexes of the
    fixed tables. Lv Zheng.
    
    Link: https://github.com/acpica/acpica/commit/c0b38b4c
    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    Signed-off-by: Bob Moore <robert.moore@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

:040000 040000 0c3bbd0eca80e79fcf6f265cfc98f38b51b3a807 46d34d3ce537aff081694b0ad511a5ae00771b86 M drivers
Comment 1 Meelis Roos 2015-10-02 04:34:52 UTC
Created attachment 189281 [details]
kernel config
Comment 2 Meelis Roos 2015-10-02 06:10:34 UTC
Created attachment 189291 [details]
acpidump tarball

tar.gz on acpidump -b from a working kernel
Comment 3 Lv Zheng 2015-10-08 02:13:29 UTC
The change is almost non-functional to the platforms that do not have 0 or 2 FACS tables while on your platform, there is only 1 FACS if the table loading log is correct:
[    0.000000] ACPI: RSDP 0x00000000000FBE70 000014 (v00 AMI   )
[    0.000000] ACPI: RSDT 0x000000001FFE0000 000028 (v01 AMIINT AMIINT10 00000011 MSFT 0100000C)
[    0.000000] ACPI: FACP 0x000000001FFE0030 000074 (v01 AMIINT AMIINT10 00000011 MSFT 0100000C)
[    0.000000] ACPI: DSDT 0x000000001FFE00B0 00317F (v01 INTEL  SOLANO   00001004 MSFT 0100000D)
[    0.000000] ACPI: FACS 0x000000001FFE8000 000040

Could you also upload a dmesg from a good kernel for me to compare to see if the table loading result here is correct?

And please also upload a full acpidump of this machine for reproducing the issue:
1. Run a good kernel
2. In the shell environment, type "sudo acpidump -c on > acpidump.txt".
You can find the acpidump in the kernel source tree: tools/power/acpi/tools/acpidump, you need to build the tool using following steps:
1. cd tools
2. make acpi

Thanks and best regards
-Lv
Comment 4 Lv Zheng 2015-10-08 05:48:57 UTC
Created attachment 189691 [details]
[PATCH] ACPICA: Tables: Fix FADT dependency regression

The regression is due to the coverity of the previous patch.
And thus finally gets triggered by a dirty hidden logic.
You can try this fix patch.

Thanks and best regards
-Lv
Comment 5 Meelis Roos 2015-10-08 07:49:19 UTC
Created attachment 189721 [details]
dmesg from good kernel
Comment 6 Meelis Roos 2015-10-08 08:14:54 UTC
1. I uploaded good dmesg.

2. It seems this acpidump is different than the one in acpica-tools. Compiled the one that came with linux, it has -c option but -c on did not give anything else than before.

3. Compiling current git with your patch, will report.
Comment 7 Meelis Roos 2015-10-08 11:53:40 UTC
4.3.0-rc4-00061-gc6fa8e6 plus your patch works fine - thank you!
Comment 8 Lv Zheng 2015-10-09 01:27:12 UTC
OK.
Mark this as fixed and push the patch to the ACPICA upstream.
Thanks for the report.

Best regards
-Lv
Comment 9 Lv Zheng 2015-10-22 02:17:21 UTC
Patch upstreamed to the mailine.
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=62fcce9
Closing this bug...
Thanks for the report and best regards.