Messages in this thread | | | Date | Mon, 05 Aug 2013 11:21:51 +0800 | From | Tang Chen <> | Subject | Re: [PATCH v2 RESEND 05/18] x86, ACPICA: Split acpi_boot_table_init() into two parts. |
| |
Hi Rafael,
On 08/02/2013 09:00 PM, Rafael J. Wysocki wrote: ...... >> This patch splits acpi_boot_table_init() into two steps: >> 1. Parse RSDT, which cannot be overrided, and initialize >> acpi_gbl_root_table_list. (step 1 + 2 above) >> 2. Install all ACPI tables into acpi_gbl_root_table_list. >> (step 3 + 4 above) >> >> In later patches, we will do step 1 + 2 earlier. > > Please note that Linux is not the only user of the code you're modifying, so > you need to make it possible to use the existing functions. > > In particular, acpi_tb_parse_root_table() can't be modified the way you did it, > because that would require all of the users of ACPICA to be modified.
OK, I understand it. Then how about acpi_tb_install_table() ?
acpi_tb_install_table() is also an ACPICA API. But can we split the acpi_initrd_table_override part out ? Like the following:
1. Initialize acpi_gbl_root_table_list earlier, and install all tables provided by firmware. 2. Find SRAT in initrd. If no overridden SRAT, get the SRAT in acpi_gbl_root_table_list directly. And mark hotpluggable memory. (This the job I want to do.) 3. DO acpi_initrd_table_override job.
Finally it will work like the current kernel. The only difference is: Before the patch-set, it try to do override first, and then install firmware tables. After the patch-set, it installs firmware tables, and then do the override.
Thanks.
| |