From: "Michael S. Tsirkin" <mst@redhat.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Jason Baron <jbaron@redhat.com>,
bhelgaas@google.com, linux-pci@vger.kernel.org
Subject: Re: [PATCH] pci hotplug: rescan bridge after device hotplug
Date: Thu, 24 May 2012 00:18:08 +0300 [thread overview]
Message-ID: <20120523211808.GA2034@redhat.com> (raw)
In-Reply-To: <CAE9FiQX8j__V+VG-by+N9zZ7GJPtiLL0qJtiji7jHWddvJnOmQ@mail.gmail.com>
On Wed, May 23, 2012 at 01:53:10PM -0700, Yinghai Lu wrote:
> On Wed, May 23, 2012 at 12:08 PM, Michael S. Tsirkin <mst@redhat.com> wrote:
> > Fundamentally BARs are under guest control.
> > So while you are handing out memory for the bridges you would have to
> > tiptoe around guest assigned BARs.
> >
> > Also what happens after reboot? bios currently
> > assigns memory to bridges that are present on boot.
> > So this makes it even messier as who assigns memory
> > depends on whether device is hotplugged.
> >
> > Cleaner to have guest do it.
>
> assume here "guest' mean: BIOS + kernel + (acpi dsl code from BIOS).
>
> >
> > I think Windows even can even rebalance BARs
> > as needed. So this is just a linux bug that needs
> > to be fixed.
>
> Now pciehp in Linux will resize the bridge.
> but not for acpiphp. reason: acpiphp could handle more complicated case.
> does not mean new add card have to been under one bridge existing.
expess has this too. It just needs a bigger hierarchy:
upsteam ports can have many downstream ports behind them.
> slot just on root bus, you could just add device or bridge in it.
> and the bridge could have other hotlpug slots.
>
> in that case, if one of children slot already have card
> installed/driver loaded, later
> after another card is put in another child slot, we can not simple
> resize the bridge in parent slot.
> because other child devices is operating...
>
> solution will be
> 1. add quirks to set is_hotplug_bridge for apciphp....
> 2. or probe_resource in busn_alloc patchset, that maybe still need to
> extend to support alignment.
>
> BTW, I was thinking Linux is the ONLY one that will scratch bridge BAR
> if that is big enough for children devices.
> Do you have evidence that other os does that?
>
> Yinghai
I saw some docs on the net but do not have them handy. Google it.
next prev parent reply other threads:[~2012-05-23 21:18 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-22 20:11 [PATCH] pci hotplug: rescan bridge after device hotplug Jason Baron
2012-05-22 20:34 ` Yinghai Lu
2012-05-22 21:18 ` Yinghai Lu
2012-05-22 21:21 ` Yinghai Lu
2012-05-23 2:43 ` Jason Baron
2012-05-23 3:31 ` Yinghai Lu
2012-05-23 4:07 ` Yinghai Lu
2012-05-23 15:53 ` Jason Baron
2012-05-23 17:16 ` Yinghai Lu
2012-05-23 18:44 ` Jason Baron
2012-05-23 19:08 ` Michael S. Tsirkin
2012-05-23 19:20 ` Michael S. Tsirkin
2012-05-23 20:53 ` Yinghai Lu
2012-05-23 21:18 ` Michael S. Tsirkin [this message]
2012-05-23 20:31 ` Yinghai Lu
2012-05-23 20:49 ` Michael S. Tsirkin
2012-05-23 19:13 ` Michael S. Tsirkin
2012-05-23 20:52 ` Jason Baron
2012-05-24 0:00 ` Yinghai Lu
2012-05-24 13:43 ` Jason Baron
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=20120523211808.GA2034@redhat.com \
--to=mst@redhat.com \
--cc=bhelgaas@google.com \
--cc=jbaron@redhat.com \
--cc=linux-pci@vger.kernel.org \
--cc=yinghai@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.