From: Igor Mammedov <imammedo@redhat.com>
To: Samuel Ortiz <sameo@linux.intel.com>
Cc: qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>,
Stefano Stabellini <sstabellini@kernel.org>,
Eduardo Habkost <ehabkost@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Shannon Zhao <shannon.zhaosl@gmail.com>,
qemu-arm@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
Anthony Perard <anthony.perard@citrix.com>,
xen-devel@lists.xenproject.org,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition
Date: Fri, 16 Nov 2018 17:29:19 +0100 [thread overview]
Message-ID: <20181116172919.43f3e27d@redhat.com> (raw)
In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com>
On Mon, 5 Nov 2018 02:40:23 +0100
Samuel Ortiz <sameo@linux.intel.com> wrote:
> This patch set provides an ACPI code reorganization in preparation for
> adding a shared hardware-reduced ACPI API to QEMU.
>
> The changes are coming from the NEMU [1] project where we're defining
> a new x86 machine type: i386/virt. This is an EFI only, ACPI
> hardware-reduced platform that is built on top of a generic
> hardware-reduced ACPI API [2]. This API was initially based off the
> generic parts of the arm/virt-acpi-build.c implementation, and the goal
> is for both i386/virt and arm/virt to duplicate as little code as
> possible by using this new, shared API.
>
> As a preliminary for adding this hardware-reduced ACPI API to QEMU, we did
> some ACPI code reorganization with the following goals:
>
> * Share as much as possible of the current ACPI build APIs between
> legacy and hardware-reduced ACPI.
> * Share the ACPI build code across machine types and architectures and
> remove the typical PC machine type dependency.
>
> The patches are also available in their own git branch [3].
I think, I'm done with reviewing this patchset, to sum up
thanks for trying generalize acpi parts. It is implemented not
exactly generic way and patches aren't split perfectly but
we can work on it.
General suggestions for this series:
1. Preferably don't do multiple changes within a patch
neither post huge patches (unless it's pure code movement).
(it's easy to squash patches later it necessary)
2. Start small, pick a table generalize it and send as
one small patchset. Tables are often independent
and it's much easier on both author/reviewer to agree upon
changes and rewrite it if necessary.
3. when you think about refactoring acpi into a generic API
think about it as routines that go into a separate library
(pure acpi spec code) and qemu/acpi glue routines and
divide them correspondingly.
> [1] https://github.com/intel/nemu
> [2] https://github.com/intel/nemu/blob/topic/virt-x86/hw/acpi/reduced.c
> [3] https://github.com/intel/nemu/tree/topic/upstream/acpi
>
> v1 -> v2:
> * Drop the hardware-reduced implementation for now. Our next patch
> * set
> will add hardware-reduced and convert arm/virt to it.
> * Implement the ACPI build methods as a QOM Interface Class and
> * convert
> the PC machine type to it.
> * acpi_conf_pc_init() uses a PCMachineState pointer and not a
> MachineState one as its argument.
>
> v2 -> v3:
> * Cc all relevant maintainers, no functional changes.
>
> v3 -> v4:
> * Renamed all AcpiConfiguration pointers from conf to acpi_conf.
> * Removed the ACPI_BUILD_ALIGN_SIZE export.
> * Temporarily updated the arm virt build_rsdp() prototype for
> bisectability purposes.
> * Removed unneeded pci headers from acpi-build.c.
> * Refactor the acpi PCI host getter so that it truly is architecture
> agnostic, by carrying the PCI host pointer through the
> AcpiConfiguration structure.
> * Splitted the PCI host AML builder API export patch from the PCI
> host and holes getter one.
> * Reduced the build_srat() export scope to hw/i386 instead of the
> broader hw/acpi. SRAT builders are truly architecture specific
> and can hardly be generalized.
> * Completed the ACPI builder documentation.
>
> v4 -> v5:
> * Reorganize the ACPI RSDP export and XSDT implementation into 3
> patches.
> * Fix the hw/i386/acpi header inclusions.
>
> Samuel Ortiz (16):
> hw: i386: Decouple the ACPI build from the PC machine type
> hw: acpi: Export ACPI build alignment API
> hw: acpi: The RSDP build API can return void
> hw: acpi: Export the RSDP build API
> hw: acpi: Implement XSDT support for RSDP
> hw: acpi: Factorize the RSDP build API implementation
> hw: i386: Move PCI host definitions to pci_host.h
> hw: acpi: Export the PCI host and holes getters
> hw: acpi: Do not create hotplug method when handler is not defined
> hw: i386: Make the hotpluggable memory size property more generic
> hw: i386: Export the i386 ACPI SRAT build method
> hw: i386: Export the MADT build method
> hw: acpi: Define ACPI tables builder interface
> hw: i386: Implement the ACPI builder interface for PC
> hw: pci-host: piix: Return PCI host pointer instead of PCI bus
> hw: i386: Set ACPI configuration PCI host pointer
>
> Sebastien Boeuf (2):
> hw: acpi: Export the PCI hotplug API
> hw: acpi: Retrieve the PCI bus from AcpiPciHpState
>
> Yang Zhong (6):
> hw: acpi: Generalize AML build routines
> hw: acpi: Factorize _OSC AML across architectures
> hw: acpi: Export and generalize the PCI host AML API
> hw: acpi: Export the MCFG getter
> hw: acpi: Fix memory hotplug AML generation error
> hw: i386: Refactor PCI host getter
>
> hw/i386/acpi-build.h | 9 +-
> include/hw/acpi/acpi-defs.h | 14 +
> include/hw/acpi/acpi.h | 44 ++
> include/hw/acpi/aml-build.h | 47 ++
> include/hw/acpi/builder.h | 100 +++
> include/hw/i386/acpi.h | 28 +
> include/hw/i386/pc.h | 49 +-
> include/hw/mem/memory-device.h | 2 +
> include/hw/pci/pci_host.h | 6 +
> hw/acpi/aml-build.c | 981 +++++++++++++++++++++++++++++
> hw/acpi/builder.c | 97 +++
> hw/acpi/cpu.c | 8 +-
> hw/acpi/cpu_hotplug.c | 9 +-
> hw/acpi/memory_hotplug.c | 21 +-
> hw/acpi/pcihp.c | 10 +-
> hw/arm/virt-acpi-build.c | 93 +--
> hw/i386/acpi-build.c | 1072 +++-----------------------------
> hw/i386/pc.c | 198 +++---
> hw/i386/pc_piix.c | 36 +-
> hw/i386/pc_q35.c | 22 +-
> hw/i386/xen/xen-hvm.c | 19 +-
> hw/pci-host/piix.c | 32 +-
> stubs/pci-host-piix.c | 6 -
> hw/acpi/Makefile.objs | 1 +
> stubs/Makefile.objs | 1 -
> 25 files changed, 1644 insertions(+), 1261 deletions(-)
> create mode 100644 include/hw/acpi/builder.h
> create mode 100644 include/hw/i386/acpi.h
> create mode 100644 hw/acpi/builder.c
> delete mode 100644 stubs/pci-host-piix.c
>
next prev parent reply other threads:[~2018-11-16 16:29 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-05 1:40 [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition Samuel Ortiz
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 01/24] hw: i386: Decouple the ACPI build from the PC machine type Samuel Ortiz
2018-11-09 14:23 ` Igor Mammedov
2018-11-21 14:42 ` Samuel Ortiz
2018-11-22 15:13 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 02/24] hw: acpi: Export ACPI build alignment API Samuel Ortiz
2018-11-09 14:27 ` Igor Mammedov
2018-11-21 14:42 ` Samuel Ortiz
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 03/24] hw: acpi: The RSDP build API can return void Samuel Ortiz
2018-11-06 10:23 ` Paolo Bonzini
2018-11-06 10:43 ` Samuel Ortiz
2018-11-08 14:24 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 04/24] hw: acpi: Export the RSDP build API Samuel Ortiz
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 05/24] hw: acpi: Implement XSDT support for RSDP Samuel Ortiz
2018-11-08 14:16 ` Igor Mammedov
2018-11-08 14:36 ` Samuel Ortiz
2018-11-08 14:53 ` Igor Mammedov
2018-11-19 18:27 ` Michael S. Tsirkin
2018-11-20 8:23 ` Igor Mammedov
2018-11-21 14:42 ` Samuel Ortiz
2018-11-22 16:26 ` Igor Mammedov
2018-11-23 9:36 ` Samuel Ortiz
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 06/24] hw: acpi: Factorize the RSDP build API implementation Samuel Ortiz
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 07/24] hw: acpi: Generalize AML build routines Samuel Ortiz
2018-11-09 13:37 ` Igor Mammedov
2018-11-21 15:00 ` Samuel Ortiz
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 08/24] hw: acpi: Factorize _OSC AML across architectures Samuel Ortiz
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 09/24] hw: i386: Move PCI host definitions to pci_host.h Samuel Ortiz
2018-11-09 14:30 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 10/24] hw: acpi: Export the PCI host and holes getters Samuel Ortiz
2018-11-13 15:59 ` Igor Mammedov
2018-11-21 15:43 ` Samuel Ortiz
2018-11-23 10:55 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 11/24] hw: acpi: Export and generalize the PCI host AML API Samuel Ortiz
2018-11-14 10:55 ` Igor Mammedov
2018-11-21 23:12 ` Samuel Ortiz
2018-11-23 11:04 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 12/24] hw: acpi: Export the MCFG getter Samuel Ortiz
2018-11-15 12:36 ` Igor Mammedov
2018-11-21 23:21 ` Samuel Ortiz
2018-11-27 13:54 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 13/24] hw: acpi: Do not create hotplug method when handler is not defined Samuel Ortiz
2018-11-09 9:12 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 14/24] hw: i386: Make the hotpluggable memory size property more generic Samuel Ortiz
2018-11-15 12:49 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 15/24] hw: i386: Export the i386 ACPI SRAT build method Samuel Ortiz
2018-11-15 13:28 ` Igor Mammedov
2018-11-21 23:27 ` Samuel Ortiz
2018-11-26 15:47 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 16/24] hw: acpi: Fix memory hotplug AML generation error Samuel Ortiz
2018-11-08 14:23 ` Igor Mammedov
2019-01-14 18:35 ` Michael S. Tsirkin
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 17/24] hw: acpi: Export the PCI hotplug API Samuel Ortiz
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 18/24] hw: i386: Export the MADT build method Samuel Ortiz
2018-11-16 9:27 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 19/24] hw: acpi: Retrieve the PCI bus from AcpiPciHpState Samuel Ortiz
2018-11-16 9:39 ` Igor Mammedov
2018-11-16 19:42 ` Boeuf, Sebastien
2018-11-19 15:37 ` Igor Mammedov
2018-11-19 18:02 ` Boeuf, Sebastien
2018-11-20 8:26 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 20/24] hw: acpi: Define ACPI tables builder interface Samuel Ortiz
2018-11-16 16:02 ` Igor Mammedov
2018-11-21 23:57 ` Samuel Ortiz
2018-11-27 14:08 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 21/24] hw: i386: Implement the ACPI builder interface for PC Samuel Ortiz
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 22/24] hw: pci-host: piix: Return PCI host pointer instead of PCI bus Samuel Ortiz
2018-11-16 11:09 ` Igor Mammedov
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 23/24] hw: i386: Set ACPI configuration PCI host pointer Samuel Ortiz
2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 24/24] hw: i386: Refactor PCI host getter Samuel Ortiz
2018-11-16 16:29 ` Igor Mammedov [this message]
2018-11-16 16:37 ` [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition Paolo Bonzini
2018-11-19 15:31 ` Igor Mammedov
2018-11-19 17:14 ` Paolo Bonzini
2018-11-19 18:14 ` Michael S. Tsirkin
2018-11-20 21:35 ` Paolo Bonzini
2018-11-20 12:57 ` Igor Mammedov
2018-11-20 21:36 ` Paolo Bonzini
2018-11-21 12:35 ` Michael S. Tsirkin
2018-11-21 13:50 ` Samuel Ortiz
2018-11-21 13:57 ` Michael S. Tsirkin
2018-11-21 14:15 ` Igor Mammedov
2018-11-21 14:38 ` Samuel Ortiz
2018-11-22 10:39 ` Igor Mammedov
2018-11-22 0:17 ` Samuel Ortiz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181116172919.43f3e27d@redhat.com \
--to=imammedo@redhat.com \
--cc=anthony.perard@citrix.com \
--cc=ehabkost@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=sameo@linux.intel.com \
--cc=shannon.zhaosl@gmail.com \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).