From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:a5d:6844:0:0:0:0:0 with SMTP id o4-v6csp587293wrw; Fri, 16 Nov 2018 08:29:38 -0800 (PST) X-Google-Smtp-Source: AJdET5c/GMfbDfqvyOorBc7OX69t09xfVQLNJtWzCw2LZlNzaXR2Wv41EwiyizgimWyXbmVuaxZb X-Received: by 2002:ac8:5509:: with SMTP id j9mr10413443qtq.287.1542385777979; Fri, 16 Nov 2018 08:29:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542385777; cv=none; d=google.com; s=arc-20160816; b=Lay7VOPchb2gMzihPJAzyzB6togcHzvaTDH2Ry6danf/op6fWpDCsG5LZKgO4/MXQI /iZZm4s8LQbe/P1oas3tkOyO99J18ZZXYG3mB1VbD+TUg2gT6htR+QeV7sGU8ut4bFdn iUKFbZo6eJHIziPE5vat0KaSZkF/41GjTIGItzvRI0Hw+Z5lL3BaRqt0hJ05xrAkvCCY ImhS4arHebou1IY49eB0CuVfn53zwhJhoyNvJzOXae8+Gr5ywo/MDXPSZfsBFh7k1nc4 J4zd6SPqXYciQcJfC0PYQ1L3gDtkXZV+zUpMqMK2JZlbdVLlBcq8m+cOUh10dEANEtNz XphQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:to:from:date; bh=cX2re8ICMgQ9/nt/sVFiSWqV1LuKqP1Laf2uOFTnkQc=; b=pNyOQ5ebiXwiKkyFlTKPKLvyV2sxZbk1PpsVug879kBtRo3naMSpo7S9crIwXqE23m 2jTH+xCubFqnmPJoYrNz3jNNtoUfk7pR7XuK5n6d1rQI/mV9iUBE4sZfdbHQyw7jzY1T EQUFz5VQ2OQH86ppetb/Jf1lgwJJwec/lHTd3WwXn15xzxrQQugcx7fQrGDpk8AnVKdY c5vAa6DlD5SBrog59sClx7YUmOQQpgZ0DHY3O0euMDuRy6AN5Rlr4qwIS76n5n37ZchL 8rG4XxpwLhS7ja+6eCYIYhUECtphMZuwePtdq9q34z1MpQ9K0ku8vCjig6mLERgu6STx OQbw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id z17si157671qvn.203.2018.11.16.08.29.37 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 16 Nov 2018 08:29:37 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from localhost ([::1]:45633 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNgzx-0000v2-EN for alex.bennee@linaro.org; Fri, 16 Nov 2018 11:29:37 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37672) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNgzq-0000ul-Jt for qemu-arm@nongnu.org; Fri, 16 Nov 2018 11:29:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gNgzm-0003cD-Sd for qemu-arm@nongnu.org; Fri, 16 Nov 2018 11:29:30 -0500 Received: from mx1.redhat.com ([209.132.183.28]:38738) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gNgzm-0003bp-KE; Fri, 16 Nov 2018 11:29:26 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A41AB30012DF; Fri, 16 Nov 2018 16:29:25 +0000 (UTC) Received: from localhost (unknown [10.43.2.182]) by smtp.corp.redhat.com (Postfix) with ESMTP id 329B9600C2; Fri, 16 Nov 2018 16:29:21 +0000 (UTC) Date: Fri, 16 Nov 2018 17:29:19 +0100 From: Igor Mammedov To: Samuel Ortiz Message-ID: <20181116172919.43f3e27d@redhat.com> In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com> References: <20181105014047.26447-1-sameo@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Fri, 16 Nov 2018 16:29:25 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: Re: [Qemu-arm] [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition X-BeenThere: qemu-arm@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , qemu-devel@nongnu.org, Shannon Zhao , qemu-arm@nongnu.org, xen-devel@lists.xenproject.org, Anthony Perard , Paolo Bonzini , Richard Henderson Errors-To: qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-arm" X-TUID: t+3QOrhYf12l On Mon, 5 Nov 2018 02:40:23 +0100 Samuel Ortiz 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 > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Mammedov Subject: Re: [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition Date: Fri, 16 Nov 2018 17:29:19 +0100 Message-ID: <20181116172919.43f3e27d@redhat.com> References: <20181105014047.26447-1-sameo@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gNgzn-0006w1-9U for xen-devel@lists.xenproject.org; Fri, 16 Nov 2018 16:29:27 +0000 In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Samuel Ortiz Cc: Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , qemu-devel@nongnu.org, Shannon Zhao , qemu-arm@nongnu.org, xen-devel@lists.xenproject.org, Anthony Perard , Paolo Bonzini , Richard Henderson List-Id: xen-devel@lists.xenproject.org T24gTW9uLCAgNSBOb3YgMjAxOCAwMjo0MDoyMyArMDEwMApTYW11ZWwgT3J0aXogPHNhbWVvQGxp bnV4LmludGVsLmNvbT4gd3JvdGU6Cgo+IFRoaXMgcGF0Y2ggc2V0IHByb3ZpZGVzIGFuIEFDUEkg Y29kZSByZW9yZ2FuaXphdGlvbiBpbiBwcmVwYXJhdGlvbiBmb3IKPiBhZGRpbmcgYSBzaGFyZWQg aGFyZHdhcmUtcmVkdWNlZCBBQ1BJIEFQSSB0byBRRU1VLgo+IAo+IFRoZSBjaGFuZ2VzIGFyZSBj b21pbmcgZnJvbSB0aGUgTkVNVSBbMV0gcHJvamVjdCB3aGVyZSB3ZSdyZSBkZWZpbmluZwo+IGEg bmV3IHg4NiBtYWNoaW5lIHR5cGU6IGkzODYvdmlydC4gVGhpcyBpcyBhbiBFRkkgb25seSwgQUNQ SQo+IGhhcmR3YXJlLXJlZHVjZWQgcGxhdGZvcm0gdGhhdCBpcyBidWlsdCBvbiB0b3Agb2YgYSBn ZW5lcmljCj4gaGFyZHdhcmUtcmVkdWNlZCBBQ1BJIEFQSSBbMl0uIFRoaXMgQVBJIHdhcyBpbml0 aWFsbHkgYmFzZWQgb2ZmIHRoZQo+IGdlbmVyaWMgcGFydHMgb2YgdGhlIGFybS92aXJ0LWFjcGkt YnVpbGQuYyBpbXBsZW1lbnRhdGlvbiwgYW5kIHRoZSBnb2FsCj4gaXMgZm9yIGJvdGggaTM4Ni92 aXJ0IGFuZCBhcm0vdmlydCB0byBkdXBsaWNhdGUgYXMgbGl0dGxlIGNvZGUgYXMKPiBwb3NzaWJs ZSBieSB1c2luZyB0aGlzIG5ldywgc2hhcmVkIEFQSS4KPiAKPiBBcyBhIHByZWxpbWluYXJ5IGZv ciBhZGRpbmcgdGhpcyBoYXJkd2FyZS1yZWR1Y2VkIEFDUEkgQVBJIHRvIFFFTVUsIHdlIGRpZAo+ IHNvbWUgQUNQSSBjb2RlIHJlb3JnYW5pemF0aW9uIHdpdGggdGhlIGZvbGxvd2luZyBnb2FsczoK PiAKPiAqIFNoYXJlIGFzIG11Y2ggYXMgcG9zc2libGUgb2YgdGhlIGN1cnJlbnQgQUNQSSBidWls ZCBBUElzIGJldHdlZW4KPiAgIGxlZ2FjeSBhbmQgaGFyZHdhcmUtcmVkdWNlZCBBQ1BJLgo+ICog U2hhcmUgdGhlIEFDUEkgYnVpbGQgY29kZSBhY3Jvc3MgbWFjaGluZSB0eXBlcyBhbmQgYXJjaGl0 ZWN0dXJlcyBhbmQKPiAgIHJlbW92ZSB0aGUgdHlwaWNhbCBQQyBtYWNoaW5lIHR5cGUgZGVwZW5k ZW5jeS4KPiAKPiBUaGUgcGF0Y2hlcyBhcmUgYWxzbyBhdmFpbGFibGUgaW4gdGhlaXIgb3duIGdp dCBicmFuY2ggWzNdLgpJIHRoaW5rLCBJJ20gZG9uZSB3aXRoIHJldmlld2luZyB0aGlzIHBhdGNo c2V0LCB0byBzdW0gdXAKdGhhbmtzIGZvciB0cnlpbmcgZ2VuZXJhbGl6ZSBhY3BpIHBhcnRzLiBJ dCBpcyBpbXBsZW1lbnRlZCBub3QKZXhhY3RseSBnZW5lcmljIHdheSBhbmQgcGF0Y2hlcyBhcmVu J3Qgc3BsaXQgcGVyZmVjdGx5IGJ1dAp3ZSBjYW4gd29yayBvbiBpdC4KCkdlbmVyYWwgc3VnZ2Vz dGlvbnMgZm9yIHRoaXMgc2VyaWVzOgogIDEuIFByZWZlcmFibHkgZG9uJ3QgZG8gbXVsdGlwbGUg Y2hhbmdlcyB3aXRoaW4gYSBwYXRjaAogICAgIG5laXRoZXIgcG9zdCBodWdlIHBhdGNoZXMgKHVu bGVzcyBpdCdzIHB1cmUgY29kZSBtb3ZlbWVudCkuCiAgICAgKGl0J3MgZWFzeSB0byBzcXVhc2gg cGF0Y2hlcyBsYXRlciBpdCBuZWNlc3NhcnkpCiAgMi4gU3RhcnQgc21hbGwsIHBpY2sgYSB0YWJs ZSBnZW5lcmFsaXplIGl0IGFuZCBzZW5kIGFzCiAgICAgb25lIHNtYWxsIHBhdGNoc2V0LiBUYWJs ZXMgYXJlIG9mdGVuIGluZGVwZW5kZW50CiAgICAgYW5kIGl0J3MgbXVjaCBlYXNpZXIgb24gYm90 aCBhdXRob3IvcmV2aWV3ZXIgdG8gYWdyZWUgdXBvbgogICAgIGNoYW5nZXMgYW5kIHJld3JpdGUg aXQgaWYgbmVjZXNzYXJ5LgogIDMuIHdoZW4geW91IHRoaW5rIGFib3V0IHJlZmFjdG9yaW5nIGFj cGkgaW50byBhIGdlbmVyaWMgQVBJCiAgICAgdGhpbmsgYWJvdXQgaXQgYXMgcm91dGluZXMgdGhh dCBnbyBpbnRvIGEgc2VwYXJhdGUgbGlicmFyeQogICAgIChwdXJlIGFjcGkgc3BlYyBjb2RlKSBh bmQgcWVtdS9hY3BpIGdsdWUgcm91dGluZXMgYW5kCiAgICAgIGRpdmlkZSB0aGVtIGNvcnJlc3Bv bmRpbmdseS4KCj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9pbnRlbC9uZW11Cj4gWzJdIGh0dHBz Oi8vZ2l0aHViLmNvbS9pbnRlbC9uZW11L2Jsb2IvdG9waWMvdmlydC14ODYvaHcvYWNwaS9yZWR1 Y2VkLmMKPiBbM10gaHR0cHM6Ly9naXRodWIuY29tL2ludGVsL25lbXUvdHJlZS90b3BpYy91cHN0 cmVhbS9hY3BpCj4gCj4gdjEgLT4gdjI6Cj4gICAgKiBEcm9wIHRoZSBoYXJkd2FyZS1yZWR1Y2Vk IGltcGxlbWVudGF0aW9uIGZvciBub3cuIE91ciBuZXh0IHBhdGNoCj4gICAgKiBzZXQKPiAgICAg IHdpbGwgYWRkIGhhcmR3YXJlLXJlZHVjZWQgYW5kIGNvbnZlcnQgYXJtL3ZpcnQgdG8gaXQuCj4g ICAgKiBJbXBsZW1lbnQgdGhlIEFDUEkgYnVpbGQgbWV0aG9kcyBhcyBhIFFPTSBJbnRlcmZhY2Ug Q2xhc3MgYW5kCj4gICAgKiBjb252ZXJ0Cj4gICAgICB0aGUgUEMgbWFjaGluZSB0eXBlIHRvIGl0 Lgo+ICAgICogYWNwaV9jb25mX3BjX2luaXQoKSB1c2VzIGEgUENNYWNoaW5lU3RhdGUgcG9pbnRl ciBhbmQgbm90IGEKPiAgICAgIE1hY2hpbmVTdGF0ZSBvbmUgYXMgaXRzIGFyZ3VtZW50Lgo+IAo+ IHYyIC0+IHYzOgo+ICAgICogQ2MgYWxsIHJlbGV2YW50IG1haW50YWluZXJzLCBubyBmdW5jdGlv bmFsIGNoYW5nZXMuCj4gCj4gdjMgLT4gdjQ6Cj4gICAgKiBSZW5hbWVkIGFsbCBBY3BpQ29uZmln dXJhdGlvbiBwb2ludGVycyBmcm9tIGNvbmYgdG8gYWNwaV9jb25mLgo+ICAgICogUmVtb3ZlZCB0 aGUgQUNQSV9CVUlMRF9BTElHTl9TSVpFIGV4cG9ydC4KPiAgICAqIFRlbXBvcmFyaWx5IHVwZGF0 ZWQgdGhlIGFybSB2aXJ0IGJ1aWxkX3JzZHAoKSBwcm90b3R5cGUgZm9yCj4gICAgICBiaXNlY3Rh YmlsaXR5IHB1cnBvc2VzLgo+ICAgICogUmVtb3ZlZCB1bm5lZWRlZCBwY2kgaGVhZGVycyBmcm9t IGFjcGktYnVpbGQuYy4KPiAgICAqIFJlZmFjdG9yIHRoZSBhY3BpIFBDSSBob3N0IGdldHRlciBz byB0aGF0IGl0IHRydWx5IGlzIGFyY2hpdGVjdHVyZQo+ICAgICAgYWdub3N0aWMsIGJ5IGNhcnJ5 aW5nIHRoZSBQQ0kgaG9zdCBwb2ludGVyIHRocm91Z2ggdGhlCj4gICAgICBBY3BpQ29uZmlndXJh dGlvbiBzdHJ1Y3R1cmUuCj4gICAgKiBTcGxpdHRlZCB0aGUgUENJIGhvc3QgQU1MIGJ1aWxkZXIg QVBJIGV4cG9ydCBwYXRjaCBmcm9tIHRoZSBQQ0kKPiAgICAgIGhvc3QgYW5kIGhvbGVzIGdldHRl ciBvbmUuCj4gICAgKiBSZWR1Y2VkIHRoZSBidWlsZF9zcmF0KCkgZXhwb3J0IHNjb3BlIHRvIGh3 L2kzODYgaW5zdGVhZCBvZiB0aGUKPiAgICAgIGJyb2FkZXIgaHcvYWNwaS4gU1JBVCBidWlsZGVy cyBhcmUgdHJ1bHkgYXJjaGl0ZWN0dXJlIHNwZWNpZmljCj4gICAgICBhbmQgY2FuIGhhcmRseSBi ZSBnZW5lcmFsaXplZC4KPiAgICAqIENvbXBsZXRlZCB0aGUgQUNQSSBidWlsZGVyIGRvY3VtZW50 YXRpb24uCj4gCj4gdjQgLT4gdjU6Cj4gICAgKiBSZW9yZ2FuaXplIHRoZSBBQ1BJIFJTRFAgZXhw b3J0IGFuZCBYU0RUIGltcGxlbWVudGF0aW9uIGludG8gMwo+ICAgICAgcGF0Y2hlcy4KPiAgICAq IEZpeCB0aGUgaHcvaTM4Ni9hY3BpIGhlYWRlciBpbmNsdXNpb25zLgo+IAo+IFNhbXVlbCBPcnRp eiAoMTYpOgo+ICAgaHc6IGkzODY6IERlY291cGxlIHRoZSBBQ1BJIGJ1aWxkIGZyb20gdGhlIFBD IG1hY2hpbmUgdHlwZQo+ICAgaHc6IGFjcGk6IEV4cG9ydCBBQ1BJIGJ1aWxkIGFsaWdubWVudCBB UEkKPiAgIGh3OiBhY3BpOiBUaGUgUlNEUCBidWlsZCBBUEkgY2FuIHJldHVybiB2b2lkCj4gICBo dzogYWNwaTogRXhwb3J0IHRoZSBSU0RQIGJ1aWxkIEFQSQo+ICAgaHc6IGFjcGk6IEltcGxlbWVu dCBYU0RUIHN1cHBvcnQgZm9yIFJTRFAKPiAgIGh3OiBhY3BpOiBGYWN0b3JpemUgdGhlIFJTRFAg YnVpbGQgQVBJIGltcGxlbWVudGF0aW9uCj4gICBodzogaTM4NjogTW92ZSBQQ0kgaG9zdCBkZWZp bml0aW9ucyB0byBwY2lfaG9zdC5oCj4gICBodzogYWNwaTogRXhwb3J0IHRoZSBQQ0kgaG9zdCBh bmQgaG9sZXMgZ2V0dGVycwo+ICAgaHc6IGFjcGk6IERvIG5vdCBjcmVhdGUgaG90cGx1ZyBtZXRo b2Qgd2hlbiBoYW5kbGVyIGlzIG5vdCBkZWZpbmVkCj4gICBodzogaTM4NjogTWFrZSB0aGUgaG90 cGx1Z2dhYmxlIG1lbW9yeSBzaXplIHByb3BlcnR5IG1vcmUgZ2VuZXJpYwo+ICAgaHc6IGkzODY6 IEV4cG9ydCB0aGUgaTM4NiBBQ1BJIFNSQVQgYnVpbGQgbWV0aG9kCj4gICBodzogaTM4NjogRXhw b3J0IHRoZSBNQURUIGJ1aWxkIG1ldGhvZAo+ICAgaHc6IGFjcGk6IERlZmluZSBBQ1BJIHRhYmxl cyBidWlsZGVyIGludGVyZmFjZQo+ICAgaHc6IGkzODY6IEltcGxlbWVudCB0aGUgQUNQSSBidWls ZGVyIGludGVyZmFjZSBmb3IgUEMKPiAgIGh3OiBwY2ktaG9zdDogcGlpeDogUmV0dXJuIFBDSSBo b3N0IHBvaW50ZXIgaW5zdGVhZCBvZiBQQ0kgYnVzCj4gICBodzogaTM4NjogU2V0IEFDUEkgY29u ZmlndXJhdGlvbiBQQ0kgaG9zdCBwb2ludGVyCj4gCj4gU2ViYXN0aWVuIEJvZXVmICgyKToKPiAg IGh3OiBhY3BpOiBFeHBvcnQgdGhlIFBDSSBob3RwbHVnIEFQSQo+ICAgaHc6IGFjcGk6IFJldHJp ZXZlIHRoZSBQQ0kgYnVzIGZyb20gQWNwaVBjaUhwU3RhdGUKPiAKPiBZYW5nIFpob25nICg2KToK PiAgIGh3OiBhY3BpOiBHZW5lcmFsaXplIEFNTCBidWlsZCByb3V0aW5lcwo+ICAgaHc6IGFjcGk6 IEZhY3Rvcml6ZSBfT1NDIEFNTCBhY3Jvc3MgYXJjaGl0ZWN0dXJlcwo+ICAgaHc6IGFjcGk6IEV4 cG9ydCBhbmQgZ2VuZXJhbGl6ZSB0aGUgUENJIGhvc3QgQU1MIEFQSQo+ICAgaHc6IGFjcGk6IEV4 cG9ydCB0aGUgTUNGRyBnZXR0ZXIKPiAgIGh3OiBhY3BpOiBGaXggbWVtb3J5IGhvdHBsdWcgQU1M IGdlbmVyYXRpb24gZXJyb3IKPiAgIGh3OiBpMzg2OiBSZWZhY3RvciBQQ0kgaG9zdCBnZXR0ZXIK PiAKPiAgaHcvaTM4Ni9hY3BpLWJ1aWxkLmggICAgICAgICAgIHwgICAgOSArLQo+ICBpbmNsdWRl L2h3L2FjcGkvYWNwaS1kZWZzLmggICAgfCAgIDE0ICsKPiAgaW5jbHVkZS9ody9hY3BpL2FjcGku aCAgICAgICAgIHwgICA0NCArKwo+ICBpbmNsdWRlL2h3L2FjcGkvYW1sLWJ1aWxkLmggICAgfCAg IDQ3ICsrCj4gIGluY2x1ZGUvaHcvYWNwaS9idWlsZGVyLmggICAgICB8ICAxMDAgKysrCj4gIGlu Y2x1ZGUvaHcvaTM4Ni9hY3BpLmggICAgICAgICB8ICAgMjggKwo+ICBpbmNsdWRlL2h3L2kzODYv cGMuaCAgICAgICAgICAgfCAgIDQ5ICstCj4gIGluY2x1ZGUvaHcvbWVtL21lbW9yeS1kZXZpY2Uu aCB8ICAgIDIgKwo+ICBpbmNsdWRlL2h3L3BjaS9wY2lfaG9zdC5oICAgICAgfCAgICA2ICsKPiAg aHcvYWNwaS9hbWwtYnVpbGQuYyAgICAgICAgICAgIHwgIDk4MSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+ICBody9hY3BpL2J1aWxkZXIuYyAgICAgICAgICAgICAgfCAgIDk3ICsrKwo+ ICBody9hY3BpL2NwdS5jICAgICAgICAgICAgICAgICAgfCAgICA4ICstCj4gIGh3L2FjcGkvY3B1 X2hvdHBsdWcuYyAgICAgICAgICB8ICAgIDkgKy0KPiAgaHcvYWNwaS9tZW1vcnlfaG90cGx1Zy5j ICAgICAgIHwgICAyMSArLQo+ICBody9hY3BpL3BjaWhwLmMgICAgICAgICAgICAgICAgfCAgIDEw ICstCj4gIGh3L2FybS92aXJ0LWFjcGktYnVpbGQuYyAgICAgICB8ICAgOTMgKy0tCj4gIGh3L2kz ODYvYWNwaS1idWlsZC5jICAgICAgICAgICB8IDEwNzIgKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiAgaHcvaTM4Ni9wYy5jICAgICAgICAgICAgICAgICAgIHwgIDE5OCArKystLS0K PiAgaHcvaTM4Ni9wY19waWl4LmMgICAgICAgICAgICAgIHwgICAzNiArLQo+ICBody9pMzg2L3Bj X3EzNS5jICAgICAgICAgICAgICAgfCAgIDIyICstCj4gIGh3L2kzODYveGVuL3hlbi1odm0uYyAg ICAgICAgICB8ICAgMTkgKy0KPiAgaHcvcGNpLWhvc3QvcGlpeC5jICAgICAgICAgICAgIHwgICAz MiArLQo+ICBzdHVicy9wY2ktaG9zdC1waWl4LmMgICAgICAgICAgfCAgICA2IC0KPiAgaHcvYWNw aS9NYWtlZmlsZS5vYmpzICAgICAgICAgIHwgICAgMSArCj4gIHN0dWJzL01ha2VmaWxlLm9ianMg ICAgICAgICAgICB8ICAgIDEgLQo+ICAyNSBmaWxlcyBjaGFuZ2VkLCAxNjQ0IGluc2VydGlvbnMo KyksIDEyNjEgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2h3L2Fj cGkvYnVpbGRlci5oCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2h3L2kzODYvYWNwaS5o Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBody9hY3BpL2J1aWxkZXIuYwo+ICBkZWxldGUgbW9kZSAx MDA2NDQgc3R1YnMvcGNpLWhvc3QtcGlpeC5jCj4gCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFu L2xpc3RpbmZvL3hlbi1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37712) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNgzt-0000vK-Dn for qemu-devel@nongnu.org; Fri, 16 Nov 2018 11:29:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gNgzs-0003eb-2g for qemu-devel@nongnu.org; Fri, 16 Nov 2018 11:29:33 -0500 Date: Fri, 16 Nov 2018 17:29:19 +0100 From: Igor Mammedov Message-ID: <20181116172919.43f3e27d@redhat.com> In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com> References: <20181105014047.26447-1-sameo@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Samuel Ortiz Cc: qemu-devel@nongnu.org, Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, Paolo Bonzini , Anthony Perard , xen-devel@lists.xenproject.org, Richard Henderson On Mon, 5 Nov 2018 02:40:23 +0100 Samuel Ortiz 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 >