[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 00/19] pc: acpi: move memory hotplug out of DSDT
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH 00/19] pc: acpi: move memory hotplug out of DSDT/SSDT into custom table |
Date: |
Sat, 24 Oct 2015 20:39:12 +0300 |
On Fri, Oct 23, 2015 at 04:57:03PM +0200, Igor Mammedov wrote:
> As part of moving to dynamic DSDT and dropping
> ASL templates althogether
If this is indeed what we are trying to do, I would rather have it
factored differently:
1. rewrite ASL parts in C, no code changes
(existing tests should pass!)
2. rework to split it up gradually
Makes it much easier to be sure there aren't bugs
introduced in this rework.
> this series moves out
> ASL part of memory hotplug from DSDT into a custom
> ACPI table. Beside of reducing ASL codebase (DSDT)
> series tries to generalize and consolidate ACPI
> part of memory hotplug code so it could be easier
> to reuse it with outher targets (I plan to do it
> for ARM later).
>
> New table uses 64-bit integers for simplification
> of code that are available only since ACPI 2.0.
> To avoid breaking Windows XP based (rev1) guests
> that table is loaded only if guest supports 2.0
> revision Using LoadTable() ASL method.
> As a side effect of code consolidation/simplification
> series reduces ACPI tables size on:
> - 879 bytes without memory hotplug
> - 1216 bytes with 256 hotpluggable memory slots
>
> More detailed breakdown on max table sizes in default
> and hotplug enabled cases:
> new+HP new old old+HP
> MHPT 50808 - - -
> SSDT 2425 2368 2486 53688
> DSDT 2267 2267 3028 3028
>
> Tested with following guests:
> - RHEL7.2,
> - Windows XPsp3, Windows Server 2003EE,
> - Windows Server 2008DC, Windows Server 2012R2DC
>
> Since memory hotpulg doesn't work on XP based guests,
> I've just tested that it boots just fine with/without
> memory hotplug enabled on QEMU side.
> The rest of the guests work as expected.
>
> git tree for testing:
> https://github.com/imammedo/qemu/commits/mhpt_table_v1
>
> Igor Mammedov (18):
> acpi: aml: add aml_lgreater_equal() and aml_load_table()
> acpi: aml: add aml_create_qword_field()
> acpi: aml: add aml_decrement() and aml_subtract()
> acpi: aml: add aml_call0() helper
> pc: acpi: move SSDT part of memhp into a custom table
> pc: acpi: memhp: move MHPD._STA method into MHPT table
> pc: acpi: memhp: move MHPD.MLCK mutex into NHPT table
> pc: acpi: memhp: move MHPD.MSCN method into MHPT table
> pc: acpi: make memory device's _UID integer
> pc: acpi: memhp: move MHPD.MRST method into MHPT table
> pc: acpi: memhp: move MHPD.MPXM method into MHPT table
> pc: acpi: memhp: move MHPD.MOST method into MHPT table
> pc: acpi: memhp: move MHPD.MEJ0 method into MHPT table
> pc: acpi: bump DSDT revision compliance to v2
> pc: acpi: memhp: move MHPD.MCRS method into MHPT table
> pc: acpi: memhp: move MHPD Device along with _UID/_HID into MHPT table
> pc: acpi: memhp: remove acpi-dsdt-mem-hotplug.dsl and move \_GPE._E03
> into SSDT
> pc: acpi: memhp: cleanup MEMORY_HOTPLUG_IO_REGION usage
>
> Xiao Guangrong (1):
> acpi: add aml_mutex(), aml_acquire(), aml_release()
>
> hw/acpi/Makefile.objs | 2 +-
> hw/acpi/aml-build.c | 115 ++++++++++++++-
> hw/acpi/memory_hotplug_acpi_table.c | 286
> ++++++++++++++++++++++++++++++++++++
> hw/i386/acpi-build.c | 140 ++++--------------
> hw/i386/acpi-dsdt-mem-hotplug.dsl | 171 ---------------------
> hw/i386/acpi-dsdt.dsl | 7 +-
> hw/i386/q35-acpi-dsdt.dsl | 7 +-
> include/hw/acpi/aml-build.h | 9 ++
> include/hw/acpi/memory_hotplug.h | 8 +
> include/hw/acpi/pc-hotplug.h | 24 ---
> 10 files changed, 443 insertions(+), 326 deletions(-)
> create mode 100644 hw/acpi/memory_hotplug_acpi_table.c
> delete mode 100644 hw/i386/acpi-dsdt-mem-hotplug.dsl
>
> --
> 1.8.3.1
- [Qemu-devel] [PATCH 12/19] pc: acpi: memhp: move MHPD.MPXM method into MHPT table, (continued)
- [Qemu-devel] [PATCH 12/19] pc: acpi: memhp: move MHPD.MPXM method into MHPT table, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 13/19] pc: acpi: memhp: move MHPD.MOST method into MHPT table, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 16/19] pc: acpi: memhp: move MHPD.MCRS method into MHPT table, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 15/19] pc: acpi: bump DSDT revision compliance to v2, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 18/19] pc: acpi: memhp: remove acpi-dsdt-mem-hotplug.dsl and move \_GPE._E03 into SSDT, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 03/19] acpi: aml: add aml_create_qword_field(), Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 14/19] pc: acpi: memhp: move MHPD.MEJ0 method into MHPT table, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 17/19] pc: acpi: memhp: move MHPD Device along with _UID/_HID into MHPT table, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 19/19] pc: acpi: memhp: cleanup MEMORY_HOTPLUG_IO_REGION usage, Igor Mammedov, 2015/10/23
- Re: [Qemu-devel] [PATCH 00/19] pc: acpi: move memory hotplug out of DSDT/SSDT into custom table, Laszlo Ersek, 2015/10/23
- Re: [Qemu-devel] [PATCH 00/19] pc: acpi: move memory hotplug out of DSDT/SSDT into custom table,
Michael S. Tsirkin <=