From: Samuel Ortiz <sameo@linux.intel.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Stefano Stabellini <sstabellini@kernel.org>,
Eduardo Habkost <ehabkost@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
qemu-devel@nongnu.org, Shannon Zhao <shannon.zhaosl@gmail.com>,
qemu-arm@nongnu.org, xen-devel@lists.xenproject.org,
Anthony Perard <anthony.perard@citrix.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH v5 01/24] hw: i386: Decouple the ACPI build from the PC machine type
Date: Wed, 21 Nov 2018 15:42:37 +0100 [thread overview]
Message-ID: <20181121144237.GF4426@caravaggio> (raw)
In-Reply-To: <20181109152316.43b79217@redhat.com>
Hi Igor,
On Fri, Nov 09, 2018 at 03:23:16PM +0100, Igor Mammedov wrote:
> On Mon, 5 Nov 2018 02:40:24 +0100
> Samuel Ortiz <sameo@linux.intel.com> wrote:
>
> > ACPI tables are platform and machine type and even architecture
> > agnostic, and as such we want to provide an internal ACPI API that
> > only depends on platform agnostic information.
> >
> > For the x86 architecture, in order to build ACPI tables independently
> > from the PC or Q35 machine types, we are moving a few MachineState
> > structure fields into a machine type agnostic structure called
> > AcpiConfiguration. The structure fields we move are:
>
> It's not obvious why new structure is needed, especially at
> the beginning of series. We probably should place this patch
> much later in the series (if we need it at all) and try
> generalize a much as possible without using it.
Patches order set aside, this new structure is needed to make the
existing API not completely bound to the pc machine type anymore and
"Decouple the ACPI build from the PC machine type".
It was either creating a structure to build ACPI tables in a machine
type independent fashion, or pass custom structures (or potentially long
list of arguments) to the existing APIs. See below.
> And try to come up with an API that doesn't need centralized collection
> of data somehow related to ACPI (most of the fields here are not generic
> and applicable to a specific board/target).
>
> For generic API, I'd prefer a separate building blocks
> like build_fadt()/... that take as an input only parameters
> necessary to compose a table/aml part with occasional board
> interface hooks instead of all encompassing AcpiConfiguration
> and board specific 'acpi_build' that would use them when/if needed.
Let's take build_madt as an example. With my patch we define:
void build_madt(GArray *table_data, BIOSLinker *linker,
MachineState *ms, AcpiConfiguration *conf);
And you're suggesting we'd define:
void build_madt(GArray *table_data, BIOSLinker *linker,
MachineState *ms, HotplugHandler *acpi_dev,
bool apic_xrupt_override);
instead. Is that correct?
Pros for the latter is the fact that, as you said, we would not need to
define a centralized structure holding all possibly needed ACPI related
fields.
Pros for the former is about defining a pointer to all needed ACPI
fields once and for all and hiding the details of the API in the AML
building implementation.
> We probably should split series into several smaller
> (if possible independent) ones, so people won't be scared of
> its sheer size and run away from reviewing it.
I will try to split it in smaller chunks if that helps.
Cheers,
Samuel.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2018-11-21 14:43 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-05 1:40 [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition Samuel Ortiz
2018-11-05 1:40 ` [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 [this message]
2018-11-22 15:13 ` [Qemu-devel] " Igor Mammedov
2018-11-05 1:40 ` [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 ` [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 ` [Qemu-devel] " Igor Mammedov
2018-11-05 1:40 ` [PATCH v5 04/24] hw: acpi: Export the RSDP build API Samuel Ortiz
2018-11-05 1:40 ` [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 ` [Qemu-devel] " Igor Mammedov
2018-11-19 18:27 ` Michael S. Tsirkin
2018-11-20 8:23 ` Igor Mammedov
2018-11-21 14:42 ` [Qemu-devel] " Samuel Ortiz
2018-11-22 16:26 ` Igor Mammedov
2018-11-23 9:36 ` Samuel Ortiz
2018-11-05 1:40 ` [PATCH v5 06/24] hw: acpi: Factorize the RSDP build API implementation Samuel Ortiz
2018-11-05 1:40 ` [PATCH v5 07/24] hw: acpi: Generalize AML build routines Samuel Ortiz
2018-11-09 13:37 ` Igor Mammedov
[not found] ` <20181109143733.76b93da5@redhat.com>
2018-11-21 15:00 ` [Qemu-devel] " Samuel Ortiz
2018-11-05 1:40 ` [PATCH v5 08/24] hw: acpi: Factorize _OSC AML across architectures Samuel Ortiz
2018-11-05 1:40 ` [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 ` [PATCH v5 10/24] hw: acpi: Export the PCI host and holes getters Samuel Ortiz
2018-11-13 15:59 ` [Qemu-devel] " Igor Mammedov
2018-11-21 15:43 ` Samuel Ortiz
2018-11-23 10:55 ` Igor Mammedov
2018-11-05 1:40 ` [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 ` [Qemu-devel] " Samuel Ortiz
2018-11-23 11:04 ` Igor Mammedov
2018-11-05 1:40 ` [PATCH v5 12/24] hw: acpi: Export the MCFG getter Samuel Ortiz
2018-11-15 12:36 ` Igor Mammedov
2018-11-21 23:21 ` [Qemu-devel] " Samuel Ortiz
2018-11-27 13:54 ` Igor Mammedov
2018-11-05 1:40 ` [PATCH v5 13/24] hw: acpi: Do not create hotplug method when handler is not defined Samuel Ortiz
2018-11-09 9:12 ` [Qemu-devel] " Igor Mammedov
2018-11-05 1:40 ` [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 ` [PATCH v5 15/24] hw: i386: Export the i386 ACPI SRAT build method Samuel Ortiz
2018-11-15 13:28 ` [Qemu-devel] " Igor Mammedov
2018-11-21 23:27 ` Samuel Ortiz
2018-11-26 15:47 ` Igor Mammedov
2018-11-05 1:40 ` [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 ` [PATCH v5 17/24] hw: acpi: Export the PCI hotplug API Samuel Ortiz
2018-11-05 1:40 ` [PATCH v5 18/24] hw: i386: Export the MADT build method Samuel Ortiz
2018-11-16 9:27 ` [Qemu-devel] " Igor Mammedov
2018-11-05 1:40 ` [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
[not found] ` <1542397323.18399.3.camel@intel.com>
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 ` [PATCH v5 20/24] hw: acpi: Define ACPI tables builder interface Samuel Ortiz
2018-11-16 16:02 ` [Qemu-devel] " Igor Mammedov
2018-11-21 23:57 ` Samuel Ortiz
2018-11-27 14:08 ` Igor Mammedov
2018-11-05 1:40 ` [PATCH v5 21/24] hw: i386: Implement the ACPI builder interface for PC Samuel Ortiz
2018-11-05 1:40 ` [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 ` [PATCH v5 23/24] hw: i386: Set ACPI configuration PCI host pointer Samuel Ortiz
2018-11-05 1:40 ` [PATCH v5 24/24] hw: i386: Refactor PCI host getter Samuel Ortiz
2018-11-16 16:29 ` [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition Igor Mammedov
2018-11-16 16:37 ` 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
[not found] ` <20181120135719.3965e33b@redhat.com>
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=20181121144237.GF4426@caravaggio \
--to=sameo@linux.intel.com \
--cc=anthony.perard@citrix.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@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=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).