-
Notifications
You must be signed in to change notification settings - Fork 348
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Endless file generation when dumping special tables like RSDP, DSDT, etc. #285
Comments
It does sound like a problem, but why are you using instance > 1? |
I am not using instance > 1. I just use the following command line: The reason is, when use -n to dump a table by name, "ApDumpTableByName()" will treat every table as potentially having multiple instances. It loops through 0 to AP_MAX_ACPI_FILES to call the AcpiOsGetTableByName(). For normal tables, there's a detection logic for excessive instnace number. For special tables like DSDT, there's not, so redundent files are generated. |
Here's what I see on win: c:\temp>acpidump -b -n DSDT Directory of c:\temp 06/28/2017 08:44 AM .06/28/2017 08:44 AM .. 06/28/2017 08:44 AM 126,458 dsdt.dat 06/28/2017 08:42 AM 734,476 dump.txt I'll take a look at the code, but I'm not seeing any bad behavior. What version of acpidump are you using? here's the current version: c:\temp>acpidump -v Intel ACPI Component Architecture |
The issue is with efi porting. The issue file is "\source\os_specific\efi\osefitbl.c". Function OslGetTable(). |
Lv can have a look at this. |
Probably best if you open a bugzilla on this at And point out that the problem is against the EFI version. |
I will contact him tomorrow. |
DSDT could have 2 instances, one for 32-bit OS, the other for 64-bit OS. That's why we allow to dump DSDT with instances. But the support may not be fully tested. |
How many files are generated? |
Filed a bug and posted a fix here: |
Originally acpidump is developed to support 2 instances of DSDT/FACS but it's not tested and broken. On Linux we changed to support only 1 instance of DSDT/FACS when a bug was reported. But EFI support is not fixed. Actually we should support 2 instances, as FACS/XFACS do contain different content. I tried to improve both Linux and EFI support. |
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
yes, from the logic, maximum 256 files can be generated.
发自网易邮箱大师
On 06/30/2017 08:58, zetalog wrote:
How many files are generated? It sounds like 256?
Yes, EFI support contains a very old bug.
Originally acpidump is developed to support 2 instances of DSDT/FACS but it's not tested and broken. On Linux we changed to support only 1 instance of DSDT/FACS when a bug was reported. But EFI support is not fixed.
Actually we should support 2 instances, as FACS/XFACS do contain different content. I tried to improve both Linux and EFI support.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPICA commit 343fc31840d40c06001f3b170ee5bcdfd3c7f3e0 ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in osl_get_table() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI acpidump. Fixed by Lv Zheng. Link: acpica/acpica@343fc318 Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica/acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com>
ACPICA commit 343fc31840d40c06001f3b170ee5bcdfd3c7f3e0 ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in osl_get_table() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI acpidump. Fixed by Lv Zheng. Link: acpica/acpica@343fc318 Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica/acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com>
ACPICA commit 343fc31840d40c06001f3b170ee5bcdfd3c7f3e0 ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in osl_get_table() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI acpidump. Fixed by Lv Zheng. Link: acpica/acpica@343fc318 Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica/acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> 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>
Can we close this? |
Closing. |
ACPI spec allows to configure different 32-bit/64-bit table addresses for DSDT and FACS. And for FACS, it's meaningful to dump both of them as they are used to support different suspend protocols. While: 1. on Linux, only 1 instance is supported for DSDT/FACS; and 2. on EFI, the code in OslGetTable() is buggy with special table instances, causing endless file dump for such tables (reported by Shao Ming in link #2). This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng. Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1] Link: acpica/acpica#285 [#2] Reported-by: Shao Ming <smbest163@163.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
[Symptom]:
I ported acpidump to UEFI Shell environment. When dumping special tables like RSDP, RSDT, XSDT, DSDT, FACS, acpidump.efi will generate too many files until it reaches AP_MAX_ACPI_FILES = 256.
This issue doesn't happen with normal tables like BERT, HEST. And doens't happen when dump table by index.
[Root cause]:
These special tables are all singleton. But there's no necessary detection when dump them with instance number > 1.
The text was updated successfully, but these errors were encountered: