From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>,
"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Lukas Wunner <lukas@wunner.de>,
"Chris Chiu" <chris.chiu@canonical.com>,
<linux-pci@vger.kernel.org>
Subject: Re: [PATCH v2 1/2] PCI: Take multifunction devices into account when distributing resources
Date: Tue, 22 Nov 2022 11:45:41 +0000 [thread overview]
Message-ID: <20221122114541.00005ff9@Huawei.com> (raw)
In-Reply-To: <Y3xvcvqgFbYMIIpl@black.fi.intel.com>
On Tue, 22 Nov 2022 08:42:58 +0200
Mika Westerberg <mika.westerberg@linux.intel.com> wrote:
> Hi,
>
> On Mon, Nov 21, 2022 at 04:45:48PM -0600, Bjorn Helgaas wrote:
> > IIUC, the summary is this:
> >
> > 00:02.0 bridge window [mem 0x10000000-0x102fffff] to [bus 01-02]
> > 01:02.0 bridge window [mem 0x10000000-0x100fffff] to [bus 02]
> > 01:03.0 NIC BAR [mem 0x10200000-0x1021ffff]
> > 01:04.0 NIC BAR [mem 0x10220000-0x1023ffff]
> > 02:05.0 NIC BAR [mem 0x10080000-0x1009ffff]
> >
> > and it's the same with and without the current patch.
> >
> > Are all these assignments done by BIOS, or did Linux update them?
>
> > Did we exercise the same "distribute available resources" path as in
> > the PCIe case? I expect we *should*, because there really shouldn't
> > be any PCI vs PCIe differences in how resources are handled. This is
> > why I'm not comfortable with assumptions here that depend on PCIe.
> >
> > I can't tell from Jonathan's PCIe case whether we got a working config
> > from BIOS or not because our logging of bridge windows is kind of
> > poor.
>
> This is ARM64 so there is no "BIOS" involved (something similar though).
It's EDK2 in my tests - so very similar to other arch.
Possible to boot without though and rely on DT, but various things don't
work yet...
>
> It is the same "system" that Jonathan used where the regression happened
> with the multifunction PCIe configuration with the exception that I'm
> now using PCI devices instead of PCIe as you asked.
>
> I'm not 100% sure if the all the same code paths are used here, though.
>
I wondered if it was possibly to do with fairly minimal handling of pci-pxb
(the weird root bridge) in EDK2, so tried the obvious of hanging your PCI
test below one of those rather than directly below a normal bridge.
Despite shuffling things around into configurations
I thought might trigger the problem, it all seems fine.
Note that I can't currently test the pxb-pcie configurations without EDK2
as arm-virt doesn't provide the relevant DT for those root bridges yet
(it's on my todo list as it's a prereq for getting the QEMU CXL ARM64
emulation upstream)
So no guarantees as I don't understand fully why PCI is ending up
with different handling.
From liberal distribution of printk()s it seems that for PCI bridges
pci_bridge_resources_not_assigned() is false, but for PCI express
example it is true. My first instinct is quirk of the EDK2 handling?
I'll have a dig, but I'm not an expert in EDK2 at all, so may not get
to the bottom of this.
Ultimately it seems that when the OS takes over the prefetchable memory
resources are not configured for the PCIe case, but are for the PCI case.
So we aren't currently walking the new code for PCI.
Jonathan
next prev parent reply other threads:[~2022-11-22 11:46 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-14 11:59 [PATCH v2 1/2] PCI: Take multifunction devices into account when distributing resources Mika Westerberg
2022-11-14 11:59 ` [PATCH v2 2/2] Revert "Revert "PCI: Distribute available resources for root buses, too"" Mika Westerberg
2022-11-16 9:47 ` Jonathan Cameron
2022-11-14 18:34 ` [PATCH v2 1/2] PCI: Take multifunction devices into account when distributing resources Rafael J. Wysocki
2022-11-16 9:46 ` Jonathan Cameron
2022-11-17 23:10 ` Bjorn Helgaas
2022-11-18 8:57 ` Mika Westerberg
2022-11-18 12:29 ` Bjorn Helgaas
2022-11-21 11:47 ` Mika Westerberg
2022-11-21 22:45 ` Bjorn Helgaas
2022-11-22 6:42 ` Mika Westerberg
2022-11-22 11:45 ` Jonathan Cameron [this message]
2022-11-22 12:21 ` Mika Westerberg
2022-11-22 17:26 ` Bjorn Helgaas
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=20221122114541.00005ff9@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=chris.chiu@canonical.com \
--cc=helgaas@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=mika.westerberg@linux.intel.com \
--cc=rafael.j.wysocki@intel.com \
/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.