From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 71409C27C76 for ; Wed, 25 Jan 2023 17:03:50 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pKjAN-0004ud-3W; Wed, 25 Jan 2023 12:02:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pKjAC-0004iZ-2A for qemu-devel@nongnu.org; Wed, 25 Jan 2023 12:02:29 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pKjA8-00017o-Op for qemu-devel@nongnu.org; Wed, 25 Jan 2023 12:02:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1674666135; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RoyYinPQOp0nf97L0n2pFqJKIs2GqJvgWcUImYHc61I=; b=X9cmT3ug+K4v+2NaWT7zNqmWOocDdsF6do0joYtx2kibAdac8DuzjCqlC0IXUv4q9dOkZY sng5alabqhTT/t0ayKzFxX5E80m5e2xnkzOwo80pJt3/dW/8lPXz1VBDUUsrXSGTgxacX+ Vtw9et/YPQKzH4vVVpd/LpSBX0Psrf0= Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-21-6dI7jEzyNYym2jz7UPDRlg-1; Wed, 25 Jan 2023 12:02:13 -0500 X-MC-Unique: 6dI7jEzyNYym2jz7UPDRlg-1 Received: by mail-ed1-f69.google.com with SMTP id h18-20020a056402281200b0049e5078a6c3so13366211ede.12 for ; Wed, 25 Jan 2023 09:02:13 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RoyYinPQOp0nf97L0n2pFqJKIs2GqJvgWcUImYHc61I=; b=WzY0Cwt+kg8/gzXz0BFvD7FAmV2hbYfjX2SYm/Ddw+F8W47eitNHki8BRxOvqLH6B3 7zNOgwJhmneGd/xSDM32bAGw8wlnp7CzSETecGN2lXkVPjv70tNutvSOFH2XHT1D4SsP ec6xfjHDfbEBgmK7cnjY4MH9TXgYpQtAk9gfOq3CA/PNNxYqGGxLHmn4m0qvT/0psoHh 36HuKHs1VoIeKQS1a7V88TCspDqlHXOQJfudpGtbZsi5+QzTw1kDV5otUDOAGym9V5of SbambSfUVERf7f1uMDIS5drEucUt57q8sALmA//3jXQCv3hCwwzdlpRAxk3msSx2UdNW 8VYg== X-Gm-Message-State: AFqh2krjWPZ5unxX6YAry5XL7gnII0lkErPkKZOGLTJoE+kgrs7yXU8a SVk35M29HwD+y4QS+61bINDFsByVYlAHvtWERsOtbta9/HHYrnqiSWcUdgdfNAxZyetorYlpyo+ pjxuDmQwqLTQLHaXjJZ9XkomplMcsrT93UwlmfD6nNBwqzzzxVBfZhOYRQ7rhTLi/qDQ= X-Received: by 2002:a17:906:4684:b0:86f:b99c:ac8d with SMTP id a4-20020a170906468400b0086fb99cac8dmr33453666ejr.44.1674666131301; Wed, 25 Jan 2023 09:02:11 -0800 (PST) X-Google-Smtp-Source: AMrXdXv7EVwb+3DOv5oFMI96gpaSB7hcTxp8Xm4sVWk1ErAmkRZDXp86j6xQH2ms7ZL3bCvj5aYDpw== X-Received: by 2002:a17:906:4684:b0:86f:b99c:ac8d with SMTP id a4-20020a170906468400b0086fb99cac8dmr33453643ejr.44.1674666131033; Wed, 25 Jan 2023 09:02:11 -0800 (PST) Received: from imammedo.users.ipa.redhat.com (nat-pool-brq-t.redhat.com. [213.175.37.10]) by smtp.gmail.com with ESMTPSA id jz21-20020a170906bb1500b0084d44bff4a2sm2608866ejb.39.2023.01.25.09.02.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Jan 2023 09:02:10 -0800 (PST) Date: Wed, 25 Jan 2023 18:02:09 +0100 From: Igor Mammedov To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Ani Sinha Subject: Re: [PATCH 00/40] x86: fixing and cleaning up ACPI PCI code part 3 Message-ID: <20230125180209.597c0983@imammedo.users.ipa.redhat.com> In-Reply-To: <20230112140312.3096331-1-imammedo@redhat.com> References: <20230112140312.3096331-1-imammedo@redhat.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.36; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=170.10.129.124; envelope-from=imammedo@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On Thu, 12 Jan 2023 15:02:32 +0100 Igor Mammedov wrote: ping, Michael can you take a look at this series and queue it if it looks acceptable to you. PS: I'm waiting on this being merged, to send acpi-index support on non-hotpluggable ports (due to heavy dependency on this refactoring). After which I plan to post series that allows resources reallocation on bridges. (both should be doable in 8.0 timeframe) (the rest: acpi-index for pxb and other targets/machines, pci-hostbridge cleanups will be after that but probably won't make into 8.0) > Series continues refactoring on top of [1]. >=20 > It focuses on isolating creation of non hotplug and > hotplug slot descriptions. In state it's posted, it's > not complete, but pretty close to it. The series contains > stable patches from refactoring and is already too large > to keep it to myself, hence I'm publishing it fro review. >=20 > It will be followed by separate series on top of this one, > that will finish concrete feature[s] in following order: > 1 introduce acpi-index support for non-hotpluggable PCI > devices (i.e. NICs directly attached to Q35 host-bridge) > making acpi-index support complete within pc/q35 machines. > 2 let guest OS to re-arrange bridge resources when ACPI PCI > hotplug is enabled. (should fix insuficient resources issue > during PCI hotplug) > 3 finish isolating hotplug code from non-hotplug one, > which should allow to re-use non-hotplug parts in other > machines (arm/virt and microvm) and bring acpi-index > support there. >=20 > PS: > Refactoring also adds testing for various corner cases > and fixes (present/latent/imagined) bugs where they were > spotted. >=20 > 1) "[PATCH 00/11] x86: clean up ACPI PCI code part 2" > https://www.mail-archive.com/qemu-devel@nongnu.org/msg915493.html >=20 > CC: "Michael S. Tsirkin" > CC: Ani Sinha >=20 > Igor Mammedov (40): > tests: qtest: print device_add error before failing test > tests: acpi: cleanup arguments to make them more readable > tests: acpi: whitelist DSDT blobs for tests that use pci-bridges > tests: acpi: extend pcihp with nested bridges > tests: acpi: update expected blobs > tests: acpi: cleanup use_uefi argument usage > pci_bridge: remove whitespace > x86: acpi: pcihp: clean up duplicate bridge_in_acpi assignment > pci: acpi hotplug: rename x-native-hotplug to > x-do-not-expose-native-hotplug-cap > pcihp: piix4: do not call acpi_pcihp_reset() when ACPI PCI hotplug is > disabled > pci: acpihp: assign BSEL only to coldplugged bridges > x86: pcihp: fix invalid AML PCNT calls to hotplugged bridges > tests: boot_sector_test: avoid crashing if status is not available yet > tests: acpi: extend bridge tests with hotplugged bridges > tests: boot_sector_test(): make it multi-shot > tests: acpi: add reboot cycle to bridge test > tests: acpi: whitelist DSDT before refactoring acpi based PCI hotplug > machinery > pcihp: drop pcihp_bridge_en dependency when composing PCNT method > tests: acpi: update expected blobs > tests: acpi: whitelist DSDT before refactoring acpi based PCI hotplug > machinery > pcihp: compose PCNT callchain right before its user _GPE._E01 > pcihp: do not put empty PCNT in DSDT > tests: acpi: update expected blobs > whitelist DSDT before adding endpoint devices to bridge testcases > tests: acpi: add endpoint devices to bridges > tests: acpi: update expected blobs > x86: pcihp: acpi: prepare slot ignore rule to work with self > describing bridges > pci: acpi: wire up AcpiDevAmlIf interface to generic bridge > pcihp: make bridge describe itself using > AcpiDevAmlIfClass:build_dev_aml > pci: make sure pci_bus_is_express() won't error out with "discards > =E2=80=98const=E2=80=99 qualifier" > pcihp: isolate rule whether slot should be described in DSDT > tests: acpi: whitelist DSDT before decoupling PCI hotplug code from > basic slots description > pcihp: acpi: decouple hotplug and generic slots description > tests: acpi: update expected blobs > tests: acpi: whitelist DSDT blobs before removing dynamic _DSM on > coldplugged bridges > pcihp: acpi: ignore coldplugged bridges when composing hotpluggable > slots > tests: acpi: update expected blobs > tests: acpi: whitelist DSDT before moving non-hotpluggble slots > description from hotplug path > pcihp: generate populated non-hotpluggble slot descriptions on > non-hotplug path > tests: acpi: update expected blobs >=20 > include/hw/acpi/pci.h | 4 + > include/hw/pci/pci.h | 2 +- > include/hw/pci/pcie_port.h | 3 +- > hw/acpi/Kconfig | 4 + > hw/acpi/meson.build | 4 +- > hw/acpi/pci-bridge-stub.c | 20 ++ > hw/acpi/pci-bridge.c | 27 ++ > hw/acpi/pcihp.c | 35 ++- > hw/acpi/piix4.c | 4 +- > hw/i386/Kconfig | 1 + > hw/i386/acpi-build.c | 279 ++++++++++-------- > hw/i386/pc_q35.c | 5 +- > hw/pci-bridge/gen_pcie_root_port.c | 7 +- > hw/pci-bridge/pci_bridge_dev.c | 1 - > hw/pci/pci.c | 2 +- > hw/pci/pci_bridge.c | 14 + > hw/pci/pcie.c | 6 +- > hw/pci/pcie_port.c | 3 +- > tests/data/acpi/pc/DSDT | Bin 6458 -> 6360 bytes > tests/data/acpi/pc/DSDT.acpierst | Bin 6418 -> 6283 bytes > tests/data/acpi/pc/DSDT.acpihmat | Bin 7783 -> 7685 bytes > tests/data/acpi/pc/DSDT.bridge | Bin 9532 -> 12487 bytes > tests/data/acpi/pc/DSDT.cphp | Bin 6922 -> 6824 bytes > tests/data/acpi/pc/DSDT.dimmpxm | Bin 8112 -> 8014 bytes > tests/data/acpi/pc/DSDT.hpbridge | Bin 6418 -> 6289 bytes > tests/data/acpi/pc/DSDT.hpbrroot | Bin 3064 -> 3081 bytes > tests/data/acpi/pc/DSDT.ipmikcs | Bin 6530 -> 6432 bytes > tests/data/acpi/pc/DSDT.memhp | Bin 7817 -> 7719 bytes > tests/data/acpi/pc/DSDT.nohpet | Bin 6316 -> 6218 bytes > tests/data/acpi/pc/DSDT.numamem | Bin 6464 -> 6366 bytes > tests/data/acpi/pc/DSDT.roothp | Bin 6656 -> 9745 bytes > tests/data/acpi/q35/DSDT | Bin 8310 -> 8252 bytes > tests/data/acpi/q35/DSDT.acpierst | Bin 8327 -> 8269 bytes > tests/data/acpi/q35/DSDT.acpihmat | Bin 9635 -> 9577 bytes > tests/data/acpi/q35/DSDT.acpihmat-noinitiator | Bin 8589 -> 8531 bytes > tests/data/acpi/q35/DSDT.applesmc | Bin 8356 -> 8298 bytes > tests/data/acpi/q35/DSDT.bridge | Bin 11439 -> 11481 bytes > tests/data/acpi/q35/DSDT.core-count2 | Bin 32450 -> 32392 bytes > tests/data/acpi/q35/DSDT.cphp | Bin 8774 -> 8716 bytes > tests/data/acpi/q35/DSDT.cxl | Bin 9636 -> 9578 bytes > tests/data/acpi/q35/DSDT.dimmpxm | Bin 9964 -> 9906 bytes > tests/data/acpi/q35/DSDT.ipmibt | Bin 8385 -> 8327 bytes > tests/data/acpi/q35/DSDT.ipmismbus | Bin 8398 -> 8340 bytes > tests/data/acpi/q35/DSDT.ivrs | Bin 8327 -> 8269 bytes > tests/data/acpi/q35/DSDT.memhp | Bin 9669 -> 9611 bytes > tests/data/acpi/q35/DSDT.mmio64 | Bin 9440 -> 9382 bytes > tests/data/acpi/q35/DSDT.multi-bridge | Bin 8630 -> 12337 bytes > tests/data/acpi/q35/DSDT.nohpet | Bin 8168 -> 8110 bytes > tests/data/acpi/q35/DSDT.numamem | Bin 8316 -> 8258 bytes > tests/data/acpi/q35/DSDT.pvpanic-isa | Bin 8411 -> 8353 bytes > tests/data/acpi/q35/DSDT.tis.tpm12 | Bin 8916 -> 8858 bytes > tests/data/acpi/q35/DSDT.tis.tpm2 | Bin 8942 -> 8884 bytes > tests/data/acpi/q35/DSDT.viot | Bin 9419 -> 9361 bytes > tests/data/acpi/q35/DSDT.xapic | Bin 35673 -> 35615 bytes > tests/qtest/bios-tables-test.c | 144 ++++++--- > tests/qtest/boot-sector.c | 6 +- > tests/qtest/libqtest.c | 4 + > 57 files changed, 394 insertions(+), 181 deletions(-) > create mode 100644 hw/acpi/pci-bridge-stub.c > create mode 100644 hw/acpi/pci-bridge.c >=20