From: "Michael S. Tsirkin" <mst@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: linux-kernel@vger.kernel.org, rafael@kernel.org, lenb@kernel.org,
bhelgaas@google.com, linux-acpi@vger.kernel.org,
linux-pci@vger.kernel.org
Subject: Re: [PATCH] pci: acpiphp: try to reassign resources on bridge if necessary
Date: Tue, 18 Apr 2023 07:08:09 -0400 [thread overview]
Message-ID: <20230418070640-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20230418085030.2154918-1-imammedo@redhat.com>
On Tue, Apr 18, 2023 at 10:50:30AM +0200, Igor Mammedov wrote:
> When using ACPI PCI hotplug, hotplugging a device with
> large BARs may fail if bridge windows programmed by
> firmware are not large enough.
>
> Reproducer:
> $ qemu-kvm -monitor stdio -M q35 -m 4G \
> -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=on \
> -device id=rp1,pcie-root-port,bus=pcie.0,chassis=4 \
> disk_image
>
> wait till linux guest boots, then hotplug device
> (qemu) device_add qxl,bus=rp1
>
> hotplug on guest side fails with:
> pci 0000:01:00.0: [1b36:0100] type 00 class 0x038000
> pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x03ffffff]
> pci 0000:01:00.0: reg 0x14: [mem 0x00000000-0x03ffffff]
> pci 0000:01:00.0: reg 0x18: [mem 0x00000000-0x00001fff]
> pci 0000:01:00.0: reg 0x1c: [io 0x0000-0x001f]
> pci 0000:01:00.0: BAR 0: no space for [mem size 0x04000000]
> pci 0000:01:00.0: BAR 0: failed to assign [mem size 0x04000000]
> pci 0000:01:00.0: BAR 1: no space for [mem size 0x04000000]
> pci 0000:01:00.0: BAR 1: failed to assign [mem size 0x04000000]
> pci 0000:01:00.0: BAR 2: assigned [mem 0xfe800000-0xfe801fff]
> pci 0000:01:00.0: BAR 3: assigned [io 0x1000-0x101f]
> qxl 0000:01:00.0: enabling device (0000 -> 0003)
> Unable to create vram_mapping
> qxl: probe of 0000:01:00.0 failed with error -12
>
> However when using native PCIe hotplug
> '-global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off'
> it works fine, since kernel attempts to reassign unused resources.
> Use the same machinery as native PCIe hotplug to (re)assign resources.
>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
And I think:
Fixes: d66ecb7220a7 ("PCI / ACPI: Use boot-time resource allocation rules during hotplug")
> ---
> tested in QEMU with Q35 machine on PCIE root port and also
> with nested conventional bridge attached to root port.
> ---
> drivers/pci/hotplug/acpiphp_glue.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
> index 5b1f271c6034..9aebde28a92f 100644
> --- a/drivers/pci/hotplug/acpiphp_glue.c
> +++ b/drivers/pci/hotplug/acpiphp_glue.c
> @@ -517,7 +517,7 @@ static void enable_slot(struct acpiphp_slot *slot, bool bridge)
> }
> }
> }
> - __pci_bus_assign_resources(bus, &add_list, NULL);
> + pci_assign_unassigned_bridge_resources(bus->self);
> }
>
> acpiphp_sanitize_bus(bus);
> --
> 2.39.1
next prev parent reply other threads:[~2023-04-18 11:09 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-18 8:50 [PATCH] pci: acpiphp: try to reassign resources on bridge if necessary Igor Mammedov
2023-04-18 11:08 ` Michael S. Tsirkin [this message]
2023-04-24 19:26 ` Igor Mammedov
2023-04-18 12:55 ` Rafael J. Wysocki
2023-04-18 14:17 ` Igor Mammedov
2023-04-18 15:38 ` Rafael J. Wysocki
2023-04-18 16:31 ` Bjorn Helgaas
2023-04-24 18:50 ` Igor Mammedov
2023-04-24 19:49 ` Igor Mammedov
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=20230418070640-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=bhelgaas@google.com \
--cc=imammedo@redhat.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rafael@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.